欢迎测试同行加入QQ交流群,群号:70160503
背景
最近在工作中,遇到需要执行大量测试用例的情况。大概2500个测试用例,每个用例有数条HTTP请求以及一些特殊处理,线性执行下来的结果是我花了2个半小时才执行完成!
为了解决这个问题,提高工作效率,实现测试用例并发执行是我所需要的。
几个想法
多线程执行测试用例
协程
可能遇到的问题:
多线程
值得说明的是,多线程执行测试用例是有前辈实现过的。具体实现过程没有看过,依稀记得他的实现过程会生成多份测试报告,然后用BeautifulSoup去解析、合并测试报告。
协程
- 使用协程,可能需要修改PyUnit源码
- 使用协程,可能需要修改当前测试用例为协程方法,改动可能很大
实现过程
由于正在学习Python协程,我还是决定先用协程试试能否实现。当然,最终结果证明改动不大,仅修改了源码的一小小部分,测试用例部分则只修改了单元测试模块名
首先是获取python3的源码。
git clone -b 3.5 https://github.com/python/cpython.git
unittest源码在Lib/unittest
中。
给已有的测试用例打断点,调试几波,理清unittest模块对测试用例的调用执行顺序。
猜测主要过程为