一、测试报告
安装pytest测试报告插件 ????????1.在线安装? pip install pytest-html ????????2.离线安装 下载对应的离线安装包,解压后进入对应目录,执行python setup.py install ????????3.pycharm安装 ????????flie-setting-project-project interpreter-add:pytest-html install 使用 ????????在pytest配置文件中配置报告文件地址 ????????addopts = -s -v --html=./report.html ????????表示报告存储在当前配置文件目录下,并命名为report.html
新建py文件chajian.py
import pytest
def add(a,b):
return a + b
# 定义一个pytest类
class Test_add:
# 定义一个pytest方法
def test_add_001(self):
result = add(5,3)
assert result == 8
def test_add_002(self):
result = add(105,9)
assert result == 114
def test_add_003(self):
result = add(20,57)
assert result == 70
新建配置文件pytest.ini
[pytest]
addopts = -s -v --html=report/report8.html
testpaths = ./scripts
python_files = cha*.py
python_classes = Test*
python_functions = test_*
直接执行pytest命令,查看html文件测试报告
?二、测试用例执行排序
pytest-ordering是控制测试用例执行顺序的插件 ????????1.在线安装? pip install pytest-ordering ????????2. 离线安装:下载对应的离线安装包,解压后进入对应目录,执行python setup.py install ????????3. pycharm安装 ????????flie-setting-project-project interpreter-add:pytest-ordering install 使用 ????????@pytest.mark.run(order=x)? # x表示的是整数(可以是正数也可以是负数) ????????正数负数都有的情况下,值越小,优先级越高 ????????既有正数,又有负数,呢么正数优先级高
import pytest
def add(a,b):
return a + b
# 定义一个pytest类
class Test_add:
# 添加控制执行顺序的方法
@pytest.mark.run(order=5)
# 定义一个pytest方法
def test_add_001(self):
result = add(5,3)
assert result == 8
@pytest.mark.run(order=6)
def test_add_002(self):
result = add(105,9)
assert result == 114
@pytest.mark.run(order=1)
def test_add_003(self):
result = add(20,57)
assert result == 70
三、失败重试
pytest-rerunfailures,pytest-rerun安装 ????????1.在线安装? pip install pytest-rerunfailures,pytest-rerun ????????2. 离线安装:下载对应的离线安装包,解压后进入对应目录,执行python setup.py install ????????3. pycharm安装 ????????flie-setting-project-project interpreter-add:pytest-rerunfailures install ????????pytest-rerun install 使用 ????????在配置文件的appopts参数行中增加对应的参数项:--reruns 3 ????????表示若执行失败,会自动将失败用例执行1次,再次执行成功则不会继续执行,若执行失败则继续执行,直至3次
配置文件pytest.ini
[pytest]
addopts = -s -v --html=report/report8.html --reruns 2
testpaths = ./scripts
python_files = cha*.py
python_classes = Test*
python_functions = test_*
查看相应测试报告
?四、用例跳过
跳过,使用装饰器实现,可针对测试类和测试方法都可以实现跳过功能 ????????@pytest.mark.skipif(condition,reason="None") ????????@pytest.mark.skip(reason="None") ????????condition表示跳过的条件 ????????reason表示跳过的原因
import pytest
def add(a,b):
return a + b
version = 23
# 针对测试类跳过
# @pytest.mark.skip("版本更新无需测试")
# 定义一个pytest类
class Test_add:
# 添加控制执行顺序的方法
@pytest.mark.run(order=5)
# 定义一个pytest方法
def test_add_001(self):
result = add(5,3)
assert result == 8
# 定义若version大于20则该方法不执行
@pytest.mark.skipif(version>20, reason="版本大于20则该用例不执行")
@pytest.mark.run(order=6)
def test_add_002(self):
result = add(105,9)
assert result == 114
@pytest.mark.run(order=1)
def test_add_003(self):
result = add(20,57)
assert result == 70
执行后打开相应测试报告
?
|