/catalog/a378c380ea1a4d7ea1ab221eab175270//Document/247927494942789.html/Document/247564617822277.html/Document/247199260360773.html/Document/245767172173893.html/Document/245095710138437.html/Document/244746156650565.html

没有接口文档如何进行接口测试?(下)

上面的文章里我们给大家演示了基于 mitmproxy生成用例,来解决没有接口文档的情况下如何去做接口测试的问题,接下来咱们就说一下这个小工具是怎么实现的。


整个测试圈将这个东西已经讲了两年了MITM,man in the middle,中间人攻击、中间人代理,你可以理解为它就是一个写代码的Fiddler,一个可以写代码的抓包工具。很多人可能会有疑问,那为什么不直接用抓包工具?抓包工具不能定制、不能提供接口随便写代码,他可以,他可以支持用Python写脚本。

道普云测试

上面这个图左边代表用户的电脑,右边代表服务器,中间是一个抓包工具,抓到包以后,监控来往的请求和响应,原本请求响应监控到就结束了。

现在不是,请求监控到之后,把请求里面的一些东西写到Excel里面,当服务器给你响应的时候,先不着急把响应返回,先写Excel里面再返回。

这样停掉以后,你的Excel里面就记住了一些来往的一些信息,就相当于把你原来抓包工具里抓到的信息写到了一个文件里面,怎么写,写成什么样的格式都是你自己可以定制的。
我们一起来看一下下图中的Python脚本,其实这个脚本很简单,有一个Request,也就是说请求在发送和接收的时候都会从这走。

都会执行这里面的Python,也就是右边的内容,筛选过滤了一些网址,当然这些网址是我写死的,然后把请求的头、请求的地址、请求的方法提取出来,下面有一个write,写到一个csv或者Excel里面就结束了。

道普云测试

写的这个文件,录制不是我们的目的,我们的目的是快速地进行回放。我们让开发把它布到服务接口上面,监控某个端口来往的请求就会被我们的mitmproxy给监控下来。

能写到一个Excel里面,就一定能写在一个JSON里面。写上的好处是什么呢,我们一起来看下面这张图。

道普云测试

最左上角的部分代表的是用mitmproxy录制的过程。录制下来后,不管是JSON的格式还是YAML或者csv的格式,这个文件即可以叫接口信息,叫接口用例也可以。因为它可以直接跑,然后就可以直接放在HttpRunner、Postman、Python中。

Postman我们都知道,他本身测试的脚本就是可以保存成JSON数据格式的,如果你直接录制成JSON格式就可以直接在Postman里面跑,是完全没有问题的。

然后,右下角表示的是你可以监控,可以频繁地跑,监控这个服务是不是可用,就不用运维去监控了,我们自己就可以去监控。

再往右表示的是我们还可以放在测试平台上面去监控,去进行入库、修改,我们只要把上游的那些问题解决了,下游就可以很快的跑。


如果用传统的方式需要打开Postman,然后通过抓包工具进行抓包,抓包完成后通过肉眼去一行行比对,对完之后汇总,最后跑自动化。我们上面演示的方式要比这种传统方式要快捷地多,只需要2、3分钟的时间,所有的用例都能跑完。
你可以根据你公司的业务去进行进一步的定制,这里我们只是提供一个好的解决问题的思路。

这是我们讲的第2部分的内容,在没有文档的情况下,如何利用mitmproxy的录制功能去解决快速的接口录制和与其他工具集成的回放。这个mitmproxy的工具也可以用到录制契约中,它本质上就是一个高级一点的抓包工具。