专栏首页自学测试之道接口测试之Fiddler弱网测试

接口测试之Fiddler弱网测试

前言

目前市面上的APP功能越来越丰富,移动端测试也越显为重要。因为用户在网速慢的情况下,你的网站(软件)总能出现各种各样的问题!!!请不要忽略这一点!针对在不同的网络情况下,接下来,本篇要讲述的就是在通过fiddler对APP进行模拟弱网测试,用Fiddler进行弱网环境下的测试,这也是测试人员需要掌握的测试技能。

一、准备环境

1.电脑端安装好fiddler抓包工具,下载地址:https://www.telerik.com/download/fiddler(傻瓜式安装即可)

Fiddler

2.准备一台测试手机和测试APP软件(本篇使用小米5S手机和今日头条APP)

二、fiddler模拟限速的原理

通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。

三、配置fiddler

fiddler提供了一个功能,让我们模拟低速网路环境…启用方法如下:

Rules → Performances → Simulate Modem Speeds :模拟调制解调器的速度

1.设置端口号

打开Fiddler, Tools-> Options->connections

设置端口

其中:allow remote computers to connect 允许远程计算机连接”为设置的代理可以连接到fiddle上,必须勾选

2.重启fiddler工具

3.设置模拟调制解调器的速度

打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds

设置模拟调制解调器

Rules(规则)解析:

1.Hide Image Requests---隐藏图片请求 2.Hide HTTPS CONNECTs---隐藏HTTPS连接 3.Automatic Breakpoints---自动设置断点 >Before Requests---在请求前设置断点,快捷键F11 >After Response---在响应后设置断点,快捷键Alt + F11 >Disabled---不自动设置断点,快捷键Shit + F11 >Ignore Images---自动设置断点时忽略图片 4.Customize Rules...---自定义规则,快捷键Ctrl + R 5.Require Proxy Authentication---需要代理密码验证 6.Apply GZIP Encoding---应用GZIP压缩 7.Remove All Encoding---移除全部编码 8.Hide 304s---隐藏所以状态未304(无变更)的请求 9.Request Japanese Content---请求日文内容 10.User-Agents---选择用户Web客户端代理类型,包括了目前主流浏览器 11.Performance---性能 >Simulate Modem speeds---模拟调制解调器速度 >Disable Caching---禁止缓存 >Cache Always Fresh---新的缓存

4.设置手机代理

手机代理设置“ip地址为本机电脑的ip,端口号为之前设置的端口号(确保端口号不被占用)

本机IP地址

5.使手机和PC在同一局域网。在手机连接wifi时,选择显示高级选项,代理选择手动。这里我的手机是华为,其他品牌手机视情况而定。在服务器主机名中填入,你PC的ip地址,服务器端口填你之前设置好的8888。

设置手机端IP地址

6.手机浏览器中输入,你的IP地址和端口号。例:10.0.0.153:8888。点击图中的位置安装证书。根据自己的设置安装完证书

证书

四、Fiddler弱网的原理

1.手动设置设置上行,下行速率,模拟网路速度的原理,每上传/下载1KB 要delay 多久…

自定义规则

网络取值的算法: 1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s 需要delay200毫秒来接收数据。

在Fiddler ScriptEditor中搜索关键字:m_SimulateModem

搜索关键字

代码解析:

>首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。 >如果为弱网模式。则分析代码oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s) >如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms >同样的方法,也可以限制上传的速度,调整oSession[“response-trickle-delay”]即可

当修改好后,点击左上角File-->Save进行保存即可

保存修改

需要注意的一点是:当你存档之后,原本已经勾选的SimulateModem Speeds 会被取消勾选,要记得再到Rules → Performances → Simulate Modem Speeds 勾选喔!

2.设置完成后,清空原有的log,并使用你的app进行弱网条件下的操作

选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。

运行结果分析1

不同请求耗时多少的图形表,获取那种资源耗时最大,进而进行优化

运行结果分析2

本文分享自微信公众号 - 自学测试之道(zxceshi)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 浅谈测试环境治理在Devops中的应用

    其实Devops之所以能火起来,还是因为现在的互联网公司迫于竞争的压力,想要能够先于竞争对手、市场发布自己的产品或需求。而剩下的一部分公司则可能是跟随主流,且不...

    上帝De助手
  • 在实践中进行用户测试与评估

    2019工业信息安全技能大赛个人线上赛第一场圆满收官。在保障竞赛平台成功稳定运行的同时,更多的还是思考竞赛平台在本次支撑过程中的用户体验,用户测试与评估情况。作...

    时间之外沉浮事
  • 基于host的http代理--hproxy

    本文主要讲述,如何实现一个基于host方式的http代理,以及它与普通代理之间的区别。这种方式的代理主要可以应用于哪些实际的测试场景。

    上帝De助手
  • 如何进行“花式”HTTP接口测试

    曾经接手过一个HTTP的接口项目,主要业务逻辑是一个分仓发货的物流子系统。可以通过HTTP的POST方式发送请求,并返回一个XML格式的内容。

    上帝De助手
  • 性能监控平台搭建 -- 集成Locust性能数据

    这是之前介绍过的性能监控平台的整体架构图,想要了解其它部分的搭建,可以查看相关文章《Telegraf安装与简易使用指南》、《InfluxDB安装与简易使用指南》...

    上帝De助手
  • kubectl 命令自动补全

    原文地址: https://blog.csdn.net/wenwenxiong/article/details/53105287

    二狗不要跑
  • 每敲一行代码,需要测试1000次!!!

    此前Oracle 惨遭亚马逊、Salesforce 弃用,究其根本原因,不是因为亚马逊等企业为了省钱,而是因为 Oracle 数据库逐渐满足不了他们业务的发展需...

    用户5224393
  • one or more listener failed to start

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    suveng
  • Python单元测试报告框架

    如果Python语言界已经有了HTMLTestRunner,那么为什么还要一个PyTestReport测试框架呢?

    上帝De助手
  • 使用Prometheus监控DBLE

    DBLE是一款基于MyCAT改进的MySQL分库分表中间件,但是并没有一个配套的监控软件。

    二狗不要跑

扫码关注云+社区

领取腾讯云代金券