pytest + yaml 框架 -59.用例失败重跑机制pytest-rerunfailures

发布时间 2023-12-09 11:01:19作者: 上海-悠悠

前言

有些接口可能不太稳定,第一次跑的时候由于网络原因或者其它原因失败,但是重新跑2次又成功了。
对于这种需要重新跑几次的场景,可以使用用例失败重跑机制,需安装pytest-rerunfailures 插件。

场景示例

失败重跑需要依赖 pytest-rerunfailures 插件,使用 pip 安装就行

pip install pytest-rerunfailures

关于reruns参数的2个用法

re-run failing tests to eliminate flaky failures:
  --reruns=RERUNS       number of times to re-run failed tests. defaults to 0.
  --reruns-delay=RERUNS_DELAY
                        add time (seconds) delay between reruns.

以下示例,故意让第二个用例失败test_demo.yml

test_get_demo:
  name: get
  request:
    method: GET
    url: http://httpbin.org/get
  validate:
    - eq: [status_code, 200]

test_post_demo:
  name: get
  request:
    method: POST
    url: http://httpbin.org/post
  validate:
    - eq: [status_code, 201]

运行用例

pytest test_demo.yml

失败重跑

设置 --reruns 2 重跑2次

pytest test_demo.yml --reruns 2

还可以在重跑的时候加间隔时间--reruns-delay 5 单位是秒

pytest test_demo.yml --reruns 2 --reruns-delay 5