【接口自动化测试基础之路 08】fixture和conftest

本文记录关于自动化测试的基础学习内容

使用的语言:python

从这里开始介绍:pytest的夹具


一、使用fixture实现部分用例前后置

@pytest.fixture(scope=‘作用域’, params=‘数据驱动’, autouser=‘自动执行’, ids=‘自定义参数名’, name=‘夹具函数别名’)

1、scope:作用域
  function:在用例前后执行
  class:在类前后执行
  module:在py文件前后执行
  package/session:在每个package前后执行
2、用例级别使用步骤:
插入图片描述](https://img-blog.csdnimg.cn/89202b116bba4ff7ab9c0b3f159ec307.png)

注意:
  ①:若设置夹具函数的参数 autouser=True,则所有用例都会自动执行,一般不为True
  ②:yield和return都可以返回值,不同的是,yield是返回一个对象(对象中可以含多个值),且会执行后面接的语句,从而实现后置操作
3、类级别使用步骤:
在这里插入图片描述
4、模块级别使用步骤:
在这里插入图片描述
注意:模块级别的夹具函数,一般不指定模块,且自动调用
5、package/session级别使用步骤:
一般和conftest.py文件一起使用
6、剩余参数:
  ①:params:数据驱动
    数据类型:列表、元组、字典列表、字典元组
    使用示例:
在这里插入图片描述
注意:夹具函数需要用 request 接收数据,用 request.param 获取数据,每次取一个值

  ②:ids:自定义参数名(仅了解)
    需要和params一起使用
在这里插入图片描述  ③:name:给夹具函数起别名(仅了解)
注意:后续调用夹具函数就只能用别名,而不能使用夹具函数名

二、作用域为package/session时,配合conftest.py使用

conftest.py文件介绍:
  1、文件名固定
  2、主要用于单独存放fixture固件
  3、可以在多个包或多个py文件共享前后置(例如:登录,某模块共性)
  4、conftest文件内的夹具函数不需要导包,可直接使用
  5、conftest文件可以有多个,且多个层级使用(先执行全局,后执行共性)
  6、作用域为包级别时,多个包前后只执行一次(不适合数据驱动)
  7、conftest文件中夹具函数执行优先级高于同级别:
    function级别高于setup和teardown
    class级别高于setup_class和teardown_class
    module级别高于setup_module和teardown_module
使用场景:
  1、初始化日志对象(避免日志重复)
  2、初始化数据库(连接、关闭)

三、pytest原生断言

assert 语句

四、pytest结合allure生成报告

1、安装JDK环境
2、安装allure文件
3、安装allure-pytest插件
以上环境安装的教程网上有很多,且会有人更新,这里就不介绍了
4、修改pytest.ini配置文件,运行时在reports目录下生成temp临时目录,存放json格式的临时报告
在这里插入图片描述
5、修改run.py执行文件,将json格式的临时报告转换为html格式的报告
在这里插入图片描述
执行上述的run.py文件,会自动生成测试报告(如果没reports目录,也会自动生成)
在这里插入图片描述
选择浏览器打开html文件,就可以看到简单的allure报告了
下面我们学习怎么定制allure报告

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值