MeterSphere接口自动化系列之SQL使用场景

一、使用场景

        在接口自动化测试的过程中,有些时候需要从数据库中查询数据,用于场景用例的校验。

因此,本文就如何连接数据库、执行sql、获取结果、处理结果,进行展示。

二、实际场景

1. 数据库连接设置

路径:项目设置>项目环境

2. 创建sql接口

路径:接口测试>接口定义

3. 创建用例,添加执行sql、获取执行结果(以对象的方式)

4. 将执行结果设置为场景变量,供后续使用

List report_data=vars.

MeterSphere接口自动化测试中,变量的使用是实现接口之间数据传递和动态参数化的重要手段。变量可以用于存储接口响应中的值,并在后续的接口调用中引用这些值,从而实现接口之间的数据依赖和动态处理。 ### 变量的类型 MeterSphere支持多种类型的变量,包括**场景变量**和**环境变量**: - **场景变量**:作用域仅限于当前场景,适用于在单个测试场景使用。例如,登录接口返回的`token`可以设置为场景变量,供当前场景中的其他接口调用。 - **环境变量**:作用域为整个测试计划,适用于多个测试场景之间共享的变量。例如,在一个测试计划中,多个场景都需要使用同一个`token`,则可以将其设置为环境变量。 ### 动态设置变量 动态设置变量通常涉及从接口响应中提取值,并将其存储为变量以供后续使用。例如,登录接口返回的`token`通常需要在后续接口使用。 #### 场景变量设置 在某个场景中(如登录接口),可以通过脚本从响应中提取`token`,并将其设置为场景变量: ```groovy def token = response.jsonPath().getString("token") vars.put("token", token) ``` 后续接口可以直接使用该变量: ```http Authorization: Bearer ${token} ``` #### 环境变量设置 如果需要在整个测试计划中使用同一个变量(如`token`),可以将其设置为环境变量: ```groovy def token = response.jsonPath().getString("token") vars.put("${__metersphere_env_id}+token", token) ``` 在其他场景使用该环境变量: ```http Authorization: Bearer ${${__metersphere_env_id}+token} ``` ### SQL 查询结果作为变量 在某些情况下,可能需要将数据库查询结果存储为变量,并在后续操作中使用。例如,查询数据库并将其结果存储为变量: ```groovy List report_data = vars.getObject("report_data") log.info("++++++++++++++++++++++++++++++报表数据整合+++++++++++++++++++++++") Map report_map = new HashMap() for (Object datum : report_data) { Map map = (Map) datum report_map.put(map.get("act_name"), map.get("act_amount")) } log.info("报表字典数据为:" + report_map) ``` ### 测试计划中变量的执行顺序 在测试计划中,如果使用环境变量(如`token`),需要确保设置该变量的用例(如登录用例)在其他依赖该变量的用例之前执行。这样可以确保变量在使用之前已经被正确设置。 ### 变量的作用域管理 - **场景变量**:仅在当前场景中有效,适用于单个测试场景内的数据传递。 - **环境变量**:在整个测试计划中有效,适用于多个测试场景之间的数据共享。 通过合理使用变量类型和作用域,可以实现接口测试中的数据依赖管理和动态参数化,从而提高测试的灵活性和可维护性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值