接着上一篇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的值越小,就越先执行
三、并发运行测试用例
用例比较多的时候,按顺序执行测试用例花费的时间比较长,我们可以并发执行测试用例,并发执行的插件有两个比较常用的
- pytest-parallel
- 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