性能测试工具 Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)

北京-宏哥 · 2025年11月04日 · 2461 次阅读

1.简介

在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低。因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果。还有就是在实际的测试工作中,会因为业务需要,有时限网速,更加符合实际,所以我们也需要模拟弱网进行测试。

2.查看官网文档

参考官网文档:cps 属性为了模拟低网速,如下图所示:

3.准备工作

为了测试出真实的响应时间情况,用 jmeter 模拟弱网进行工作,我们需要修改一下 jmeter 的配置。就是修改 jmeter.properties 文件。在安装 jmeter 目录找到 apache-jmeter-5.0/bin/jmeter.properties 文件,找到参数,分别为限制 http 以及 https

这些分别用于HTTP和 HTTPS 协议,该属性默认为零,这意味着没有限制。首字母缩写cps代表 “每秒字符数”。当您将属性设置为零以上时,带宽将根据您的设置进行调节。

#httpclient.socket.http.cps=0
#httpclient.socket.https.cps=0

如图所示:

4.cps 的计算逻辑

查看 jmeter 的JMeter Wiki 在其中可以找到 cps 的计算逻辑,你也可以直接访问:https://cwiki.apache.org/confluence/display/JMETER/Controlling+Bandwidth+in+JMeter+to+simulate+different+networks 来查看 jmeter 模拟不同带宽

从上图红色圈住的部分我们很容易知道 cps 的计算逻辑:cps = (target bandwidth in kbps * 1024) / 8,所以 cps=B/s 的速率。

5.网络带宽的换算

1、网络速率
100Mbps=100Mbit/s 即兆比特每秒
100MB/s=100MBytes/s 即兆字节每秒
1B=8bit

100Mbps=12.5MB/s,理论上平常的百兆带宽下载速率可以达到 12.5MB/s 100MB/s=100*1024KB/s=100*1024*1024B/s
2、数据存储对于数据硬盘之类的存储换算比较不同,数据存储是以 10 进制表示,1MB=1000KB

6.实战模拟弱网

1、jmeter 分别配置不同的 cps 测试响应时间的变化,

Jmeter 简单建立一个访问度娘的测试脚本,如下图所示:

2、为了避免数据量小不具有代表性,影响测试结果,宏哥这里将线程组设置成了 100,默认情况下该接口,测试结果(平均时间 0.153s),如下图所示:

3、响应时间很小,设置 cps=40KB/s=40*1024B/s=40960,查看网络延迟情况

4、修改配置后,运行 jmeter(平均时间 0.307s)。可以看到平均网络延迟了 0.154s,如下图所示:

通过这样的设置方法,Jmeter 就可以做到弱网测试。

7.小结

宏哥简单的例举几个弱网测试工具:Fiddler、Clumsy。Clumsy 是基于 C 语言开发的一款开源网络模拟工具。它能在 Windows 平台下人工造成不稳定的网络状态,应用它可以方便调试应用程序在极端网络状态下的表现。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册