pytest常用插件3-失败重试

本文介绍了pytest-rerunfailures插件的使用,该插件允许在测试失败后自动重试。通过pip安装,并在pytest.ini配置文件中设置重试次数和生成测试报告。在测试报告中,可以查看到每次重试的详细记录,方便进行故障排查和修复。

1.插件名称:pytest-rerunfailures,用例运行失败后,根据设置的参数自动重试
2.
安装方式:
        1)安装包方式 python setup.py install
        2)
命令行 pip3 install pytest-rerunfailures
   
使用方法:
        命令行格式:pytest --reruns n # n:为重试的次数

3.运行方式:
        1)修改Test_App/pytest.ini文件,添加失败重试参数,即:addopts = -s  --reruns 2 --html=./report.html
            # -s:
输出程序运行信息
            # --reruns 2 :失败测试函数重试两次
            # --html=./report.html 在当前目录下生成report.html文件
        2)命令行进入测试用例目录,执行命令: pytest
4.执行结果:
        1)在测试报告中可以看到两次重试记录

### pytest 失败重跑配置方法或插件 在使用 Pytest 进行自动化测试时,失败用例的重跑功能可以显著提高测试的稳定性。以下是实现这一功能的具体方法和步骤。 #### 1. 使用 pytest-rerunfailures 插件 `pytest-rerunfailures` 是一个常用插件,用于在测试失败时重新运行指定次数。可以通过以下命令安装该插件: ```bash pip3 install pytest-rerunfailures -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ``` 安装完成后,可以在命令行中通过 `--reruns` 参数设置失败用例的重试次数[^1]。 #### 2. 命令行参数配置 在运行测试时,可以使用以下命令行参数来启用失败重跑功能: ```bash pytest --reruns <重试次数> --reruns-delay <每次重试之间的延迟秒数> ``` 例如,如果希望失败的测试用例最多重试 3 次,并且每次重试之间等待 2 秒钟,则可以运行以下命令: ```bash pytest --reruns 3 --reruns-delay 2 ``` 这将确保所有失败的测试用例在最终标记为失败之前,最多尝试运行 3 次[^2]。 #### 3. 配置文件中的设置 除了命令行参数外,还可以通过 Pytest 的配置文件(如 `pytest.ini` 或 `tox.ini`)来设置默认的重试行为。以下是一个示例配置: ```ini [pytest] addopts = --reruns 3 --reruns-delay 2 ``` 将上述内容添加到配置文件后,每次运行 Pytest 时都会自动应用这些设置,无需手动指定命令行参数[^4]。 #### 4. 装饰器方式控制重试行为 对于更高级的需求,可以使用装饰器来单独控制某些测试用例的重试行为。例如: ```python import pytest @pytest.mark.flaky(reruns=3, reruns_delay=2) def test_example(): assert False ``` 在此示例中,`test_example` 测试用例将在失败时最多重试 3 次,每次重试之间延迟 2 秒[^3]。 #### 5. 注意事项 - 确保测试环境稳定,避免因必要的重试导致测试时间过长。 - 如果测试用例依赖外部资源(如网络连接),建议结合超时机制一起使用,以减少稳定因素的影响[^2]。 ```python @pytest.mark.flaky(reruns=3, reruns_delay=2) def test_network_call(): response = requests.get("http://example.com") assert response.status_code == 200 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值