pytest重运行失败用例


 


 

python版本必须3.5以上;pytest版本必须是5.0以上,不然会出现一些乱七八糟的问题,这也是官方建议。


安装 pytest-rerunfailures 
pip install pytest-rerunfailures

重运行是指运行失败了,间隔几秒后再去运行,延迟时间可指定,次数也可指定 。

 1 F:\git\AuomationTest\TestPytest\code\ch1>pytest  --reruns 5
 2 ================================================================================ test session starts ================================================================================
 3 platform win32 -- Python 3.7.7, pytest-6.2.0, py-1.9.0, pluggy-0.13.1
 4 plugins: allure-pytest-2.8.24, cov-2.8.1, emoji-0.2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, rerunfailures-9.1.1, xdist-2.1.0
 5 collected 6 items                                                                                                                                                                    
 6 
 7 test_one.py .                                                                                                                                                                  [ 16%]
 8 test_two.py RRRRRF                                                                                                                                                             [ 33%]
 9 tasks\test_four.py .RRRRRF                                                                                                                                                     [ 66%]
10 tasks\test_three.py ..                                                                                                                                                         [100%]
11 
12 ================================================================= 2 failed, 4 passed, 1 warning, 10 rerun in 0.13s ==================================================================
我输入的命令:pytest  --reruns 5  
// reruns 指的就是重运行的的次数

用例运行失败了后,就会再运行5次

图片上的黄色大写R就是重运行的标识,可以看出运行失败的又运行了5次 。

 

  下来

    我们

      继续 .....

 

 1 F:\git\AuomationTest\TestPytest\code\ch1>pytest --reruns 5 --reruns-delay 5
 2 ================================================================================ test session starts ================================================================================
 3 platform win32 -- Python 3.7.7, pytest-6.2.0, py-1.9.0, pluggy-0.13.1
 4 plugins: allure-pytest-2.8.24, cov-2.8.1, emoji-0.2.0, forked-1.3.0, html-3.1.1, metadata-1.11.0, rerunfailures-9.1.1, xdist-2.1.0
 5 collected 6 items                                                                                                                                                                    
 6 
 7 test_one.py .                                                                                                                                                                  [ 16%]
 8 test_two.py RRRRRF                                                                                                                                                             [ 33%]
 9 tasks\test_four.py .RRRRRF                                                                                                                                                     [ 66%]
10 tasks\test_three.py ..                                                                                                                                                         [100%]
11 
12 ================================================================= 2 failed, 4 passed, 1 warning, 10 rerun in 50.16s =================================================================

是不是觉得和上面的图片显示的一样呀,虽然显示的是一样,但是在运行期间是不一样的 。

这次输入的命令: pytest --reruns 5 --reruns-delay 5 
// --reruns-delay 5  是指延迟5秒重运行一次,重运行5次

当然我们也可以指定相应错误重运行

// 只针对断言错误的重运行 5pytest --reruns 5 --only-rerun AssertionError

// 只针对断言错误或值错误的重运行 5pytest --reruns 5 --only-rerun AssertionError --only-rerun ValueError

重运行单个用例

 1 import pytest
 2 
 3 
 4 @pytest.mark.flaky(reruns=5) 
 5 def test_passing():
 6     assert (1, 2, 3) == (1, 2, 3)
 7 
 8 
 9 @pytest.mark.flaky(reruns=5, reruns_delay=2) 
10 def test_failing():
11     assert (1, 2, 3) == (3, 2, 1)

 


 

小小总结可能会解决你的问题,也可能解决不了你的问题,但还是希望对您有所帮助,感谢阅读,如有疑义,欢迎来扰!未完待续…

一直都在努力变好中,希望您也是,加油!

 

 

 


 

转载请附带原文链接 ( https://www.cnblogs.com/lifeng0402/articles/14284214.html ),否则追究法律责任,谢谢!

 


 

posted @ 2021-01-15 21:00  一名小测试  阅读(577)  评论(0编辑  收藏  举报