前言
使用python做过自动化测试的小伙伴,想必都知道unittest和pytest这两个单元测试框架,其中unittest是python的官方库,功能相对于pytest来要逊色不少,但是uniitest使用上手简单,也受到的很多的小伙伴喜爱。一直以来都有小伙伴在问我,pytest可以通过相关的插件来实现多线程执行测试用例,为什么unittest没有呢?unittest如何去实现多线程运行呢?那么今天就专门来给大家聊聊如何使用多线程去执行unittest!
一、unittest 测试用例的运行机制
在讲使用多线程去执行uniitest的测试用例之前,我们首先来分析一下,unittest中用例可以通过哪几种方式来执行。这个时候就得去看看unittest的源码了。

虽然 unittest 的底层代码是基于 C 语言实现的,源码中看不到详细的代码,但是我们可以发现 TestCase、TestSuite、TestRnner 三个类中都有 run 方法,而且 run 方法的作用的都是执行测试用例。
- TestRunner 可以执行单条测试用例以及测试套件中所有的用例
- TestSuite 是直接执行套件中所有的用例
- Testcase 中的 run 方法是执行当前这条测试用例
其实不管是 TestRunner 还是 TestSuite 的 run 方法执行用例,最终还是调用了用例本身的 run 方法去执行的。用例执行的方法我们搞清楚了,那么接下来我们就可以采取相关的策略使用多线程来执行了。
二、多线程执行用例的实现思路
- 思路一:创建多个测试套件,每个套件使

本文探讨了如何在unittest框架下利用多线程执行测试用例,分析了unittest的运行机制,并提出了两种实现思路:创建多个测试套件分别用线程执行和所有用例集中到一个套件中多线程执行。通过具体代码实现,展示了如何整合测试结果以及使用线程池。最后介绍了unittestreport库用于多线程生成测试报告。
最低0.47元/天 解锁文章
444

被折叠的 条评论
为什么被折叠?



