Pytest-发送测试报告

一、pytest支持生成多种格式的测试报告。

1、生成 JUnit XML 文件

> pytest ./test_dir --junit-xml=./report/log.xml

2.生成在线测试报告

> pytest ./test_dir --pastebin=all

上述代码可生成一个 session-log链接,复制链接,通过浏览器打开,会得到一张 HTML

格式的测试报告。

3.pytest的扩展

①pytest-html可以生成 HTML格式的测试报告。首先,通过 pip命令安装 pytest-html扩

展。

> pip install pytest-html

其次,运行测试用例,并生成测试报告。

> pytest ./ --html=./report/result.html

②pytest-rerunfailures可以在测试用例失败时进行重试。

> pip install pytest-rerunfailures

pytest -v test_parameterize.py --reruns 3

运行报告

从运行结果可以看到,在测试用例运行失败后进行了 3次重试。因为 Web自动化测试

会因为网络等因素导致测试用例运行失败,而重试机制可以增加测试用例的稳定性。

③pytest-parallel扩展可以实现测试用例的并行运行。

> pip install pytest-parallel

创建 test_ parallel.py,在每条测试用例中分别设置 sleep()来模拟运行时间较长的测试用

例。

#coding:utf-8

from time import sleep

def test_01():

    sleep(3)

def test_02():

    sleep(5)

def test_03():

    sleep(6)

不使用线程运行测试用例。

> pytest -q test_parallel.py

3 passed in 14.05 seconds  ... [100%]

参数“--tests-per-worker”用来指定线程数,“auto”表示自动分配。

pytest -q test_parallel.py --tests-per-worker auto

pytest-parallel: 1 worker (process), 3 tests per worker (threads)

3 passed in 6.02 seconds  ... [100%]

运行时间由 14.05s被缩短到 6.02s,因为运行时间最长的测试用例为 6s。

④多线程并行与分布式执行:pytest-xdist

pip install pytest-xdist

多个CPU并行执行用例,需要在pytest后面添加-n参数。

如果参数为auto,会自动检测系统的CPU数目。如果参数为数字,则指定运行测试的处理器进程数。

pytest -n auto、pytest -n [num]

将测试报告与多线程并行结合在一起使用:

pytest -v -s -n 3 ./ --html=./report/results.html

pytest -v -s -n 3 ./ --html=./report/results.html --self-contained-html

将测试报告与多线程、重复请求失败的用例,结合在一起使用:

pytest -v -s --reruns 3 -n 3 ./ --html=./report/results.html --self-contained-html

测试报告图1
测试报告图2

你可能感兴趣的:(Pytest-发送测试报告)