在Web应用、App应用测试中需要进行弱网测试,测试网络不稳定时应用做出的反应和提示是否友好、无歧义。通常情况下不稳定的网络环境使用工具来模拟,本文通过Fiddler设置网络规则限制应用的网络请求时间,达到弱网测试的目的。

一、弱网环境搭建

在windows操作系统中,下载解压Fiddler(中文版,可到官网安装最新原版),打开软件主界面。

设置网络规则

选项 Rule(规则)->Custom Rule(自定义规则),弹出规则编辑器Fiddler Script编辑器,

在编辑器中寻找如下代码段(Ctrl+F寻找关键字 m_SimulateModem)

1
2
3
4
5
6
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”表示网络请求延时,”response-trickle-delay”表示网络响应延时,单位是毫秒(ms)。规则进行如下设置并保存,则网络请求延时3秒,网络响应延时3.5秒。

1
2
3
4
5
6
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "3000";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "3500";
}

应用网络限制

修改并保存规则后,需要应用到系统中,选项 Rule(规则)->Performance(性能)->选中Simulate Modems Speeds(模拟调制解调器速度),即可开启网络延迟

扩展网络规则

设置固定的网络延时会使网络一直处于虚弱的环境,时好时坏的网络更贴近实际网络,修改规则可实现动态变化的网络环境:

1
2
3
4
5
6
7
8
9
10
11
// 随机整数
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, 6000);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "" + randInt(1, 3000);
}

Web应用弱网环境测试

基于以上搭建的PC端弱网环境,在本机通过浏览器等访问Web应用即可实现弱网环境测试。

移动应用弱网环境测试

移动端进行弱网测试时,iPhone可通过系统设置实现弱网环境,但移动设备一般通过PC端配置弱网环境,移动端与PC处于同一网段并设置网络代理,由PC端控制移动端的网络环境。

Fiddler设置远程连接

基于以上Fiddler配置,接着Tools(工具)->选项(Options)->Connection(连接),配置如下:

安卓设备设置代理

在连接的wifi界面中,设置手动代理,填写PC端代理的的ip和端口号,配置完成后安卓设备上的所有网络请求都被代理到Fiddler。

ip通过PC端命令ipconfig查看:

若PC连接wifi,则选择WLAN适配器的ip。

参考

https://blog.csdn.net/u010618194/article/details/76652513
https://www.jianshu.com/p/c0b5ec817617
http://insights.thoughtworkers.org/mobile-testing-traps/
https://www.jianshu.com/p/728a993329b2?tdsourcetag=s_pctim_aiomsg

(完)