抓包工具 Fiddler 使用:弱网络环境模拟限速测试流程
fiddler下载地址:https://www.telerik.com/fiddler
一:为什么要做弱网络测试?
实际的客户现场可能网络不稳定或者网速低,恶劣的网络环境会导致出现一些bug,影响用户体验甚至某些服务不可用。而公司内部的研发环境网络通常比较顺畅,难以复现这种bug。要解决这种问题,就需要制造弱网络的环境进行测试、复现并修复问题。
二:如何模拟恶劣网络环境?
本文仅以fiddler为例,其他的做个了解,不具体研究。
三:Fiddler怎样模拟弱网?
Fiddler 是一个 HTTP 调试代理,它能够记录所有你电脑和互联网之间的 HTTP 通讯,Fiddler 也可以让你检查所有的 HTTP 通讯,设置断点,以及修改所有的“进出”的数据(指Cookie/HTML/JS/CSS 等文件)。
利用Fiddler来模拟恶劣的网络环境,实现简单,较为直观,缺点是只能支持那些利用HTTP进行通信和交互的服务。
打开fiddler,默认情况下Rules –> Performances –> Simulate Modem Speeds 是未勾选状态,网络正常。当选中此选项(模拟光猫网速)后,网速就会变很慢,打开一个网页要加载很久。这样就实现了弱网络效果。
设置
如果想了解(上传和下载)网速的具体数值,可以使用一个工具speedtest,测速方法很简单,网上有大把教程。
http://www.speedtest.net/是英文的网站,应该是国外版,访问比较慢。而且Windows系统只支持Windows10下载客户端,我用的Windows7使用chrome浏览器要安装Speedtest扩展程序就得翻墙,所以不推荐使用。建议访问http://www.speedtest.cn/网站,测速生成结果很快且是中文的。支持手机客户端APP下载。
四:限速原理
Fiddler限速是以网络延迟的方式实现的,网络延迟时间*网速=传输字节数。
点击Rules – Customize Rules(快捷键Ctrl + R)打开Fiddler ScriptEditor,或者直接点开右侧主页签的FiddlerScript。
打开该文件后,Ctrl + F 查找m_SimulateModem标志位,可以看到如下代码:
if (m_SimulateModem) { // Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = "300"; // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = "150"; }
注释说明: request-trickle-delay中的值代表每KB的数据被上传时会被延时多少毫秒;response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒。比如你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=100ms,就改成100。
当勾选了Simulate Modem Speeds时,request-trickle-delay 与 response-trickle-delay就会被设置,如果本身网速已经相当快的话,这里设置的值就可以近似地推算出开启模拟后的上传和下载带宽了,比如默认设置下上传延时为300ms下载延时为150ms,可以推算出大致的模拟带宽为:
上传带宽=(1 * 8/1000) /0.300 ≈ 0.027Mbps
下载带宽=(1 * 8/1000) /0.150 ≈ 0.053Mbps
实际情况下得到的带宽可能会有误差,受各种外因影响不会这么精确。
由此可见下载带宽是上传的两倍,也就是延时越小,带宽越大。带宽和这里的延时是成反比的。
五:调整网络环境参数
Fiddler 默认的 Simulate Modem Speeds速度实在太慢了,而这个限速的参数是可以调整的,如果需要再快一点可以修改配置文件Fiddler2ScriptsCustomRules.js。(如若修改勿忘备份原文件)在fiddler官网http://www.fiddlerbook.com/Fiddler/dev/ScriptSamples.asp可以找到参考示例。
下面提供了两种简单的修改脚本的方法,选择一种即可。
方法1
查找到if (m_SimulateModem)语句,修改代码。下面的脚本实现了一个随机延时量设置,使得网络带宽不是恒定为一个低速的值,而是会在一定范围内随机抖动:
static function randInt(min, max) { return Math.round(Math.random()*(max-min)+min);}if (m_SimulateModem) { // Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = ""+randInt(1,50); // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = ""+randInt(1,50);}
方法2
点击fiddlerScript 在代码里找到onBeforeRequest,这里定义了在发送请求前做什么。加入如下代码可以实现延迟:
oSession["request-trickle-delay"]="3000"; //请求阶段延迟3秒oSession["response-trickle-delay"]="3000"; //响应阶段延迟3秒
添加代码
上面两种方法选其一,修改后保存配置文件(Ctrl+S)或者清掉缓存(Rules –> Performances –>Disable Caching),再次勾选Rules –> Performances –> Simulate Modem Speeds 进行测速。注意:每次编辑并保存配置文件后,Simulate Modem Speeds选项会被取消,请重新勾选。
限速完毕一定要取消勾选,不然会影响上网。像第二种方法由于请求和响应都延迟3秒,会导致访问网页很慢。
抓包工具 Fiddler 使用:弱网络环境模拟限速测试流程相关推荐
- 网络抓包工具 Fiddler
网络抓包工具 Fiddler 下载网址 http://www.telerik.com/fiddler 简介 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的ht ...
- 抓包工具 - Fiddler(详细介绍)
原文:抓包工具 - Fiddler(详细介绍) Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟ht ...
- 功能测试与抓包工具Fiddler(http与fiddler)
文章目录 功能测试与数据库 项目与数据库的关系 功能测试与抓包工具 HTML与HTTP 协议 URL HTML HTTP HTTP请求与响应 基本概念 HTTP请求 HTTP响应 抓包工具 Fiddl ...
- 【解决抓包工具fiddler不抓取360浏览器的数据的问题】
抓包工具fiddler不抓取360浏览器的数据 fiddler可以抓到Firefox浏览器的包,但是抓不到360浏览器的包. 操作步骤: 打开Fiddler -> 菜单栏 工具(Tools )- ...
- api 数据 App 抓包工具 fiddler
from : http://www.heyuan110.com/2015/06/17/App抓包工具fiddler/ App抓包工具fiddler Charles fiddler 抓包 确保安装 ...
- 【爬虫】网页抓包工具--Fiddler
[爬虫]网页抓包工具--Fiddler Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888, ...
- 抓包工具Fiddler使用(主要用于监听APP对外访问请求)
一.介绍 本人最近在做android开发,有时会遇到线上APP版本显示的数据"不符合预期",查找问题时,特别需要查看一下请求参数是否有问题,但是直接通过线上日志又不是很方便,如果此 ...
- MacOS 抓包工具Fiddler Everywhere:安装与使用
MacOS 抓包工具Fiddler Everywhere:安装与使用目录 1. Fiddler Everywhere 安装 2. Fiddler Everywhere配置 2.1 在本机上抓取数据 2 ...
- 抓包工具 - Fiddler
一. 抓包的定义 就是将网络传输发送与接收的数据包进行截获.重发.编辑.转存等操作,也用来检查网络安全. 抓包也经常被用来进行数据截取等. 二. 抓包的作用 定位网络接口问题 分析其他APP数据接口 ...
最新文章
- 将远程桌面客户端配置为连接到特定端口
- 【C/C++高质量编程 笔记】
- rough and crude
- POM.xml红叉解决方法
- 冯·诺依曼计算机特点
- python-函数-变量的作用域-全局变量
- HTML 5 服务器发送事件
- requests与bs4编码
- PX4板载计算机外部控制
- javascript 3d engine ---m3d 公开
- 怎样成为优秀软件模型设计者
- 《JAVA与模式》之解释器模式
- 2021全球Top 1000计算机科学家h指数发布,中国53人上榜!Bengio总榜第二,韩家炜居华人首位...
- 基于JSP的小区停车管理系统设计与实现
- 一款牛逼的Android端身份证合成工具
- TRIZ创新方法#学习笔记02# |功能分析、技术矛盾和物理矛盾
- 【单片机】数码管显示器仿真
- RTKLIB源码调试.trace文件解析.stat文件解析
- 服务器虚拟化的毕业设计,虚拟化技术毕业论文题目精选
- 金蝶迷你版云服务器没有响应,金蝶迷你版打开显示已运行,请等待,就不出现金蝶界面...