首页 > 其他分享 >【pytest】将测试用例内的数据回填给fixtrue 中

【pytest】将测试用例内的数据回填给fixtrue 中

时间:2024-05-13 11:52:59浏览次数:9  
标签:request fixture pytest 测试用例 参数 测试 测试函数 fixtrue

【背景】每个测试用例生成对应的log文件,需要将测试脚本名称传给log对象,生成对于的log文件

【分析】

方法一:

使用@pytest.mark.parametrize 的 indirect=True  ,参数1: 执行对应的函数 (fixtrue 中的函数名称)  参数2: 函数对应的参数  

参考:

Pytest系列(10) - fixture 传参数 request的详细使用 - 小菠萝测试笔记 - 博客园 (cnblogs.com)

 

知识点

  • 添加  indirect=True  参数是为了把 login 当成一个函数去执行,而不是一个参数,并且将data当做参数传入函数
  • def test_name(login) ,这里的login是获取fixture返回的值

方法二:

使用 fixtrue 内置的 request 参数,

属性

  • request.fixturename: 注意,这并不是一个标准的 request 属性。通常我们使用 request.fixturenames 来获取一个测试函数或方法所依赖的所有 fixture 名称的元组。
  • request.fixturenames: 一个包含测试函数或方法所依赖的所有 fixture 名称的元组。
  • request.node: 当前正在执行的节点(例如,一个测试函数或类)。这个对象提供了对测试上下文(例如,测试名称、位置等)的访问。
  • request.module: 调用 fixture 或测试函数的模块对象。
  • request.fspath: 包含调用 fixture 或测试函数的文件的路径。
  • request.cls: 如果测试是一个类方法,那么这个属性将是该类的类对象。否则,为 None
  • request.instance: 如果测试是一个实例方法,那么这个属性将是该实例的对象。否则,为 None
  • request.function: 正在执行的测试函数。
  • request.config: 访问 pytest 的配置对象,它允许你查询和修改 pytest 的配置设置。
  • request.session: 整个测试会话的会话对象。
  • request.keywords: 一个字典,包含与当前测试相关的所有关键字标记(markers)。
  • request.param: 如果 fixture 被标记为参数化,这个属性将包含当前参数的值。
  • request.addfinalizer(func): 这是一个方法,但经常作为属性来使用(通过装饰器)。它允许你注册一个在测试结束时调用的清理函数。

方法

  • request.getfixturevalue(argname): 获取指定 fixture 的值。这通常在你需要在 fixture 函数内部访问另一个 fixture 的值时很有用。
  • request.getparam(name): 获取指定参数化参数的当前值。
  • request.cached_setup(...): 这是一个较旧的功能,用于缓存 fixture 的设置值。现在更推荐使用 @pytest.fixture(scope=...) 来控制 fixture 的作用域。
  • request.applymarker(marker): 在当前节点上应用一个标记。

【结果】

使用request.cls()解决

 

标签:request,fixture,pytest,测试用例,参数,测试,测试函数,fixtrue
From: https://www.cnblogs.com/liu-Gray/p/18188846

相关文章

  • pytest 学习 - 02 失败重新运行
    前言测试失败后要重新运行n次,要在重新运行之间添加延迟时间,间隔n秒再运行安装:pipinstallpytest-rerunfailures案例importpytestclassTestDemo:deftest_a(self):print("失败用例")assert1==2deftest_b(self):print("成功用......
  • pytest 学习 - 01 setup与teardown
    前言与unitest一样,python也拥有前置(setup)、后置操作(teardown)操作,而且更加的灵活setup与teardown介绍1.模块级别(setup_module/teardown_module)模块始末,全局的(优先最高)2.函数级(setup_function/teardown_function)只对函数用例生效(不在类中)3.类级(setup_class/teardown_c......
  • pytest + yaml 框架 -69.新增depend 关键字,导入其它yaml用例
    前言有小伙伴提到,test_a.yml中已经写了几个流程,test_b.yml中希望能接着test_a.yml去写用例,于是就需要先导入test_a.yml用例。为了满足此需求,v1.6.3版本在config中新增depend关键字。需求场景test_a.yml中已经写了一些用例config:variables:x:helloy:wo......
  • 测试答疑助手:从需求文档到设计文档、测试用例的完整测试过程
    本文将基于LangChain实现一个mini的实战案例。这次实战主要完成的任务,就是设计一个测试答疑助手,这个测试答疑助手的主要功能为基于本地的文档和数据,回答给出的自然语言问题,比如一些数据的统计,查找、组合。示例使用数据测试用例文档设计文档需求文档实践演练实战设......
  • allure功能使用-区分测试用例重要级别severity
     编写测试用例时,需要区分测试用例的级别,在其方法前添加注解@allure.severity(allure.severity_level.NORMAL),allure.severity_level.NORMAL为重要级别,分别有以下分类:Trivial--不重要,轻微缺陷(必输项无提示或提示不规范)Minor--不太重要,次要缺陷(界面错误或与UI需求不符)Normal-......
  • 光AP测试用例参数解析
    光AP测试用例wireshark抓包/log(射频功率、频宽、协议类型、信道)【概要】AC修改射频配置后,使用wireshark和aplog确认配置成功下发并同步到AP【步骤】Ap后台使用命令【syswan2lanon】映射,wireshark抓以太网包显示频宽:AC下发“configurationupdatarequest”包配置,其中,“message......
  • pytest 学习 - 00 环境安装配置
    前言pytest是一个非常好用且成熟的全功能Python测试框架,个人觉得比传统的Unitest好多用了,现在面试如果写只会Unitest会被鄙视的。主要有以下特点:1.简单灵活,容易上手,参数化灵活。2.测试用例支持很多机制像skip、xfail、自动失败重试等处理。3.能够......
  • 一个服务提供翻译功能,一个服务提供商品名字查询功能,客户端有多语言需求,语言占比不一样
    针对这两个服务的多语言需求和商品信息查询功能,可以设计以下测试用例:基本功能测试:1.1翻译服务:-测试用例1:输入包含英文商品信息的请求,验证翻译服务是否能够正确将英文翻译成其他语言。-测试用例2:输入包含中文商品信息的请求,验证翻译服务是否能够正确将中文翻译成其他语......
  • httprunner 4.x学习 - 12 测试用例引用另一个测试用例
    前言把登录用例变 export导出变量,变成全局变量,这样其它用例可以引用登录用例config:name:登录variables:username:"admin1"password:"123456"teststeps:-name:postrequest:method:POSTurl:${ENV(base_url)}/loginjson:......
  • pytest lastfailed原理
    相信很多使用pytest的,都知道pytest有运行上次失败用例的参数,如下:--lf,--last-failedrerunonlytheteststhatfailedatthelastrun(orallifnonefailed)--ff,--failed-firstrunalltests,butrunthelastfailuresfirst.Thism......