背景:在app自动化测试的时候,有时候会因为网络问题或者其他未知的问题导致case执行失败(实际程序无bug)
pytest 提供rerunfailures插件解决此问题,对失败的用例进行自动重跑:
安装:pip install pytest-rerunfailures
import pytest,os
cur_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))))
result_path = cur_path + '/web/autotest/ui/result/'
result_report = cur_path + '/web/autotest/ui/result_report/'
if not os.path.exists(result_path):os.makedirs(result_path)
if not os.path.exists(result_report):os.makedirs(result_report)
if __name__ == '__main__':
pytest.main([
'-m','smoke', #筛选带有smoke标记的所有测试用例
"--reruns", "1", #将错误的用例重跑1次
"--reruns-delay","1", #重跑case的间隔时间
'--clean-alluredir',
'--alluredir=' + result_path,
'test_suites/',
])
os.system("allure generate --clean "+result_path+" --report-dir "+result_report) #转换为html
运行结果:失败的用例重新执行了一次
image.png
网友评论