接口测试 OkHttp3+mysql+jenkin 现接口自动化

jc · 2020年11月16日 · 最后由 cool 回复于 2020年11月17日 · 3029 次阅读

说明:
实现在版本快速迭代过程中对系统接口的监控。只贴了部分关键代码

脚本实现:

  1. 数据驱动,针对目前公司系统,无需对测试脚本进行修改即可实现接口的巡检。
  2. 考虑到系统支持 http 类型,暂只支持 get 和 post
  3. 使用数据库 mysql 的形式进行用例编写和管理

脚本设计思路:

  1. case 数据准备:数据库维护 case 数据,包括 url,method,data,header
  2. 参数处理: a) 通用参数准备,random,tm,reqId,stamp,用 $$ 前缀作为标记 b) 全局参数 map 准备,用于存储每次系统版本迭代的数据,以及每次请求过程中从响应信息中提取出来的参数用于下一个接口的传参,用 ## 前缀作为标记   3.http 请求数据组装,其中这里 header 需要签名处理,data 中需要参数替换   4.jsonPath 实现断言判断以及 response 参数提取,把结果回写数据库和回写全局 map   5.最后产出测试报告以及使用 jenkins 持续集成管理

具体实现说明(部分代码展示):

  1. case 数据准备

a) 数据库 case 准备

接口描述,url,uri,method,header,data,全局变量提取,断言判断,响应内容存储,测试分组,测试结果

b) 测试分组及范围

在代码中,通过 sql 指定测试范围,且后续新增测试范围和调整时,只需要修改 mysql 中的数据即可,无需在脚本中编辑。最后返回 List 形式,需要对这块进行分隔处理,存到一个 bean 里面

  2.参数处理
a) 通用参数准备
b) 版本初始化准备数据
包括系统信息,用户信息,手机设备信息,插件信息,存到数据库的 dict 表里面,提取出来存到 map 里面


  
3.http 请求数据组装

主入口启动

a) 请求组装

其中 header 和 data 的处理,需要去循环全局变量 map 和公共参数替换
 


  
4.jsonPath 实现断言判断和提取全局变量
 

 5.使用 jenkins 持续集成管理
 

共收到 5 条回复 时间 点赞

图都是裂开的

jc #2 · 2020年11月16日 Author
我去催饭 回复

有一些内容打了码,不好意思哈

感觉你这个也是玩票性质的啊,难以落地,跟你发的那个 ui 自动糊帖子一样😂

jc #2 · 2020年11月17日 Author
cool 回复

这个还好,在工作里面用到,自己一个人维护就够了。哈哈哈,那个 ui 自动化的就不怎么行。

jc 回复

个人观点哈,能写代码就写代码,不要搞关键字,数据驱动啥的,你这种形式简单一点的场景可以满足,复杂场景的话估计就很难了,别人也难以使用

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册