【conftest】和【fixtures】
创始人
2024-09-25 02:45:53
0

一、 conftest.py 文件

  作用:存放case的前提条件和后置条件配置函数;一般该类函数都会使用fixture装饰(fixture该篇第二点会介绍);使用conftest里面的函数时不需要导入 conftest.py 这个文件。只需将函数名作为变量传入test_case即可调用;
  使用 conftest.py 的规则:
特点:

  1. conftest.py 这个文件名是固定的,不可以更改。
  2. conftest.py 与运行用例在同一个包下,并且该包中有 init.py 文件
  3. 使用的时候不需要导入 conftest.py,pytest 会自动识别到这个文件
  4. 放到项目的根目录下可以全局调用,放到某个 package 下,就在这个 package 内有效。

二、fixture

  pytest中可以使用@pytest.fixture装饰器来装饰一个方法,被装饰方法的方法名可以作为一个参数传入到测试方法中。可以使用这种方式来完成测试之前的初始化,也可以返回数据给测试函数;
  fixture里面有一个参数scope,通过scope可以控制fixture的作用范围,根据作用单位大小划分为:session>module>class>function

  1. function函数或者方法级别都会被调用
  2. class类级别调用一次
  3. module模块级别调用一次
  4. session是多个文件调用一次(可以.py文件调用,每个.py文件就是一个module);fixture scope 为 session 级别是可以跨 .py 模块调用的,也就是当我们有多个 .py 文件的用例时,如果多个用例只需调用一次 fixture,可以将 scope='session',并且写到 conftest.py 文件里。写到 conftest.py 文件可以全局调用这里面的方法。

2.1 .将fixture作为函数参数
  通常使用setup和teardown来进行资源的初始化。如果有这样一个场景,测试用例1需要依赖登录功能,测试用例2不需要登录功能,测试用例3需要登录功能。这种场景setup、teardown无法实现,可以使用pytest fixture功能,在方法前加个@pytest.fixture装饰器,加了这个装饰器的方法可以以参数的形式传入到方法里面执行。
2.2 将fixture作为模块参数
  整个模块有多条测试用例,需要在全部用例执行之前打开浏览器,全部执行完之后去关闭浏览器,打开和关闭操作只执行一次,如果每次都重新执行打开操作,会非常占用系统资源。这种场景除了setup_module,teardown_module可以实现,还可以通过设置模块级别的fixture装饰器(@pytest.fixture(scope="module"))来实现

如果每条测试用例都需要添加 fixture 功能,则需要在每一要用例方法里面传入这个fixture的名字,这里就可以在装饰器里面添加一个参数 autouse='true',它会自动应用到所有的测试方法中,只是这里没有办法把返回值给测试用例。

俗话说的好百闻不如一见,下面展示一下,我们经常使用的场景;

示例例:

下图就是conftest.py文件中的前置条件函数【ModulInit】,并且以fixture装饰;

注:【ModulInit】该函数主要功能是登录设备,并获取该设备型号

下图是test_case函数调用前置条件函数的方式;将前置条件函数名称直接作为参数传入到case中,那么在执行该case之前,程序会自动先执行前置函数【ModulInit】;然后再执行case;并且该前置函数是有返回值的(返回值为一个列表),使用返回值也是直接前置函数名称后跟序号来取;ModulInit[0/1/2]

相关内容

热门资讯

秒懂普及”新长虹房卡领取码“人... 房卡领取码是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:113857776许多玩家在游戏中会购买房...
一分钟实测分享”新永和是如何购... 一分钟实测分享”新永和是如何购买的“详细房卡使用教程游戏中心打开微信,添加客服【113857776】...
秒懂百科”新上游房卡客服“金花... 秒懂百科”新上游房卡客服“金花牛牛房卡充值游戏中心打开微信,添加客服【113857776】,进入游戏...
秒懂百科”新下游房卡在哪里买“... 来教大家如何使用房卡在哪里买房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添...
实测分享”新道游房卡获取方式“... 房卡获取方式是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:113857776许多玩家在游戏中会购买...
一秒了解”新久情在哪里买房卡“... 来教大家如何使用在哪里买房卡房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添...
玩家须知”新九神房卡充值“新老... 玩家须知”新九神房卡充值“新老夫子房卡充值游戏中心打开微信,添加客服【113857776】,进入游戏...
秒懂百科”新全游房卡详细充值“... 来教大家如何使用房卡详细充值房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添...
1分秒分析”新详心在哪里买房卡... 1分秒分析”新详心在哪里买房卡“哪里有详细房卡介绍 微信牛牛房卡客服微信号微信游戏中心打开微信,添加...
一秒了解”炸金花低价获取分享房... 一秒了解”炸金花低价获取分享房卡给大家“人海大厅房卡充值 微信牛牛房卡客服微信号微信游戏中心打开微信...
一秒了解”新玄龙房卡详细充值“... 一秒了解”新玄龙房卡详细充值“金花房卡充值 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客服【1...
1分秒分析”新烛龙如何买房卡“... 1分秒分析”新烛龙如何买房卡“哪里有详细房卡介绍微信房卡充值 添加房卡批售商:微【113857776...
玩家须知”新九天房卡哪里充“金... 房卡哪里充是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:113857776许多玩家在游戏中会购买房...
秒懂普及”新西楚房卡充值“哪里... 来教大家如何使用房卡充值房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添加房...
秒懂百科”新九五获得房卡链接渠... 来教大家如何使用获得房卡链接渠道房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直...
玩家须知”新九天房卡哪里充“新... 玩家须知”新九天房卡哪里充“新道游房卡充值 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客服【1...
玩家须知”新荣耀是如何购买的“... 来教大家如何使用哪里有详细房卡介绍房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、...
1分秒分析”新鸿运是如何购买的... 1分秒分析”新鸿运是如何购买的“王者大厅房卡充值微信房卡充值 添加房卡批售商:微【113857776...
实测分享”新鸿狐房卡在哪里买“... 实测分享”新鸿狐房卡在哪里买“低价获取房卡给大家微信房卡充值 添加房卡批售商:微【113857776...