利用xdist实现自动化测试用例并行执行

在测试行业,如果利用python作为脚本语言开发自动化测试用例,可用的框架有rf,unittest,pytest等主流可供选择,个人感觉较之rf和unittest,pytest应该算是现阶段最灵活,功能最全面,扩展最丰富的框架了。

不知道各位在做自动化的时候有没有遇到过用例数过多,单机执行效率不高的困扰。接下来浅谈个人对单元测试框架pytest中的并行执行插件pytest-xdist使用心得.

前提
可以并行执行的测试用例,需要满足以下原则:
1、用例之间是独立的,用例之间没有依赖关系,用例可以完全独立运行 【独立运行】
2、用例执行没有顺序,随机顺序都能正常执行 【随机执行】
3、每个用例都能重复运行,运行结果不会影响其他用例 【不影响其他用例】

pytest-xdist这款插件允许用户将测试并发执行(进程级并发). 我们可以通过官方文档https://github.com/pytest-dev/pytest-xdist了解到相关的使用信息

 pytest -n        参数,指定并行执行的cpu个数,比如咱们的测试执行机cup个数为8,如果想启动全部cpu参与调度,则直接使用pytest -n 8指定即可

pytest -n auto   可以允许自动选择需要调度的cpu个数,简单方便,可以讲此参数配置到pytest.ini文件中

 可以对比下使用插件前后的执行效率:

使用xdist实现并行执行前(先注释掉pytest.ini配置文件中配置):

       仅仅构造20条测试数据,参数化驱动

 基本每条用例需要执行时间都超过2s,在软硬件及网络环境影响下个别用例执行时间甚至超过20s

 如此仅仅20条测试测试数据执行都花了近2分钟,如果测试用例数量达到数千条,测试时间无法控制,对执行者也是一种煎熬。

当用例数量庞大时,还可以利用分布式+xdist并行执行的策略,将执行效率再提升,此处以单机资源+xdist为例,以下为使用并行执行策略时执行效率:

先取消pytest.ini中配置的注释

执行相同测试用例,使用xdist并行执行所用时间近11s,时间对比使用前,提升还是挺明显的,当然我们在实际工作中,还可以使用 多资源分布式+xidist并行执行的策略,进一步提高执行效率。

使用xdist时还需注意 官方文档中提到的加文件锁的方法,因为在实际工作中,如果不用filelock,会导致执行时竞争资源而报错的情况,详细可阅读官方文档中filelock的使用方法

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chuntian_tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值