背景

在用 pytes 做自动化测试的时候,有时候我们的用例会非常多,可能每个用例又会有 IO 等待。如果顺序运行的话,就会很耗时。所以希望可以并发运行用例。这时可以考虑用多线程插件 pytest-parallel,它可以比 pytest-xdist 多进程版本有更高的并发。但是 pytest-parallel 无法和测试报告插件 allure-pytest 一起使用。它会导致 allure-pytest 无法正常生成测试报告。所以写了这个 pytest-multithreading-allure 插件兼容这个问题

使用示例

allure-pytest 和 pytest-parallel 网上都有很多教程,这里不做介绍,直接贴一个简单的代码实例

import time

import pytest
import allure

@allure.title("测试用例1")
def test_a_01():
    print("----------------->>> test_a_01")
    time.sleep(1)
    assert 1

@allure.title("测试用例2")
def test_a_02():
    print("----------------->>> test_a_02")
    time.sleep(1)
    assert 1


if __name__ == "__main__":
    pytest.main(["-s", "test_allure.py","--tests-per-worker=2","--alluredir", "report/"])

没安装 pytest-multithreading-allure 插件之前运行这个代码,不会在 report 文件夹生成 allure 的测试报告。安装 pip install pytest-multithreading-allure 插件后,allure 的使用方式不变。再次运行上面的代码,可以在 report 文件夹生成测试报告了


↙↙↙阅读原文可查看相关链接,并与作者交流