虽然正规的Web API测试需要开发人员提供文档,但是很多企业的流程是不太正规的。没有这样的文档,很多公司往往就是直接实现了产品。再丢给测试人员去测。这种情况,有时候会有一个测试网页,在网页上点击各种按钮就会发出相应的API请求。这时,我们可以利用Postman抓包功能,帮我们取到各种API请求和响应,我们再根据这些抓取到的请求和响应,得到API的信息,从而可以编写测试用例。
Postman抓包的原理是:把自己设置为一个Proxy,然后我们在浏览器中,设置代理服务器为Postman。这样我们通过浏览器访问API server,都会经过Postman。Postman就会获取到所有的Http请求和响应消息了。
之前有文章讲过Fiddler抓包,Fiddler抓包功能我觉得要比Postman功能更强大一些,但是Posman也有自己的优点,就是它抓完包之后不需要自己在往里面填了,比如用Fiddler抓包用Postman做测试,还得往Postman里面填,Postman本身就有抓包功能,用它抓包的话就不需要再去重新往里面填了,Postman抓包到底怎么用呢,我们来看一下
8.1 启用 Postman Prox
点击Postman右上角的这个像卫星接收器一样的按钮
点击之后会弹出如下界面
Port 5555
是缺省端口,通常我们不需要改变他,然后他下面还有一个设置项Target
,这个设置项就是你抓的包要存在什么地方是存在History
里面还是存在某一个Collection里面
filters部分输入一些过滤条件。过滤条件就是告诉Postman我们要抓的是什么样的包。通常我们API请求URL中的一些关键字填进去,这样其他一些不相关的包就会过滤掉。比如我们教管系统中,所有的API请求都包含localhost/api
这样的字符串。我们可以填入如下的内容,界面如下
然后再点击Connection标签,点击Connection标签,点击Connnect按钮,如下所示
这时候,系统往往会弹出防火墙安全对话框提示对话框,
我们要选择,允许访问。
8.2 设置浏览器,指定代理
Postman设置好以后,我们需要指定浏览器的代理。为了方便浏览器在使用代理和不使用代理之间切换,如果不用插件的话我们以chrom
浏览器为例(他就是使用的系统代理),我们点击浏览器的设置项,设置地址为Postman代理监听的地址和端口
之后点击高级
点击打开代理设置
点击局域网设置
默认是这样的
如果我们想把代理设置成Postman的话
一定注意对于本地地址不使用代理服务器(B)
勾选框要去掉,因为我们这里就是本机地址
然后点击高级
设置本机地址和端口
这里要注意例外栏目下方框里面的内容,意思就是方框里面包括
这些的还是不使用代理服务器,我们约好把内容去掉,不去掉还是不会使用本机。
8.3 访问网站,查看抓包结果
上面都设置好之后我们就可以访问网站,查看抓包结果了。
以我们的教管系统为例,我们可以打开浏览器,登录教管系统,就可以看到抓到的API相关的http请求出现在History栏目中了。
登录完成后我们就抓到包了
这时,我们就可以去点击某个感兴趣的请求,查看请求消息体的具体信息了。
假如你是要用手机来抓的话,其实原理是一样的,手机要做一个设置
在手机上找"设置"应用,并点击进入
链接上无线WiFi
长按已链接无线WiFi,并点击代理设置
代理服务器开关开启,即可以进行输入了,代理服务器的主机名就是你电脑的主机地址,可以在CMD中敲ipconfig
就可以看到了
输入服务器,即为本地ip地址,端口号为需要代理软件的端口号,在软件中可以找到,点击保存,手机代理设置完成。
注意手机和电脑一定要用同一个网络,手机的WiFi和电脑的网络必须连在同一个路由器上,这一点要搞清楚
7