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'])

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


参数:–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 
 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值