JMeter如何模拟不同的网络速度

  • 「如何以不同的网络连接速度测试移动应用程序和网站?」

在大多数情况下,移动设备用户通过其蜂窝运营商网络访问互联网。覆盖范围将根据其位置而有所不同,这意味着连接速度将有所不同。确保您的网站或应用程序能够完全处理移动设备和平板电脑,即使它们具有不同的互联网连接速度,也至关重要。

在今天的文章中,将展示如何通过在JMeter负载测试中控制模拟虚拟用户的带宽来做到这一点。

默认情况下,JMeter将尽快发送其采样器定义的请求。这对于产生负载非常有用,但不是很现实,因为实际用户不会不停地访问服务器,因此他们需要一些时间在两次操作之间进行人生思考。最重要的是,移动用户受到网络带宽的限制,这可能会进一步降低他们的速度。

限制输出带宽以模拟不同的网络速度

JMeter确实提供了限制输出带宽以模拟不同网络速度的选项。可以通过以下两个属性来控制带宽:

代码语言:javascript
复制
httpclient.socket.http.cps = 0

httpclient.socket.https.cps = 0

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

这是计算“cps”的公式:

cps=(目标带宽(以kbps为单位1024)/8

例如:为了模拟GPRS蜂窝网络速度(下行速度为171Kbits/秒),相关的CPS值为:21888(1711024/8)

因此,这是通过这些属性限制带宽的方法:

将这两行添加到user.properties文件中(可以在JMeter安装的bin文件夹中找到此行)

代码语言:javascript
复制
httpclient.socket.http.cps = 21888
httpclient.socket.https.cps = 21888
  • 重新启动JMeter来使配置生效

通过-J命令行参数传递属性的值,如下所示:

jmeter -Jhttpclient.socket.http.cps=21888 -Jhttpclient.socket.https.cps=21888 -t /path/to/your/testplan.jmx

  • 以下是一些流行的带宽预设:

带宽

cps值

GPRS

21888

3G

2688000

4G

19200000

WIFI 802.11a/g

6912000

ADSL

1024000

100 Mb局域网

12800000

千兆网卡

128000000

JMeter专题:

  • 用Groovy处理JMeter断言和日志
  • 用Groovy处理JMeter变量
  • 用Groovy在JMeter中执行命令行
  • 用Groovy处理JMeter中的请求参数
  • 用Groovy在JMeter中使用正则提取赋值
  • Groovy在JMeter中处理cookie
  • Groovy在JMeter中处理header
  • JMeter吞吐量误差分析

  • 「郑重声明」:公众号“FunTester”首发,欢迎关注交流,禁止第三方转载。