说明:
实现在版本快速迭代过程中对系统接口的监控。只贴了部分关键代码
脚本实现:
- 数据驱动,针对目前公司系统,无需对测试脚本进行修改即可实现接口的巡检。
- 考虑到系统支持http类型,暂只支持get和post
- 使用数据库mysql的形式进行用例编写和管理
脚本设计思路:
- case数据准备:数据库维护case数据,包括url,method,data,header
- 参数处理:
a)通用参数准备,random,tm,reqId,stamp,用$$前缀作为标记
b)全局参数map准备,用于存储每次系统版本迭代的数据,以及每次请求过程中从响应信息中提取出来的参数用于下一个接口的传参,用##前缀作为标记
3.http请求数据组装,其中这里header需要签名处理,data中需要参数替换
4.jsonPath实现断言判断以及response参数提取,把结果回写数据库和回写全局map
5.最后产出测试报告以及使用jenkins持续集成管理
具体实现说明(部分代码展示):
- case数据准备
a)数据库case准备
接口描述,url,uri,method,header,data,全局变量提取,断言判断,响应内容存储,测试分组,测试结果
data:
{"reqId":"$$reqId","stamp":"$$stamp","loginAccount":"##loginAccount"}
header:
{"Content-Type":"application/json","random":"$$random","sign":"$$sign"}
has_global_variable:
{"loginId":"$.data.loginId"}
expected:
{"$.code":"0"}
b)测试分组及范围
在代码中,通过sql指定测试范围,且后续新增测试范围和调整时,只需要修改mysql中的数据即可,无需在脚本中编辑
最后返回List形式,需要对这块进行分隔处理,存到一个bean里面
2.参数处理
a)通用参数准备
b)版本初始化准备数据
包括系统信息,用户信息,手机设备信息,插件信息,存到数据库的dict表里面,提取出来存到map里面
3.http请求数据组装
主方法启动
a)请求组装
其中header和data的处理,需要去循环全局变量map和公共参数替换
4.jsonPath实现断言判断和提取全局变量
5.使用jenkins持续集成管理