在实际的测试过程中,我们难免需要去修改某个请求的返回结果或请求数据。这个时候,我们一般会借助某个工具去实现,比如fiddler。
fiddler是一个拦截和修改网络请求的工具。我们通过将fiddler设置为代理服务器的方式去拦截客户端和服务端的所有请求,然后根据测试需要,任意修改里面的内容,以便构造不同的异常场景。
如何安装和配置fiddler?
首先,我们在百度搜索fiddler安装包并安装到本地。安装完毕后,我们开始设置https请求抓取配置。在菜单栏依次点击tools--Options,弹出Options设置窗口后,点击Https tab页,勾选上如下选项:Capture HTTPS CONNECTs、Decrypt HTTPs traffic(勾选后,fiddler弹出生成https证书的窗口,一直点yes即可)、Ignore server certificate errors、Check for certificate revocation。切换到Connections tab页,设置接口和连接权限,接口默认8888即可,连接权限设置应勾选如下项:Allow remote computer to connect、reuse client connections、reuse server connections、Monitor all connections。
连接被测设备并安装证书
https请求属于加密请求,我们要抓取它,需要在被测设备上安装fiddler证书,这里以iOS手机为例。首先配置手机网络代理,确保手机和fiddler在同一个网络内,并将手机当前连接网络的代理服务器指向fiddler所在机器(端口号为fiddler端口,默认8888,按实际填写)。然后通过浏览器访问http://fiddler机器ip:端口号下载证书并安装。
开始使用fiddler拦截请求
打开fiddler,然后操作手机上的app,不出意外的话,你会遇到如下几个问题:配置代理后,手机无法上网了,但http请求可以到达fiddler侧;抓取不到https请求,出现了tunnel to xxxx:443的异常请求。此时,可以尝试如下两种处理方式解决。
1. fiddler抓取Android或iOS设备上的请求时,很容易出现生成的证书不可用。可以到官网下载用于移动设备的证书生成插件fiddlercertmaker.exe,然后再重新生成证书重试;
2.若步骤1还是无法解决,则检查你手机上的fiddler证书是否已信任。iOS的通用--关于本机--证书信任设置可开启该信任状态。
一般经过上述处理后,fiddler就能正常抓取https请求了。