- 用协程并发执行测试用例
背景
近来于工作之际, 碰到了要去执行诸多测试用例的情形。约莫是两千五百个测试用例, 每一个用例存在着数条HTTP请求以及一些特殊的处理做法, 运用线性执行之后所得到成果是我耗费了长达两个半小时的时间方执行完毕!
这个问题要解决, 工作效率得提高, 测试用例并发执行是我实现所需要的。
几个想法
多线程执行测试用例
协程
可能遇到的问题:多线程
需要说明的是, 存在前辈对多线程执行测试用例实现过, 具体的实现过程未曾看过, 只是模糊记得其实现过程会产生多份测试报告, 之后会拿去解析、合并测试报告。
协程运用协程, 或许得去修改源码来运用协程, 或许得把当前测试用例改成协程方法, 这种改动可能会非常大在实现进程中。
处于正在进行协程学习的阶段, 我仍是下定决心先用协程去尝试一下可不可以达成实现, 当然了, 最终呈现的结果表明改动程度微小, 仅仅是对源码的极其少量部分做了修改, 而测试用例部分仅仅是对单元测试模块名予以了修改。
首先是获取的源码。
git clone -b 3.5
源码在Lib/中。
给现成的测试用例添加断点, 去调试几次, 理顺模块针对测试用例的调用执行次序。
猜测主要过程为:
原实现流程
找到真正执行入口:
存在于 /case.py 里的, 类之中的 run 方法的那一对括号, (位于 Line 605)。
测试用例执行入口
在上层, 调用处于类之中, 对上层入口予以修改, 将原本按正确顺序执行的方式, 转变为运用协程发起并发调用加以执行。
提取循环部分代码,改写为协程
最终结果
修改后,执行流程如下:
现在实现流程
原先2600多个测试用例所需的执行时间, 在经过上述修改后, 从两个半小时被压缩到了8分半钟(如图所示), 提高效率这一点不用再详细讲述了。
测试报告
存在的问题
不支持 , 执行测试用例请用
参考
最后编辑于 :2018.04.09 17:07:18
©著作权归作者所有,转载或内容合作请联系作者
社区有内容提示, 社区的部分内容好像是借助AI辅助生成的, 在浏览的时候要结合常识, 还要结合多方信息, 谨慎地进行甄别。