pytest---失败测试用例,自动重跑的方法总结

pytest功能

  1. 支持参数化
  2. 简单的单元测试
  3. 复杂的功能测试
  4. 接口测试:pytest+requests
  5. 做selenium/appnium
  6. 具有很多第三方插件,并且可以自定义扩展
    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'])

运行结果如下图:我们可以看到第一执行测试中我们的第二个用例失败了;第二次只执行了第二个测试用例。

pytest---失败测试用例,自动重跑的方法总结_第1张图片
参数:–ff

–ff参数(fail first):运行所有的测试用例,上次运行失败的用例优先执行。
使用方式:在运行函数或命令行中传入参数: --ff 即可。

荔枝:测试用例部分和上面的一样,便不再展示。

if __name__=="__main__":
    pytest.main(['-s','test_firstFile.py'])
    pytest.main(['-s','--ff','test_firstFile.py'])

运行结果如下图:可以看到第一次运行我们的第二条用例执行失败了;第二次运行先是执行了第二条测试用例,随后运行了其他用例。需要注意的我们固件也随着运行了一遍。

pytest---失败测试用例,自动重跑的方法总结_第2张图片
批处理命令实现自动重跑

我们上面演示的是在代码中实现测试的运行以及重跑,当然我们也可以通过命令行的方式执行测试(这里以–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
结果图:

pytest---失败测试用例,自动重跑的方法总结_第3张图片

为了方便执行,我们可以将上面两个命令放在.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 
 

你可能感兴趣的:(Python学习笔记,pytest)