在测试行业,如果利用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的使用方法

利用xdist实现自动化测试用例并行执行相关推荐

  1. postman怎么导出测试用例_利用Charles抓包巧转接口自动化测试用例

    在前面的文章中,也有介绍类似的工具的.例如:一键将接口请求转为测试用例介绍了开源的mitmproxy录制转化为接口测试用例,postman接口用例转化为python自动化测试用例 文章记录了如何把po ...

  2. python写ui自动化测试用例_自动化测试(6) | Web UI 自动化测试方案

    Web项目的 UI 自动化测试方案 有用的链接: 项目讨论 项目中符合自动化测试的部分有哪些?(目标和范围 scope, 准入准出标准) 稳定的需求点.变动较少的页面 每日构建后的测试验证 daily ...

  3. 测试用例怎么写_如何高效组织自动化测试用例

    新书 速递 吴老的java版<selenium webdriver 实战宝典>和python版<selenium Webdriver 3.0 自动化测试框架实战指南>出版了,代 ...

  4. 录制你的第一个web 自动化测试用例

    本文节选自霍格沃兹测试学院内部教材 Web应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出现操作人员人为的错误,花费的时间成本也比 ...

  5. 手把手带你设计接口自动化测试用例:建立数据库实例和测试用例表

    目录 建立数据库实例 建立主测试用例表 参考建议 设计接口自动化框架需要考虑测试用例存储的方式.在实际项目中,测试用例存储的方式有多种,可以存放在 Excel 表格中,也可以存放于 Yaml 文件中, ...

  6. 测试开发实战|如何利用 xUnit 框架对测试用例进行维护?

    如何利用 xUnit 框架对测试用例进行维护? 本文为霍格沃兹测试学院优秀学员 Junit 学习笔记.测试开发技能进阶,文末加群. 1.xUnit 是什么 先看 Wikipedia 上的解释: xUn ...

  7. 做python自动化得时候怎么添加断言_在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作...

    在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例.就像功能测试一样,当测试人员做了一些操作之后必然会判断实际结果是否等于预期结果,只不过,这个 ...

  8. 自动化测试用例设计原则

    自动化测试用例设计原则:每一个用例 都是一个闭合的业务操作.用例之间要保持独立 ,不要有操作上的依赖关系,就算有也是测试数据上的依赖.第二个用例 依赖第一个用例产生的数据. 转载于:https://w ...

  9. 三. 自动化测试用例设计

    1.  主要内容:   2.  手工测试用例与自动化测试用例区别 目前自动化测试更多的时候是定位在冒烟测试和回归测试: 冒烟测试执行的是主体功能点的用例. 回归测试执行全部或部分的测试用例. 3.  ...

最新文章

  1. Linux入门最终集! Vue SpringBoot Mybatis-Plus Linux 阿里云!
  2. hbase官方网站声称的兼容是否是100%兼容?
  3. C语言指定编译对齐方式
  4. jzoj4279-[NOIP2015模拟10.29B组]树上路径【树形dp】
  5. 系统学Android从零开始,详细的Android学习指南
  6. python字母变成数字怎么办_在Python中将字母转换为数字
  7. 自定义django表单
  8. 【BZOJ2839】集合计数【BZOJ3622】已经没有什么好害怕的了
  9. Linux上RandomAccessFile访问FTP文件出错
  10. 港科大教授张晓泉:目前AI多做预测分类,还需经济学发现因果关系
  11. 免登录实现CSDN博客代码复制(2021.9.26)
  12. 入门JSP第一步,看这里~
  13. 【学习笔记】seckill-秒杀项目--(2)登录功能及完善
  14. C++扫雷小游戏(附赠源代码)
  15. model.generate返回句子大于1时出现<unk>的情况处理
  16. 快速傅里叶和离散傅里叶的区别?
  17. pentaho SPARK
  18. 论文:Detecting and Correcting for Label Shift with Black Box Predictors(BBSE)
  19. 计网 ---第8章 网络互联设备
  20. GitLab Projects 2020 插件配置

热门文章

  1. react +antd-mobile图片上传插件(ImageUploader,支持七牛云直传)
  2. 修改chrome浏览器的dns为1.1.1.1
  3. vps管理--批量远程桌面管理
  4. 5年前流行的某棋牌游戏大厅源码
  5. 刻意学习:机器学习实战--Task03分类问题:支持向量机
  6. 如何在小程序中实现同一关键词自动回复不同内容?
  7. LeetCode:求容器能装多少水
  8. 【Linux运维入门】Linux环境安装配置JBoss
  9. 3.7 百分比堆积柱形图
  10. 压缩包.zip暴力破解方法