使用Fiddler进行移动端抓包和模拟弱网络测试
Posted 爱吃 香菜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Fiddler进行移动端抓包和模拟弱网络测试相关的知识,希望对你有一定的参考价值。
背景
需要再不同网络环境下查看允许情况,根据测试结果优化方案。
Fiddler连接移动端
Fiddler设置
设置Fiddler如下图所示:
勾选Decrypt HTTPS traffic,下拉框选择from remote clients only,只获取远程客户端的https请求。
勾选Ignore server certificate errors(unsafe)。
Fiddler默认监听端口为8888,勾选Allow remote computers to connect。
移动端设置
此处以安卓为例,ios同理。在电脑命令窗口中输入ipconfig,获取当前电脑IPV4的地址,如下图所示:
在移动端WLAN设置中,选择与电脑连接的同一个网络,进入高级设置如图所示:
代理服务器主机名:输入ipconfig获取的ipv4的地址
代理服务器端口:输入fiddler中默认的监听端口8888
点击保存。
在移动端chrome浏览器/自带浏览器中输入192.168.X.XX:8888,打开如下页面,点击FiddlerRootcertificate,下载并安装即可。
抓一下浏览器的新闻,如下图所示:
Fiddler弱网设置
Customize Rules
Rules->Customize Rules,打开Fiddler script文件,找到m_SimulateModem,如下图所示:
if (m_SimulateModem)
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "20";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "20";
英文直译:
上传延迟发送每KB 300ms
下载延迟接收每KB 150ms
若模拟上传50kb/s的网速,则修改oSession[“request-trickle-delay”] = “20”;
计算公式:1000/网速 = oSession。
设置完成后,Rules->Performance->Simulate Modem Speeds,开启后才生效。
测试结果查看
[Statistics]单个请求内容如下,可直译理解。
多个请求:Ctrl+鼠标,选中多个请求。
ACTUAL PERFORMANCE:
Requests started at:请求开始时间
Responses completed at:响应完成时间
Sequence (clock) duration:第一个请求开始时间至最后一个请求响应完成时间的时间差
Aggregate Session duration:选中的所有请求持续时间之和
从chart图上可直观的看到耗时的请求。
手机端抓包工具
参考技术A Charles 手机抓包接口测试之——fiddler抓包、过滤、断点调试
AndroidHttpCapture---手机轻松抓包工具
AndroidHttpCapture使用方法:
【搭建环境】
1.在测试手机安装AndroidHttpCapture即可。
2.如果测试手机使用移动网络,新增一个接入点,将其代理服务器设置为127.0.0.1 端口为8888,别的参数参照已选中的接入点进行配置,保存后选择该新增接入点即可。
如果测试手机使用WIFI,把WIFI代理设为127.0.0.1:8888。
3.首次进入AndroidHttpCapture时安装CA证书,然后把自签名证书添加到系统根证书目录。
自签名证书所在路径:手机根目录的har/littleproxy-mitm.pem。
自签名证书添加方法:
首先用openssl命令计算证书的哈希值(可以打开Linux环境Git Bash命令窗口):
然后把上面的哈希值作为文件名,添加证书(可以打开Windows环境CMD命名窗口):
【使用方法】
https://github.com/JZ-Darkal/AndroidHttpCapture
【查看HAR文件】
http://h5.darkal.cn/har/
以上是关于使用Fiddler进行移动端抓包和模拟弱网络测试的主要内容,如果未能解决你的问题,请参考以下文章