​ unittestreport中实现了对并发执行用例的支持,在使用TestRunner.run方法执行用例时,通过参数thread_count即可指定运行用例时开启的线程数量。

1、使用案例

import unittestreport
# 1、加载测试用例到套件中
suite = unittest.defaultTestLoader.discover(r'C:\project\open_class\Py0507\testcase')
runner = TestRunner(suite=suite)
# 2、设置5个线程去执行用例
runner.run(thread_count=5)

2、注意点

用例执行的顺序问题:

​ 在执行自动化用例的过程中,如果用例之间有数据依赖的关系,那么在执行时就必须按照先后顺序去执行。为了解决这个问题,unittestreport中多线程并发执行时,默认以测试类为单位开启线程执行,就是说同一个测试类中的用例,在执行的过程中执行的先后顺序能够得到保证。不同的测试类中在执行的过程中是一个并发执行的状态,执行的先后顺序是不确定的。因此在使用多线程执行的时候,要注意下面这两点:

不同的测试类之间,不能有数据依赖,因为多线程并发没办法保证执行的先后顺序

多线程全局变量共享的问题

多线程是共享全局变量的,如果要以多线程执行用例,还需要考虑全局资源竞争的问题,就是用例在执行的过程中不能修改多个测试类中共用的全局数据(资源)。否则会影响其他的用例执行。