【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]

相关内容

热门资讯

网易云最低安卓系统,最低兼容系... 亲爱的手机控们,你是否曾为心仪的网易云音乐而烦恼,因为你的安卓系统太低,无法安装呢?别急,今天我就要...
操作系统 安卓4.4,系统革新... 你有没有发现,手机里的操作系统就像是我们生活中的好伙伴,默默无闻地陪伴着我们,让我们的生活变得更加便...
小米手机安卓系统吗,深度解析安... 亲爱的手机控们,今天咱们来聊聊一个超级热门的话题——小米手机和它的安卓系统!你是不是也好奇,小米手机...
安卓系统源码修改实例,实例解析... 你有没有想过,手机里的安卓系统其实就像一个巨大的宝藏库,里面藏着无数的秘密和可能性?今天,就让我带你...
黑鲨安卓降级系统,揭秘降级背后... 亲爱的读者们,你是否曾为手机系统升级后性能下降而烦恼?今天,我要给你带来一个好消息——黑鲨安卓降级系...
安卓广告管理系统APP,助力企... 你有没有发现,手机里的安卓APP越来越像是个广告的海洋?有时候,你甚至觉得,打开一个APP,不是在用...
所有安卓系统要收费,全面解析安... 你知道吗?最近有个大消息在科技圈里炸开了锅,那就是所有安卓系统可能都要开始收费了!这可不是开玩笑的,...
安卓系统怎样修改储存,而不是文... 手机里的存储空间不够用了?别急,我来教你一招,让你的安卓手机瞬间变得“肚子”大起来!一、清理缓存,释...
安卓刷苹果系统新闻,揭秘刷苹果... 你知道吗?最近在互联网上掀起了一股热潮,那就是安卓手机刷苹果系统。这可不是闹着玩的,而是真的有人把安...
安卓系统打印服务设置,轻松实现... 你是不是也遇到了这样的烦恼:手机里的文件想打印出来,却不知道怎么设置安卓系统的打印服务?别急,今天就...
安卓系统怎么禁用游戏,操作指南... 你是不是也和我一样,手机里装了好多游戏,有时候玩得停不下来,但又担心影响工作和学习?别担心,今天就来...
安卓系统历代ui变化,从简洁到... 你有没有发现,每次打开手机,那个熟悉的界面总在悄悄地变着花样?没错,说的就是安卓系统的UI变化。从最...
安卓系统如何导出短信,轻松备份... 手机里的短信可是记录了我们生活中无数美好瞬间的宝库呢!有时候,你可能想把这些珍贵的回忆整理出来,或者...
安卓系统推荐游戏手柄,畅享手游... 你有没有发现,自从你把手机换成安卓系统后,游戏体验瞬间up up!但是,手机屏幕那么小,手指头在屏幕...
希捷支持安卓系统吗,安卓系统兼... 你有没有想过,你的安卓手机里的数据存储,其实背后有着一个强大的支持者?没错,就是那个我们耳熟能详的希...
安卓系统修改app格式,安卓系... 你有没有想过,你的安卓手机里那些熟悉的APP,其实可以变得更有个性呢?没错,就是通过修改它们的格式,...
怎么给安卓系统加速,轻松提升手... 手机用久了是不是感觉越来越慢,就像老牛拉车一样吃力?别急,今天就来教你怎么给安卓系统加速,让你的手机...
91怎么刷安卓系统,焕新体验 你有没有想过,你的安卓手机系统是不是该更新一下了呢?别看它现在运行得还挺顺畅的,但谁不想让自己的手机...
安卓系统录音源码,从基础到进阶 你有没有想过,手机里的录音功能竟然这么神奇?今天,就让我带你一探究竟,揭开安卓系统录音源码的神秘面纱...
安卓系统酷狗8.9.3,安卓系... 你知道吗?最近安卓系统上的一款音乐软件——酷狗音乐,更新到了8.9.3版本,这可真是让音乐爱好者们兴...