T4龙带你体验零脚本实现自动化接口测试

Posted 测试百晓生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T4龙带你体验零脚本实现自动化接口测试相关的知识,希望对你有一定的参考价值。

测试百晓生
ceshibaixiaosheng
测试圈懂的最多的人,跟着百晓生一起学测试,你定会有收获。我就在你的口袋,你——有问题难得倒我吗?
PS:一颗安利,测试百晓生种子用户招募中,只要在每日一问中贴出你最想问的问题,就可以收到加入邀请了。至于有什么好处呢?

    每天第一时间获取最新文章
  ●  大咖分享交流
  ●  线下聚会交流
  ●  资源和人脉共享
  ●  提出建议采纳后会有红包的呦

正文
接口测试的现状

说到接口测试,很多人脑海里肯定浮现出各种流行的测试工具:postman,jmeter,soupui,robotframework+requests。这些工具虽然简单易用,但是都避免不了在测试用例的编写上花费大量时间。特别随着模块逐步增长,分支的增多,用户场景越来越复杂,用例数量也会呈几何级增长。如下图所示:模块和分支增加,由3个用例增长到了27个用例。
T4龙带你体验零脚本实现自动化接口测试

Postman提供了插件可以对接口进行录制,稍做扩展即可生成接口测试用例,但是还是避免不了编写断言。

系统太复杂有没有更好的办法,不用构造请求,也不需要写断言呢? 今天百晓生给大家送来福利了,介绍一款 不用写测试用例的接口测试工具Diffy ,它由twitter开发的并且在github上进行了开源(https://github.com/twitter/diffy)。

Diffy方案初步调研

Diffy类似于tcpcopy可以将线上的请求进行录制保存,在对接口进行测试时回放这些请求,并自动对结果进行对比。那么肯定有人会问,怎么去自动对比的呢?

Diffy的方案是充当一个代理,将录制的请求分发到三个环境,通过对比三个环境的输出完成断言的操作。这里三个环境分别为提测版本,线上稳定版本,稳定版本副本(与稳定版代码相同),通过对比两个稳定版本的输出,判断接口的返回的噪音,去除噪音之后同提测版本的返回进行对比。架构如下图所示:
T4龙带你体验零脚本实现自动化接口测试
自动生成的测试结果,以web方式展示:
T4龙带你体验零脚本实现自动化接口测试

如果满足优点,可以忽略缺点

Diffy的优点就是搭建好环境之后,不需要进行测试用例的编写和维护了,给测试猿们节约了大量的时间,可以开心的去撩妹了。

俗话说人无完人,测试工具也没有完美的。这里得说说Diffy的缺点了,Diffy对于简单的读操作支持很好。但是有几个方面是没法完美的支持,需要自己进行改造或者开发代码进行修改。

1. 如果有过多的写操作,是需要保证数据的一致性。
2. 请求带有登录态,回放请求时,登录态会过期。
3. 请求的参数需要时间戳+签名,这里回放就会出现时间戳跟当前时间差距太大的情况,请求安全校验不通过。
4. 请求中带需要计算的参数,比如csrf的token校验,回发时也会请求不成功。

所以在使用时可以考虑对Diffy进行改造,或者让开发同学进行一些配合。不说了,我要撩妹去了。

以上是关于T4龙带你体验零脚本实现自动化接口测试的主要内容,如果未能解决你的问题,请参考以下文章

零成本实现接口自动化测试 – Java+TestNG 测试Restful service

资源众筹软件测试视频教程零基础web性能黑盒白盒接口性能自动化课程实战

手把手教你接口自动化测试 – SoapUI & Groovy

接口测试:Jmeter 接口自动化,脚本数据分离实例

Qunit零侵入切面技术应用及分布式运行平台

开源~自研的一套自动化测试平台实现 web接口自动化性能测试支持上传 jmeter 脚本