在大多数情况下,移动设备用户通过其蜂窝运营商网络访问互联网。覆盖范围将根据其位置而有所不同,这意味着连接速度将有所不同。确保您的网站或应用程序能够完全处理移动设备和平板电脑,即使它们具有不同的互联网连接速度,也至关重要。
在今天的文章中,将展示如何通过在JMeter
负载测试中控制模拟虚拟用户的带宽来做到这一点。
默认情况下,JMeter 将尽快发送其采样器定义的请求。这对于产生负载非常有用,但不是很现实,因为实际用户不会不停地访问服务器,因此他们需要一些时间在两次操作之间进行人生思考。最重要的是,移动用户受到网络带宽的限制,这可能会进一步降低他们的速度。
JMeter
确实提供了限制输出带宽以模拟不同网络速度的选项。可以通过以下两个属性来控制带宽:
httpclient.socket.http.cps = 0
httpclient.socket.https.cps = 0
这些分别用于HTTP
和 HTTPS 协议,图解 HTTP 脑图。该属性默认为零,这意味着没有限制。首字母缩写cps
代表 “每秒字符数”。当您将属性设置为零以上时,带宽将根据您的设置进行调节。
这是计算 “cps” 的公式:
cps=(目标带宽(以kbps为单位*1024)/8
例如:为了模拟GPRS
蜂窝网络速度(下行速度为 171Kbits/秒),相关的CPS
值为:21888(171*1024/8)
因此,这是通过这些属性限制带宽的方法:
user.properties
文件中(可以在JMeter
安装的bin
文件夹中找到此行)httpclient.socket.http.cps = 21888
httpclient.socket.https.cps = 21888
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 |