zoukankan      html  css  js  c++  java
  • 分布式测试插件之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,确保同一个组的测试用例在同一个进程中执行

  • 相关阅读:
    ubuntu安装tftp服务
    ubuntu编译openwrt
    centos8更换阿里云yum源和epel源
    centos中samba共享设置
    centos7、8防火墙设置查询
    openwrt编译报错集锦
    python学习笔记--pip安装pyaudio库报错ERROR: Command errored out with exit status 1:解决办法
    python学习笔记---python3中Base64编码时参数不能为str
    python学习笔记---BeautifulSoup模块爬图
    centos系统时间修改
  • 原文地址:https://www.cnblogs.com/pythonwork/p/15135013.html
Copyright © 2011-2022 走看看