• 分布式测试插件之pytest-xdist


    • pytest-xdist的出现就是为了让自动化测试用例可以分布式执行,从而节省自动化测试时间
    • pytest-xdist是属于进程级别的并发

    插件的安装

    pip3 install pytest-xdist -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

    pytest-xdist通过一些独特的测试执行模式扩展了pytest

    • 测试运行并行化:如果有多个CPU或主机,则可以将它们用于组合的测试运行。 这样可以加快开发速度或使用远程计算机的特殊资源。
    • --looponfail:在子进程中重复运行测试。 每次运行之后,pytest都会等到项目中的文件更改后再运行之前失败的测试。 重复此过程,直到所有测试通过,然后再次执行完整运行。
    • 跨平台覆盖:您可以指定不同的Python解释程序或不同的平台,并在所有这些平台上并行运行测试
    pytest -s -n auto

    知识点

    • 可以看到,最终运行时间只需要6s,我的电脑是真6核,假12核
    • -n auto:可以自动检测到系统的CPU核数;从测试结果来看,检测到的是逻辑处理器的数量,即假12核
    • 使用auto等于利用了所有CPU来跑用例,此时CPU占用率会特别高
    • pytest-xdist是可以和pytest-html很好的相结合

    •  

      pytest -s -n auto --html=report.html --self-contained-html
    • pytest-xdist按照一定的顺序执行

       pytest-xdist默认是无序执行的,可以通过 --dist 参数来控制顺序

       --dist=loadscope 

      • 将按照同一个模块module下的函数和同一个测试类class下的方法来分组,然后将每个测试组发给可以执行的worker,确保同一个组的测试用例在同一个进程中执行
      • 目前无法自定义分组,按类class分组优先于按模块module分组

       --dist=loadfile 

      按照同一个文件名来分组,然后将每个测试组发给可以执行的worker,确保同一个组的测试用例在同一个进程中执行

  • 相关阅读:
    我和Socket的第一次亲密接触
    JS获取浏览器高度,JS获取屏幕高度,JS获取宽屏
    GridControl默认不选中任何行样式
    C# Image和Byte[]互相转换
    导出Excel神器最终版
    Log4NET SQL配置
    Log4NET Oracle 配置
    oracle客户端配置
    pgsql环比和同比计算
    02_接管Activiti流程用户及用户组
  • 原文地址:https://www.cnblogs.com/pythonwork/p/15135013.html
Copyright © 2020-2023  润新知