为什么要先学fiddler?
学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始。
结合抓包工具讲http协议更容易学一些。
抓firefox上https请求
fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书。
网页不安全
1.用fiddler抓包时候,打开百度网页:https://www.baidu.com
2.提示:网页不安全
抓包工具fiddler
Fiddler4工作原理:
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888,这时fiddler的默认端口,也就是说我们发送的每一个请求和收到的每一个响应都会先经过fiddler,这样就实现了抓取数据包的工作。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
安装和使用的时候需要关闭杀毒软件!
抓取http
fiddler默认就可以抓取电脑的http请求,可以查看statistics信息,可以查看抓取包的开始时间及响应时间,Inspectors选项可以查看请求和响应的详细信息。Raw表示原数据格式,还可以查看fiddler日志等。
抓取https
Fiddler默认是不可以抓取https协议的,需要进行配置,如果没有进行配置,在打开https协议的网页的时候会提示风险,所以为了能抓取互联网网页,可以先进行https配置。
配置https协议:
勾选这三个选项,然后点击actions,选择将证书生成到桌面上,再在浏览器的证书管理中,导入fiddler的证书。
通过以上步骤就可以抓取https的协议了。
注意事项:
在进行本机抓取和远程抓取(手机)的时候注意这里的切换。
过滤请求:
打开fiddler,找到Filters选项并点击打开。
设置完后需要在actions里面选择运行设置选项,不选其实也可以,另外在选择了域名筛选后,又选择了进程,有时候会抓取不出来域名的。
以上隐藏的意思是指在左侧不会显示抓取该域名的包请求,格式支持通配符*,
显示的话就是正常显示出来,标记的话就是在左侧会加粗显示这些域名的请求。
其它过滤还可以通过请求头,响应状态,响应头等条件进行筛选,但通常使用域名或者进程就完全足够了。
以上过滤时记的在设置完过滤条件后一定要选择actions runfilterset now以马上生效。
抓取手机app
在抓取手机的请求时,有时候需要关闭电脑防火墙,配置好https的抓包请求,然后将手机连接的wifi设置为代理,代理的ip就是电脑的wifi IP,端口为fiddler上面设置的端口,再设置为DHCP,然后访问手机上面的app或者是浏览器fiddler就可以抓取到了。
关于手机证书问题,手机浏览器输入电脑的ip加端口后会提示下载fiddler证书,点击下载后安装就可以了。
注意事项:
1)在PC切换wifi网络后,ip会变化,那么在手机端,需要重新安装一下FiddlerRoot certificate 安全证书,然后重新设置代理。
2)如果在设置代理后,手机不能正常打开网页,很多时候都是由于Fiddler的安装证书存在问题,比如没有被授权。
3)不同的手机,安装Fiddler Root certificate 证书的时候,有点不一样,比如小米手机比较特别,方法不一样。
4)针对Anderiod 7.1以上的手机抓包时,需要做另外的授权等处理方法。
弱网测试设置:
为什么要进行弱网测试?
按照移动特性,各种网络连接协议不同,导致通信的信号不同,速率也不同,影响应用的加载时间、可用性、稳定性。
二、什么样的网络属于弱网?
低于2g速率的时候都属于弱网也可以将3g划分为弱网 一般wifi不纳入弱网测试范围。
三、如何进行弱网测试?
1.SIM卡的网络切换
手机-设置-移动网络设置-网络类型选择
3G卡有3种模式:1.只使用2G网络 2.只使用3G网络 3.3G网络优先
根据手机型号的不同,上面的选项可以会稍有变化。
因为电信、移动、联通的速率各不相同所以可以取速率最低的值进行测试。
2. 使用虚拟机模拟网络速率
3. 使用Fiddler来进行网络代理。
fiddler模拟限速的原理
我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。
方法:
选择fiddler菜单 Rules → Performances → Simulate Modem Speeds :模拟调制解调器的速度
然后选择Rules—>Cutomize Rules打开CustomRules.js 文档
在该文档中查找到m_SimulateModem,该方法就是用来设置弱网的。
更改原则 :
让我们来分析一下这几行代码:
首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。
如果为弱网模式。则分析代码oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)
如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms
同样的方法,也可以限制上传的速度,调整oSession[“response-trickle-delay”]即可。
通过以上学习至少达到可以抓取自己想要的信息,并且可以抓取到手机端的请求。
浏览器本身对请求时F12就可以看到请求信息。浏览器的使用。