当前位置:网站首页>Fiddler抓包模拟弱网络环境测试
Fiddler抓包模拟弱网络环境测试
2022-07-31 01:37:00 【爱吃 香菜】
现在的Android软件,基本上都会有网络请求,有些APP需要频繁的传输数据时对于网络请求的稳定性和在特殊网络条件下的兼容性有要求,但是我们在测试的时候又很难模拟那种弱网络差网络的情况,今天就给大家分享一篇干货来模拟弱网络情况。
正文
第一步:下载抓包软件fiddler
官网:http://www.telerik.com/fiddler
这是PC端的软件,我们模拟弱网络环境的流程大概是:手机APP使用网络代理代理到我们的pc上,然后所有的网络请求都会经过pc,这个时候我们就可以通过fiddler来限制网络,从而达到模拟弱网络环境的目的。
这就是Fiddler的主界面了:
第二步:设置fiddler
fiddler还需要设置一下需要设置一下,找到头部的Tools功能,然后点击第一个功能Options,会弹出一个界面:
找到Connections,把port改为8888,这个时候就可以使用我们的手机代理到电脑上了。
第三步:设置安卓设备代理
打开我们的手机,进入wifi设置,这里要注意的是安卓设备连接的wifi必须和我们的PC是同一个网络才能设置成功。大部分的安卓设备都可以在wifi设置里面设置代理,但是不排除有少部分设备是系统有限制的。在设置代理之前我们需要知道PC的ip地址,可以通过系统cmd命令,然后ipconfig获取,如下:
然后就可以再手机里面设置代理了,这是我的手机的wifi设置代理的界面:
设置后之后,手机上所有的网络请求都会代理到Fiddler然后可以查看了:
第四步:设置网络限制
回到我们的fiddler中来,在工具栏中找到Rules,从名字很显而易见这个功能是用来干嘛的了。再到Rules列表中找到Customize Rules,这个时候会弹出一个类似于文本编辑器的东西:
在这个文本编辑器中使用Ctrl+F使用搜索功能搜索关键字:simulate,可以找到如下代码段:
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代表的是网络响应的延迟时间,单位都是毫秒,这里默认给的是300毫秒和150毫秒,所以,只需要修改这2个值即可模拟网络延迟和弱网络环境了,比如可以修改上述2个值为:2000和2000,代表网络请求延迟2秒,网络响应延迟2秒:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "2000";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "2000";
}
改完之后记得按Ctrl+S保存。
第五步:开启网络延迟
接下来就可以开启网络延迟了,还是我们的Rules功能中,找到Performance,然后在子选项中可以看到一个Simulate Modems Speeds,选中它,大功告成,网络延迟已经开启,如果需要关闭网络延迟,再次点击即可。
第六步:扩展弱网络规则
可能我们在测试中不会想要一个一直虚弱的网络环境,而是随机强弱的网络,这样比较贴切我们的真是情况,那么我们可以修改上述代码为:
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,2000);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = ""+randInt(1,2000);
}
这里的randInt(1,2000)应该很好理解,代表1-2000中的一个随机整数,这样就会出现偶尔有延迟偶尔网络又良好的情况
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
边栏推荐
- 软件测试工作3年了,谈谈我是如何从刚入门进阶到自动化测试的?
- 斩获BAT、TMD技术专家Offer,我都经历了什么?
- The sword refers to offer17---print the n digits from 1 to the largest
- 4G通信模块CAT1和CAT4的区别
- 力扣每日一题-第46天-704. 二分查找
- Rocky/GNU之Zabbix部署(2)
- 黄东旭:TiDB的优势是什么?
- C language _ structure pointer array function voting system
- Multiplication, DFS order
- 【flask入门系列】Flask-SQLAlchemy的使用
猜你喜欢
蓝牙mesh系统开发二 mesh节点开发
ShardingSphere read-write separation (8)
prometheus 监控概述
TiCDC 架构和数据同步链路解析
设置浏览器滚动条样式
ECCV 2022 华科&ETH提出首个用于伪装实例分割的一阶段Transformer的框架OSFormer!代码已开源!
Xiaohei's leetcode journey: 117. Fill the next right node pointer of each node II
Sping.事务的传播特性
基于Keras_bert模型的Bert使用与字词预测
【genius_platform软件平台开发】第七十四讲:window环境下的静态库和动态库的一些使用方法(VC环境)
随机推荐
认识DTU什么是4GDTU设备
Mysql: Invalid default value for TIMESTAMP
计算S=a+aa+…+aa…a
C语言_结构体指针数组函数选票系统
分布式.分布式锁
调度中心xxl-Job
Dispatch Center xxl-Job
有没有可以做副业可以日入300元方法?
使用docker安装mysql
射频器件的基本参数1
Set the browser scrollbar style
VS warning LNK4099:未找到 PDB 的解决方案
Artificial Intelligence and Cloud Security
Installation problem corresponding to tensorflow and GPU version
勾股数元组 od js
ROS2系列知识(3):环境配置
斩获BAT、TMD技术专家Offer,我都经历了什么?
Parameter introduction and selection points of wireless module
pycharm重命名后无法运行(报错: can‘t open file......No such file or directory)
tkinter模块高级操作(二)—— 界面切换效果、立体阴影字效果及gif动图的实现