本文章转载于搜狗测试
噔噔噔。。。又一个周三到来,仍然是关于Fiddler的话题,话不多说,直接上干货~
问1
测试过程中需要模拟多种用户网络场景,但是公司网速嗖嗖的[拉仇恨了吗?O(∩_∩)O哈哈~],除了使用Netlimiter软件限制PC网速外,Fiddler能破么?能破么?
当然能!Fiddler是一个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里面自定义一些逻辑。Fiddler的模拟限速就是在客户端请求前来定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。Fiddler提供了一个功能,可以方便的模拟低速网路环境。
方法:Rules > Performances > Simulate Modem Speeds ,如图所示
网速瞬间降低,感觉像回到了解放前,有木有……
也许Fiddler的低速已经超出你的忍耐程度了,那么,可以使用脚本重新定义一下低速网络
1. 打开脚本编辑器:Rules > Customize Rules
2. 搜索m_SimulateModem,
3. 然后根据自己的需要修改如下语句
oSession["request-trickle-delay" ] = "300";(每上传1KB延迟300ms)
oSession["response-trickle-delay" ] = "150";(每下载1KB延迟150ms)
4. 点击Save Script后,之前勾选的Simulate Modem Speeds会被取消勾选,需要重新再勾选回来
从此,低速高速一键切换无烦恼
问2
使用 Fiddler 保存会话的response,大家都知道右键点击会话选择”save > Response >Response Body“,但是在保存后却发现里面都是乱码[哭]
这是因为为了提高性能,Fiddler会将会话的response压缩后进行传输,查看Transformer的选项卡,可看到GZIP Encoding处于选中状态,想要正常查看被压缩的数据,需要选择成No Compression(解压缩),但是出现乱码的情况下,该处是不能点击的,怎么解决嘞?
方法1. 如果想在会话处理过程中decode,点击Fiddler工具栏的"Decode"按钮,则会对所有的会话进行decode,这样保存的response就能正常显示了,需要注意:点击“Decode”之后需要重启 Fiddler
方法2. 如果想对所有会话处理之后再进行No Compression(解压缩),可以选择多个会话,右键选择“Decode Selected Sessions”
另外,有时候也会遇到以下情况:点击一个会话,在会话的response区域看到的却是乱码,上面有黄条提示”Response is encodeed and require decoding before inspection.Click here to transform“,对应的Transformer勾选情况如下图所示
处理方法:这种情况下只要按照提示点击黄条即可对当前的会话进行decode,但是这样处理只针对当前的会话,是一次性的效果,如果不担心传输性能的话,可以直接使用方法1