Pytest----多进程并行执行自动化测试脚本
作者:redrose2100   类别:    日期:2022-05-14 14:07:23    阅读:1624 次   消耗积分:0 分

1、不使用并发执行用例方式

如下有十个用例,每个用例中等待5秒,使用pytest顺序执行

  1. import time
  2. def test_testcase_01():
  3. time.sleep(5)
  4. def test_testcase_02():
  5. time.sleep(5)
  6. def test_testcase_03():
  7. time.sleep(5)
  8. def test_testcase_04():
  9. time.sleep(5)
  10. def test_testcase_05():
  11. time.sleep(5)
  12. def test_testcase_06():
  13. time.sleep(5)
  14. def test_testcase_07():
  15. time.sleep(5)
  16. def test_testcase_08():
  17. time.sleep(5)
  18. def test_testcase_09():
  19. time.sleep(5)
  20. def test_testcase_10():
  21. time.sleep(5)

执行结果如下:耗时50秒

2、使用并发执行方式

  • 安装pytest-xdist插件 pip install pytest-xdist

  • 使用 pytest -n auto 默认自动检查系统cpu个数,然后进行并发
    执行结果如下:

  • 也可以指定并发数 pytest -n 2 即并发数2执行
    执行结果如下:
  • 在当前目录下创建一个conftest.py,内容如下,然后使用pytest -n auto
  1. import pytest
  2. import time
  3. @pytest.fixture(scope="session",autouse=True)
  4. def fixture_demo():
  5. time.sleep(10)

执行结果如下:

和上面的结果对比分析可以发现,在并发执行的场景下,pytest仍然遵守session级别的fixture只执行一次的原则,因为和上次执行多耗时10秒,而此次conftest.py中的fixture等待了10秒,所以说明这个fixture只执行了一次

始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/200
个人成就
  • 2022年 : 371 篇 
  • 2023年 : 211 篇 
  • 2024年 : 31 篇 
  • 2025年 : 0 篇 
  • 博客总数: 613 
  • 阅读总量: 714371 
测试开发技术全栈公众号
DevOps技术交流微信群