接口测试工具之 httpapi (类似 gor,抓流量,回放,diff,fuzz)

Posted TesterHome

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试工具之 httpapi (类似 gor,抓流量,回放,diff,fuzz)相关的知识,希望对你有一定的参考价值。

接口测试一工具,好不好用,用了就知道


优势


  1. 无需写测试用例!

  2. 所做即所得,真实记录流量,多次测试复用!

  3. 结构化diff,简化结果校验!

  4. 中间化插件,解决动态参数!

  5. 自动fuzz测试各种容错!

  6. 无缝对接持续集成



原理


  • 如何实现了记录和回放?


二次开发fiddlerscript实现自己的OnBeforeResponse,开启fiddler实时记录抓取指定数据包的请求和回应




从记录的文件中读取数据包原始的请求结构,经中间件处理后,调requests库发包


接口测试工具之 httpapi (类似 gor,抓流量,回放,diff,fuzz)


  • 如何解决动态token?


运行时获取包的response再经中间件middleware修正后续包的request

接口测试工具之 httpapi (类似 gor,抓流量,回放,diff,fuzz)

利用一个双向队列弹栈发包,修正后再入栈。该方法效率有待改善

middleware具体算法需根据项目情况自己实现逻辑


接口测试工具之 httpapi (类似 gor,抓流量,回放,diff,fuzz)


  • 如何diff?



首次运行测试时会根据包返回与记录文件中原包返回做结构化对比,生成差异white.txt,认为是一次diff baseline



后续测试会根据本次包返回与上次包返回做对比,差异屏蔽掉白名单之后的diff作为测试结果供人工校验

也可手动删除white.txt,连续2次测试来生成baseline

实际测试人员只需确认记录的原包,生成的white.txt,以及后需的diff。无需用例无需手工重复执行,简化了其测试成本


  • 关于fuzz


同样利用记录文件,读取原包request结构自动遍历一些基本的fuzz测试 ,如缺参数,空值,无值,字符串裁减、扩展、异常值,超长,特殊值等。

也可自行添加fuzzcase 如xss等


适用场景


  1. fuzz测试--新接口

  2. 回放测试--接口线上监控,回归测试,环境切换


开源地址


https://github.com/zhangzhao4444/httpapi


如有bug和好想法可及时联系我



以上是关于接口测试工具之 httpapi (类似 gor,抓流量,回放,diff,fuzz)的主要内容,如果未能解决你的问题,请参考以下文章

接口工具接口抓包工具之Charles

HTTP接口抓包工具之Fiddler

HTTP抓包之接口自动化测试:Fiddler如何抓包?

HTTP抓包之接口自动化测试:Fiddler如何抓包?3W字长文教你搞定!

接口测试教程之做接口测试的前提

接口测试 总结