APP弱网络测试--基于WANem

近日,因公司项目需要,要做弱网络测试,摸索了一番,在此记录一下。

首先是工具准备,在找工具这个路上费了挺大一番功夫,这里就简单介绍下吧,避免走弯路。App的弱网络测试,iOS可直接借助手机自带的网络状况模拟工具:设置->开发者(手机需调试过才有开发者选项)->NETWORK LINK CONDITIONER,可设置出/入的带宽、延迟、丢包,DNS延迟等参数,模拟所需的弱网。若无更多参数要求,如错包率、抖动等其它因素,NETWORK LINK CONDITIONER已可满足需求,无需再借助其它工具。但Android目前暂无该功能支持,则需借助外部工具来实现。下面介绍Android的弱网模拟方法。

笔者刚开始看的书是《移动App测试实战》这本书,里面介绍的是Network Delay Simulator这个工具,查了一下,网上也很多说这个工具很不错, 于是笔者就准备使用这个来做,但这放在早几年估计是没问题的,到现在就不行了。NDS下载后安装一直失败,后来才发现这个工具早就不维护更新了,最新版本只支持到win7 32位,已经不再适用。遂果断弃之~ 大家也不要掉坑里哦~

第二个是WANem,也是网上推荐比较多的。本篇就是介绍用这个工具来实现的。

一、WANem简介

官网:http://wanem.sourceforge.net/

由官网可知,WANem是开源软件,可用于模拟WAN特性,如网络延迟,丢包,数据包损坏,断开连接,数据包重排序,抖动等。从功能角度来看,WANem挂钩到Linux内核中,用于配置网络仿真特性,并用附加模块扩展功能。同时具有直观的Web界面以进行配置。

优点:安装简单,有装虚拟机经验的可以快速安装成功;

缺点:主要面向PC端,并不直接对网卡起作用,所以无法独立支持对移动端APP的测试(要想用于app测试,需要移动端做代理);并且需要手工配置路由表,较麻烦。

二、WANem安装

WANem直接从官网下载即可,此处我们用最新的3.0 Beta 2版本。官网介绍的使用方法是将iso文件刻录到CD,再从CD启动。这种方法较麻烦。我们使用另一种安装方式--通过虚拟机(VirtualBox)安装。

1. 解压下载的安装包,得到iso文件;

2. 在VirtualBox新建一个linux虚拟机,在设置中把iso文件挂载到存储->控制器IDE,并将网络连接方式设置为桥接网卡,选中对应的网卡,保存后直接启动虚拟机,就能直接启动进入设置界面,启动过程较缓慢,耐心等候即可。

启动成功页面:

功能简介:

About:关于WANem;

WANalyzer:广域网学习工具,可以根据输入IP学习到目标主机的丢包、时延、抖动,自动模拟该网络环境;

Basic Mode:基本模式,只能设置带宽和时延;

Advanced Mode:高级模式,可以设置复杂的网络规则;

Save/Restore:备份和恢复数据;

Remote Terminal:远程终端;

Help:帮助。

一般用高级设置页面来设置所需弱网规则,点击Advanced Mode,选中对应网卡后点击start,即能进入高级设置页面:


参数说明:

Packet Limit:用来设置包的队列大小,默认为1000,当队列超过1000时,超过的包将被丢弃

Symmetrical network:对称网络,选中为Yes的时候,应用网络的规则将在数据包来回的方向上都生效

Choose BW:从快速列表选择带宽

Specify BW:自定义带宽

Delay:延时,这里设置的是单向的延时;Jitter:抖动;Correlation:相关性,用来设置这个包的延迟时间与上一个包的时间的相关度

Loss:丢包率;Correlation:相关性,以一定的概率发生突发的大量的丢包,但平均丢包率不会超过Loss定义的值

Duplication:重包率,以一定概率生成某个包的多份拷贝,并按随机时间到达目标端;Correlation:相关性,类似Loss的

Packet reordering:包重排序率,按概率将包的顺序打乱,gap用来确定包重排序的个数,不设置更接近真实的环境

Corruption:错包率,按概率产生噪音,即格式错误的包

Idle timer Disconnect:空闲断开定时器,当网络空闲时,按设定的时间对Type定义的协议断开连接。

Random Disconnect:按Type随机断开,MTTF,平均失效前时间,用Low和High定义两个极值,MTTF,平均恢复前时间

IP source address:匹配的源IP地址

IP source subnet:源IP地址的子网

IP dest address:匹配的目标IP地址

IP dest subnet:匹配的目标IP地址的子网

Add a rule set:添加一条规则

Apply settings:应用设置

三、测试机配置

以上安装完WANem后,还需配置测试机的路由表,使测试机路由到WANem。

笔者测试机是win10 64位,配置方法:

1. 右击开始菜单,找到命令提示符(管理员),点击打开,即以管理员身份打开dos窗口;

2. 敲入命令删除默认路由: route delete 0.0.0.0

3. 添加一条默认路由指向WANem:route add 0.0.0.0 mask 0.0.0.0 192.168.3.54

说明:上面192.168.3.54是WANem的IP地址,需改为你真实的IP,可通过WANem控制台看到

如果发现没有获取到IP,应该是虚拟机配置不正确,记得在网络配置中设置为桥接网卡,并选中对应的网卡。

这样PC上所有发向不同网段的流量均会应用到上面定的网络规则。

如果要使测试机向指定主机发送的数据应用规则,例如向主机192.168.3.51,则使用route add 192.168.3.51 mask255.255.255.0 192.168.3.54 同样,主机IP和mask要改为真实主机IP和mask。

设好路由后,在WANem高级配置页面设置弱网规则,即完成了弱网环境的搭建。规则启动后可以ping一下主机查看效果。

更多可参考:http://blog.163.com/hlz_2599/blog/static/142378474201341342720443/


需注意的是,至此只是完成了在PC弱网络环境的模拟,如要测试app,还需将手机网络代理到设置弱网的PC上,才能达到目的。笔者进行APP弱网测试采用的是WANem弱网模拟+Fiddler代理手机网络。Fiddler具体代理设置相对简单,自行百度即可~

发布了10 篇原创文章 · 获赞 28 · 访问量 8万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览