首页 > 其他分享 >pytest框架之fixture

pytest框架之fixture

时间:2024-07-21 19:18:57浏览次数:13  
标签:框架 url fixture token pytest params login

1.在进行接口关联时,一般很多个接口共用一个上行接口(例如)登录,可以使用fixture定义一个测试夹具,将登录的接口写在框架的conftest.py文件中:

  @pytest.fixture(scope="session") 
  def login_fixture():
  keyword = Keyword()
  url = "http://xxxxxxxxxxx/s=api/user/login"
  pub_params = {"application": "app", "application_client_type": "weixin"}
  data = {"accounts": "xxxxx", "pwd": "xxxxxx"}
  response = keyword.request_post(url=url, params=pub_params, data=data)


  token = jsonpath.jsonpath(response.json(), "$..token")[0]

  return token

在需要用到登录接口的测试用例中,将这个夹具当做参数传入用例函数中,将夹具函数返回的值赋给变量token_value,在需要的地方直接引用这个变量

@allure.title("xxxxxxx")
 def test_02_addcart3(login_fixture):
       token_value = login_fixture
 
 url_cart = "http://xxxxxxxxxx?s=api/cart/save"
 pub_params = {"application": "app", "application_client_type": "weixin", "token": token_value}
 data1 = {
    "goods_id": "11",
    "spec": "",
    "stock": 5}
response = keyword.request_post(url=url_cart, params=pub_params, json=data1)  
return response.json()

注:运行方式选择:
1.一定要使用pytest框架的入口执行文件,才能在执行用例的过程中,自动将夹具应用
2.如果选择其他执行方式,如unittest,就会报错为:
TypeError: test_02_addcart3() missing 1 required positional argument: 'login_fixture'

若报错信息为:AttributeError:"str"object Has no attribute "iter_parents",可以试着降低稳定版的pytest版本重试

标签:框架,url,fixture,token,pytest,params,login
From: https://www.cnblogs.com/tyl-bok/p/18314854

相关文章

  • 基于声学基元的高质量空间音频生成框架
    关键词:人体姿态、声学基元、空间音频建模、体积渲染    过去几年中,渲染和动画制作逼真的3D人体模型技术已经发展成熟,并且达到了令人印象深刻的质量水平。然而,与这些全身模型相关联的空间音频建模,却在很大程度上被忽视了。换句话说,尽管我们已经能够创建视觉上令人信服......
  • 学编程框架的建议
    前段时间,一位学Java的朋友问我:学长你好,请问怎么能够根据前台用户的输入,自动创建和修改数据库的表呢?在我看的视频教程中,都是先根据需求设计并且手动创建好库表,再去做增删改查。现在数据库表的字段是不固定的,就不知道怎么能动态地操作库表了。这个问题并不难,所有的创建库表操作......
  • .NET单元测试使用AutoFixture
    .NET单元测试使用AutoFixture按需填充的几种方式和最佳实践  AutoFixture是一个.NET库,旨在简化单元测试中的数据设置过程。通过自动生成测试数据,它帮助开发者减少测试代码的编写量,使得单元测试更加简洁、易读和易维护。AutoFixture可以用于任何.NET测试框架,如xUnit、NUnit或......
  • 如何修改conftest中的参数化值并将它们传递给pytest中的多个测试用例
    问题:假设一个流程需要10个步骤才能完成。我一一开始该过程的步骤,在这些步骤之间,我想做出不同的断言。每次断言后,我都会继续执行其余步骤。我希望每个断言都作为测试用例发生。所以如果有5个断言,我需要5个测试用例。如果有2组参数化值,那么我需要每组进行5次断言,因此将......
  • 基于 Mockito 框架的 Mock 测试
    1.什么是Mock测试Mock通常是指,在测试一个对象A时,我们构造一些假的对象(一般是不容易构造或者不容易获取的对象,比如测试类所依赖的实现类、第三方接口、数据库操作对象)来模拟与A之间的交互,这些对象被称为Mock对象,而Mock对象的行为是我们事先设定且符合预期。通过......
  • YOLOv8改进 | Neck | 注意力尺度序列融合的检测框架ASF-YOLO
    秋招面试专栏推荐:深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转......
  • Known框架实战演练——进销存数据结构
    系统主要包含商品信息、商业伙伴(客户、供应商)信息、业务单表头信息、业务单表体信息、对账单表头信息、对账单表体信息。1.商品信息(JxGoods)该表用于存储公司商品信息。名称代码类型长度必填商品信息JxGoods商品编码CodeText50Y商品名称NameText2......
  • 手把手教你搭建Mybatis框架
    目录Mybatis概述Mybatis环境搭建①在数据库里创建一张表②在maven项目中创建一个实体类③导入所需jar包 ④创建Mybatis核心配置文件⑤定义接口⑥ 创建sql映射文件⑦测试MybatisMybatisX插件Mybatis概述 • Mybatis原是apache的一个开源项目,起初叫iba......
  • Known框架实战演练——进销存系统需求
    概述该项目是一个开源、简易、轻量级的进销存管理系统,作为Known框架的实战演练项目。项目代码:JxcLite开源地址:https://gitee.com/known/JxcLite功能模块1.基础数据1.1数据字典框架内置模块,该模块用于维护系统下拉选项的数据,如商品类别、计量单位、结算方式等。栏位如......
  • Langchain 与 LlamaIndex:LLM 应用开发框架的比较与使用建议
    Langchain和Llamaindex是两种广泛使用的主流LLM应用开发框架。两者有什么不同?我们该如何使用?以下我根据各类资料和相关文档做了初步选型。一、Langchain1.适用场景(1)需要构建灵活、可扩展的通用应用程序。(2)需要复杂的工作流程支持。(3)需要复杂的交互和上下文保留功能。(4......