一步一步做工具系列很久没有更新了,因为小编旧病复发----懒癌真是难以根治。是不是很像此刻看文章的你,想学习想进步,但就是放不下抖音、王者荣耀。2020年疫情导致大环境不好,到处都在降薪裁员,但是小编身边还是有不少优秀的小伙伴通过不断的学习,最终拿到大厂P7+的岗位,年薪直接翻倍。学习才是回报最大的投资,大家一起努力吧。
前三篇系列文章
一步一步学做测试工具(Spring Boot版)之一
一步一步学做测试工具(Spring Boot版)之二
一步一步学做测试工具(Spring Boot版)之三咱们逐步实现了接口冒烟测试工具最核心的部分 -- 生成冒烟测试用例。
本篇咱们把冒烟测试功能包装成API服务的形式,通过postman等工具来实现一键冒烟测试。
工具架构
如图所示
从上图可以看出MC/DC服务具有的功能为:
用户将被测的API信息(如:url、post or get、parameter)通过http的方式传给MC/DC服务
MC/DC服务根据用户传递过来的被测API parameter生成符合MC/DC规则的一组 parameter
MC/DC服务再分别使用MC/DC parameter1、parameter2...对被测API进行http请求操作
MC/DC服务将接收的被测API的返回结果整合后,再返回给用户
简单来说,冒烟测试工具的核心就是MC/DC服务
1.接收用户传递信息
2.生成MC/DC规则的测试用例组
3.http请求被测API
4.整合被测API返回值
5.返回给用户测试结果
代码实现
看过本系列文章(Spring Boot系列一、二、三)并且跟着动手实践的小伙伴,应该已经掌握了生成MC/DC测试用例以及http请求的代码。
生成MC/DC规则的测试用例组(服务2)
McdcService 已经实现了生成MC/DC规则的测试用例组。
http请求被测API(服务3)
当然前面是在单元测试中实现的http请求,咱们把这部分代码挪到service模块里来,稍加改造变成HttpService,用来请求被测API,实现http请求被测API。
整合被测API返回值(服务4)
因为是循环使用MC/DC规则的一组请求值,所以也就对应着一组返回值。整合思路:将两两对应的请求值与返回值作为一组json元素存入json数组,最终输出一个json数组。 [{request:parameter1, response:response1},{request:parameter2, response:response2}...]
实现数据模型代码如下:
McdcBody定义了一组两两对应的请求值与返回值。
McdcResponse定义json数组。@Data :注在类上,提供类的get、set、equals、hashCode、canEqual、toString
方法。@AllArgsConstructor :注在类上,提供类的全参构造@NoArgsConstructor :注在类上,提供类的无参构造
上面三个注解来自lomboklombok 是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。但弊端是大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度,所以不建议初学者使用,初学者还是老老实实的手动实现以上功能。 @JsonProperty:注在属性上,作用是把该属性的名称序列化为另外一个名称。例如@JsonProperty(“status”)
序列化为json时,“status”
作为key, {“stutus”: “success”}
接收用户传递信息(服务1) & 返回给用户测试结果(服务5)
通过一个接口服务来接收用户传递信息,并且将MC/DC 服务2、3、4串联起来,得到结果,最终返回给用户测试结果
至此整个服务就算阶段性的完成了!!!
冒烟工具使用
postman辅助
还是以查询电话区号的API为例:
启动冒烟测试工具
postman输入如下信息
MC/DC服务提供的是post服务,地址是http://localhost:8080/mcdc
url
为被测API的地址method
为被测API的请求方式initialParam
为被测API的正确入参小伙伴可以仔细看看response是不是符合MC/DC规则的冒烟用例