pytest测试框架系列(5)-常用的pytest插件

2022-07-21 14:58:48 浏览数 (1)

接着上一篇pytest测试框架的分享

这次主要分享的是pytest常用的插件,用好这些插件,对我们做自动化测试会起很好的作用。

一、用例失败重试插件

在UI自动化测试的时候,有可能会出现环境或者网络等问题,导致测试脚本失败,如果我们可以将脚步重新跑一次或者两次,可能测试脚本就跑通过,如果还是没有通过,那大概率是BUG,用例失败重跑,可以减少人工分析测试脚本失败的原因的工作量。pytest用到用例失败重跑的插件是pytest-rerunfailures

代码语言:javascript复制
pip install pytest-rerunfailures

代码示例如下:

代码语言:javascript复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
def test_num():
    assert 2 == 2

def test_equal():
    assert 1 == 2

通过pip安装插件,然后通过以下命令运行,可以看到失败的总共运行了3次,第三次才标记失败

代码语言:javascript复制
pytest -v -s test_failures.py --reruns 2

二、改变测试用例执行顺序

pytest的测试用例执行顺序是按照assii大小进行执行的,但是有时候我们需要改变执行顺序才能符合我们的预期,我们可以通过pytest-ordering插件来更改执行顺序

代码语言:javascript复制
pip install pytest-ordering

示例代码

代码语言:javascript复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pytest
@pytest.mark.run(order=2)
def test_num():
    assert 2 == 2

@pytest.mark.run(order=1)
def test_equal():
    assert 1 == 2
通过装饰器的方式order的值越小,就越先执行

三、并发运行测试用例

用例比较多的时候,按顺序执行测试用例花费的时间比较长,我们可以并发执行测试用例,并发执行的插件有两个比较常用的

  1. pytest-parallel
  2. pytest-xdist

pytest-parallel

代码语言:javascript复制
pip install pytest-parallel

通过命令执行所有的测试用例

代码语言:javascript复制
pytest --workers 2 --tests-per-worker 3
# 指定2个进程并发,每个进程最多允许3个线程

pytest-xdist

代码语言:javascript复制
pip install pytest-xdist

#运行的命令
pytest -n x  x是线程数

四、测试报告插件

pytest-html是pytest常用的一个测试报告插件

代码语言:javascript复制
pip install pytest-html

通过执行命令加上--html参数运行,比如

pytest -v -s --html=report.html

0 人点赞