MeterSphere中数据库与接口结合断言

目录

一、概述

二、创建数据库请求

1、MeterSphere添加mysql数据源

 2、创建自定义SQL类型请求

三、创建接口请求

四、添加断言


一、概述


      MeterSphere作为一款开源测试工具,在接口自动化测试方面所提供的非常强大而灵活的功能。断言是测试工作中比较常见的一种操作,针对数据库查询结果与接口请求的返回结果做断言,也是非常普遍的测试流程

MeterSphere针对这种情况,有着非常好的操作性。下面就在MeterSphere平台上,演示一下数据库查询结果与接口请求的返回结果做断言的基本流程

演示场景:

1、数据库查询默认项目的信息

2、通过接口查询默认项目的信息

3、对返回信息中的name字段做精准校验即断言

二、创建数据库请求

1、MeterSphere添加mysql数据源

在对应项目的环境配置中,新增数据库配置并保存

 2、创建自定义SQL类型请求

接口自动化下面,创建一个新的场景,点击右下角的“加号”,点击“自定义请求”

选择“SQL”类型:

参数及sql填好之后,可以点击“测试” 按钮,即可得到如下结果:

 然后点击最下方的“保存”按钮,此时一个SQL请求就完成了

三、创建接口请求

项目下环境变量配置HTTP环境信息:

 创建HTTP接口:

"接口测试"--》“接口定义”

编辑接口:

 

 在接口自动化中引用刚才创建好的接口

 创建场景变量,此处的场景变量用于赋值一些全局参数

 在场景中通过"${projectId}"来替换sql中的查询条件和请求URL的参数

选择好环境,点击调试,得到如下结果:

四、添加断言

接口返回新增参数提取,用于提取返回的项目名称,采用JSONPath的方式提取:

 数据库结果放置到变量内:

添加脚本断言,此处的断言是beanshell脚本,也可以采用其他方式

断言脚本为:

String db_name= vars.get("db_name");
log.info("="+db_name);

String post_name ="${name}";
log.info("="+post_name);

if(db_name!=null && db_name.equals(post_name)){
     AssertionResult.setFailure(false);
     log.info("=====查询项目匹配成功=====");
}else{
     AssertionResult.setFailure(true);
     log.info("=====查询项目匹配失败=====");
}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 pytest 接口自动化数据库断言,你可以使用一些库来实现。下面是一个示例代码,展示了如何使用 pytest 和 SQLAlchemy 进行数据库断言: 首先,确保你已经安装了 pytest 和 SQLAlchemy。可以使用以下命令进行安装: ``` pip install pytest pip install SQLAlchemy ``` 接下来,在你的测试文件导入所需的库和模块: ```python import pytest from sqlalchemy import create_engine, text from sqlalchemy.orm import sessionmaker ``` 然后,创建一个测试数据库连接并获取数据库会话: ```python @pytest.fixture(scope='session') def db_session(): # 创建数据库连接 engine = create_engine('your_database_connection_string') # 创建会话 Session = sessionmaker(bind=engine) session = Session() yield session # 在测试完成后关闭连接 session.close() ``` 接下来,定义一个测试函数,在其执行你的接口请求,并获取返回的数据。然后使用 SQLAlchemy 查询数据库并进行断言: ```python def test_api(db_session): # 执行接口请求 response = your_api_request() # 获取接口返回的数据 # 查询数据库断言 result = db_session.execute(text("SELECT * FROM your_table WHERE condition = :param"), {'param': value}).fetchall() assert len(result) == expected_length assert result[0].column_name == expected_value ``` 在上面的代码,你需要将 `'your_database_connection_string'` 替换为你自己的数据库连接字符串。同时,你需要根据你的实际情况修改查询语句和断言条件。 这就是一个简单的使用 pytest 和 SQLAlchemy 进行数据库断言的示例。你可以根据需要进行调整和扩展。希望对你有所帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值