pytest功能
- 支持参数化
- 简单的单元测试
- 复杂的功能测试
- 接口测试:pytest+requests
- 做selenium/appnium
- 具有很多第三方插件,并且可以自定义扩展
pytest-selenium(集成selenium)
pytest-html(完美html测试报告生成)
pytest-rerunfailures(失败case重复执行)
pytest生成测试报告,参考:https://www.jianshu.com/p/8fa34a3c82bd
https://www.jianshu.com/p/aa205cf7619e
环境搭建
# 先安装依赖
pip install py colorama
# 依次安装
pip install -U pytest
pip install -U pytest-html
pip install -U pytest-rerunfailures
链接:https://www.jianshu.com/p/f05315bdf09a
失败自动重跑
参数:–lf
–If参数(last fail):运行上次运行失败的测试用例,如果没有失败用例则运行全部测试用例。
使用方式:在运行函数或命令行中传入参数: --lf 即可。
荔枝:我们的测试用例正常写即可,其中第二条用例是会运行失败的;在程序的入口我们显示通过pytest.main()方法正常运行了一次测试,然后又通过pytest.main()运行了上次测试失败的用例。
#文件名是test_firstFile.py
#coding=utf-8
import pytest
@pytest.fixture()
def myfixture():
print("执行myfixture")
class Test_Pytest():
def test_one(self):
print("test_one方法执行" )
assert 1==1
def test_two(self):
print("test_two方法执行" )
assert "s" in "love"
def test_three(self,myfixture):
print("test_three方法执行" )
assert 3-1==2
if __name__=="__main__":
pytest.main(['-s','test_firstFile.py'])
pytest.main(['-s','--lf','test_firstFile.py'])
运行结果如下图:我们可以看到第一执行测试中我们的第二个用例失败了;第二次只执行了第二个测试用例。
参数:–ff
–ff参数(fail first):运行所有的测试用例,上次运行失败的用例优先执行。
使用方式:在运行函数或命令行中传入参数: --ff 即可。
荔枝:测试用例部分和上面的一样,便不再展示。
if __name__=="__main__":
pytest.main(['-s','test_firstFile.py'])
pytest.main(['-s','--ff','test_firstFile.py'])
运行结果如下图:可以看到第一次运行我们的第二条用例执行失败了;第二次运行先是执行了第二条测试用例,随后运行了其他用例。需要注意的我们固件也随着运行了一遍。
批处理命令实现自动重跑
我们上面演示的是在代码中实现测试的运行以及重跑,当然我们也可以通过命令行的方式执行测试(这里以–lf为例)。
打开cmd~
第一条命令:正常运行测试用例。当然你可以根据需求传入其他参数,不只是 -s。
pytest -s C:\Users\Administrator\PycharmProjects\firstpython\testPytest\test_firstFile.py
1
第二条命令:运行上一次运行失败的用例。
pytest -s --lf C:\Users\Administrator\PycharmProjects\firstpython\testPytest\test_firstFile.py
1
结果图:
为了方便执行,我们可以将上面两个命令放在.bat文件中,这样双击即可。
新建 StartTest.bat文件,内容如下:前两条命令使我们刚刚学习的两条命令,你可以根据需求添加一些参数,我们这里将两个测试结果分别以HTML形式放在D盘下;我们在每个命令前都添加了call 命令,在bat中用来在一个批处理脚本中调用另外一个批处理脚本;在最后我们加了pause,在bat中用来执行结束后不自动关闭cmd窗口。
call pytest -s --html=D:\report1.html C:\Users\Administrator\PycharmProjects\firstpython\testPytest\test_firstFile.py
call pytest -s --html=D:\report2.html --lf C:\Users\Administrator\PycharmProjects\firstpython\testPytest\test_firstFile.py
pause
双击完成的bat脚本,运行完成后会发现D盘中出现了两个测试报告。
---------------------
原文:https://blog.csdn.net/qq_39721240/article/details/88805817