接口测试之Fiddler弱网测试

2024-03-21 20:12
文章标签 接口 测试 弱网 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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

这篇关于接口测试之Fiddler弱网测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/833796

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------