美文网首页
pytest常用:fixture、传参、标记、重运行

pytest常用:fixture、传参、标记、重运行

作者: DayBreakL | 来源:发表于2022-03-10 16:53 被阅读0次

一、pytest

unittest和pytest区别:

共同点:

  1. 测试框架 都是通过代码来构建测试用例、收集用例、运行用例、生成报告

    unittest、pytest、nose 单元测试框架
    behava 行为驱动框架

区别:

  1. pytest基于unittest,可以允许unittest的用例
  2. unittest 按模版套 写用例-->TestCase,pytest 灵活,写用例-->可以写成方法、可以写成类。
image.png image.png image.png image.png image.png

pytest插件库:

https://docs.pytest.org/en/latest/reference/plugin_list.html#plugin-list

fixture

image.png image.png image.png

tips:

session :收集所有的测试用例执行完成,一次session(会话)

前置得到的数据,怎么传递给测试用例:

yield True,100,数组

用例如何接收:fixture的函数名,就代表返回值

fixture autouse控制是否自动调用,默认是关闭的,开启所有函数都会调用。一般是在需要的地方主动调用。


image.png

调用fixture

image.png
  • 单个方法中直接调用

    image.png

    单个方法调用:

    image.png
  • 使用fixture装饰器调用

    类下每个用例都执行:


    image.png
![image.png](https://img.haomeiwen.com/i12041448/a5996fb14c8321d4.image?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

pytest传参

测试函数的传参两种方式:fixture、参数化(ddt)

image.png

一个参数a,代表元组(1,3,4),一个参数a,b,c分别代表1,3,4


image.png

笛卡尔积的方式,第一组,是x的0,和y的2,第二组是x的0和y的3,


image.png

mark打标记

可以选择全量用例运行,也可以选择打标记的用例运行。

@pytest.mark.smoke
def test_case1():
    print("冒烟测试case1")

使用步骤:

  1. 先注册标记名

    创建:pytest.ini 文件,一般放在根目录下,文件内容:

    [pytest]
    markers=
        markname1:(标记说明,可写,须为英文)
        markname2:
        markname3:
    
  2. 给测试用例、测试类打标记

    语法:
    @pytest.mark.已注册的标记名

  3. 按标记运行用例

    pytest命令行: pytest "-m","标记名"

    在收集到的用例中,只运行标记名的用例。

多个mark装饰器运行规则:

@pytest.mark.demo
@pytest.mark.smoke
def test_case1():
    print("冒烟测试case1")

命令行: pytest "-m","demo and smoke"
命令行: pytest "-m","demo or smoke"

image.png

重运行机制

失败用例重运行。一旦失败,马上重新运行。

image.png

相关文章

网友评论

      本文标题:pytest常用:fixture、传参、标记、重运行

      本文链接:https://www.haomeiwen.com/subject/rgzfdrtx.html