大家好~我是
米洛
!
我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程
,希望大家多多支持。
欢迎关注我的公众号米洛的测开日记
,获取最新文章教程!
这段时间一直忙于打造自己熟悉的编辑器,所以包括pity
还有对应教程都有点滞后。不过这都没关系,马上就端午了,可以继续卷
了!
# 回顾
记得上一节我们完成了出参
相关的改造内容,之前有个大佬@晴天
问我,是否考虑在pity
里面加入如下的功能:
打开浏览器,进行一系列操作,而后就可以得到一个测试用例。
这个东西老实说,我没做过,但是我觉得还是很有价值的。通过录制
用户的操作,形成类似har的文件,接着导入到pity
。而且只要中间文件一致,那就可以实现很多平台的无缝对接,比如:
httprunner
postman
har
jmx
这些都是很常用的其它平台/框架的数据,如果能支持到录制生成用例,那么导入导出其它平台的用例数据也不在
话下
。可谓是一举多得,所以这就是我打算近期做这个的原因。
# 思路
其实我是没什么具体的思路,只有一个大概的方向,我先梳理一下:
- 通过录制浏览器/app请求,获得每个接口的请求入参/出参/header等信息
- 解析这些数据,生成一个临时的中间数据,可以是har也可以是json,这个无所谓
- 解析中间数据,将之转变为pity的用例
听起来很简单吧?感觉好像是的,不过解析中间数据那里估计会有一些坑,比如用例之间依赖的数据
,这块可能是个难点,除此之外,其他的应该都不在话下。
# 怎么录制请求呢?
Python有一款比较推荐的工具
:mitmproxy,这次我就不引用官网说法了,我直接简短介绍下:
mitmproxy是一个类似中间人的工具,当你挂上他的代理,你的所有请求都能被监听到,并且他还可以篡改你的请求,比如你请求www.baidu.com的时候,他给你返回:hello baidu
,这也意味着它有着在未来成为pity mock服务顶梁柱
的潜力。
那我们先打入敌人内部看个究竟~
# Mitmproxy
可以看到,mitmproxy,他本质还是一个代理
。所以我们的工作模式是,配置好代理(给pity配置好代理,我们的http请求由pity发出)。
它本身呢,是有几种模式的:
- web端 这个就有点类似于Chrome开发者工具的F12,可以看到接口的请求信息
- mitmporxy 提供交互式终端
- mitmdump 提供非交互式终端
我个人感觉1和2用的多一点,看官网的例子,3主要是要导出录制的数据,不在我的计划
之内。
在此之前我们先本地尝试一下,以我的老Windows为例:
下载mitmproxy
首页截图第一个就是Windows的配置,我们直接下载即可。(如果是mac则需要brew install mitmproxy)
下载后安装即可。
开启mitmproxy
简单地打开mitmproxy.exe即可,当然也可以用web版本的,只有开启后我们才能下载对应的证书。
使用代理
在windows下,我们可以按Windows键,输入
代理
,如下图:
点击以后,进去配置对应的代理地址: 默认为localhost:8080, 也可以自己指定mitmproxy.exe启动的端口。
下载证书
我们要先开启mitmproxy.exe或者web.exe, 只有开启后,我们才能下载证书。
浏览器打开: http://mitm.it/ (opens new window)
# 根据具体的指引进行安装即可,一般是下载一个cert证书,安装到本地并取得计算机的
信任
即可。接着我们就可以在对应的mitmproxy.exe的窗口看到我们的录制请求了。
今天的内容到这里就结束了,下一节我们继续学习
mitmproxy
获取录制http请求相关内容,去编写具体的录制回放请求。