前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytest + yaml 框架 -44.支持pytest-repeat插件重复执行用例

pytest + yaml 框架 -44.支持pytest-repeat插件重复执行用例

作者头像
上海-悠悠
发布2023-08-22 11:49:36
1510
发布2023-08-22 11:49:36
举报

前言

平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。

使用pip安装pytest-repeat

代码语言:javascript
复制
pip install pytest-repeat

pytest-repeat 基本使用

test_rp.py 示例内容

代码语言:javascript
复制
def test_a1():
    print("a1-------")

def test_a2():
    print("a2------")

命令行带参数--count=3执行,n是重复次数

代码语言:javascript
复制
pytest --count=3 test_rp.py

执行结果

代码语言:javascript
复制
collected 6 items                                     
test_rp.py::test_a1[1-3] PASSED                    [ 16%]
test_rp.py::test_a1[2-3] PASSED                    [ 33%]
test_rp.py::test_a1[3-3] PASSED                    [ 50%]
test_rp.py::test_a2[1-3] PASSED                    [ 66%]
test_rp.py::test_a2[2-3] PASSED                    [ 83%]
test_rp.py::test_a2[3-3] PASSED                    [100%]

从运行结果可以看出,它是 test_a1 执行3次后,再 test_a2 执行3次。

--repeat-scope参数类似于pytest fixture的scope参数,—repeat-scope也可以设置参数:session , module,class或者function(默认值)

  • function(默认)范围针对每个用例重复执行,再执行下一个用例
  • class 以class为用例集合单位,重复执行class里面的用例,再执行下一个
  • module 以模块为单位,重复执行模块里面的用例,再执行下一个
  • session 重复整个测试会话,即所有收集的测试执行一次,然后所有这些测试再次执行等等

使用--repeat-scope=module 重复执行整个模块

代码语言:javascript
复制
pytest --count=3 --repeat-scope=module test_rp.py

mark 标记单个用例重复执行

代码语言:javascript
复制
import pytest

def test_a1():
    print("a1-------")

@pytest.mark.repeat(3)
def test_a2():
    print("a2------")

在 yaml 用例中重复运行

test_rp.yml文件内容

代码语言:javascript
复制
test_a1:
    print: "a1-------"

test_a2:
    print: "a2------"

按模块(单个yaml文件就得一个模块)重复运行

代码语言:javascript
复制
pytest --count=3 --repeat-scope=module test_rp.yml

运行结果跟前面写的py文件用例一样。

在yaml 文件中mark单个用例重复运行

代码语言:javascript
复制
test_a1:
    print: "a1-------"


test_a2:
    mark: repeat(3)
    print: "a2------"

此时test_a2会被执行3次。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • pytest-repeat 基本使用
  • 在 yaml 用例中重复运行
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档