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,确保同一个组的测试用例在同一个进程中执行

  • 相关阅读:
    CDN是什么?
    CSS实现隐藏滚动条同时又可以滚动
    顶部固定 页面内容部分可以滚动
    H5对话框水平垂直居中
    移动端调试神器(eruda)
    JAVA_OA管理系统(三)番外篇:Myeclipse导入Spring源码包
    Spring Framework Reference Documentation手册官网下载地址
    Spring Framework Reference Documentation手册官网下载地址
    JAVA_OA(六):SpringMVC登陆实例
    JAVA_OA(五)(番外篇):SpringMVC乱码解决(post,get)
  • 原文地址:https://www.cnblogs.com/pythonwork/p/15135013.html
Copyright © 2011-2022 走看看