移动终于超越了桌面流量 - 这种趋势看起来有望上升。但这对我们意味着什么?
对于初学者来说,这意味着现在,我们比以往任何时候都更需要在运行性能测试时关注移动用户。如果我们的移动网站或应用程序表现不佳 - 我们将失去很多业务
如何加载测试移动应用程序和具有不同连接速度的站点
在大多数情况下,移动设备用户通过其蜂窝运营商网络访问互联网。覆盖范围将根据其位置而有所不同,这意味着连接速度会有所不同。确保您的网站或应用程序可以完全处理移动设备和平板电脑至关重要 - 即使它们具有不同的互联网连接速度。
在今天的文章中,我将向您展示如何通过在JMeter负载测试中控制模拟虚拟用户的带宽来实现此目的。
默认情况下,JMeter将尽可能快地发送其采样器定义的请求。这非常适合产生负载 - 但不是很现实,因为真正的用户不会不停地锤击服务器,他们需要一些时间来考虑操作。最重要的是,移动用户受到网络带宽的限制,这可能会使移动用户的速度进一步降低。
限制输出带宽以模拟不同的网络速度
JMeter确实为您提供了限制输出带宽的选项,以便模拟不同的网络速度。可以通过以下两个属性控制带宽:
1、httpclient.socket.http.cps = 0
2、httpclient.socket.https.cps = 0
它们分别用于HTTP和HTTPS协议。属性默认为零,这意味着没有限制。首字母缩写“cps”代表“每秒字符数”。将属性设置为大于零时,将根据您的设置限制带宽。
这是计算“cps”的公式:【Kbps又称比特率,指的是数字信号的传输速率,也就是每秒钟传送多少个千位的信息】
cps =(目标带宽,以kbps * 1024为单位)/ 8
例如:要模拟GPRS蜂窝网络速度(下载171 Kbits /秒),相关的CPS值将为:21888(171 * 1024/8)
所以这里是如何通过这些属性限制带宽:
1.将这两行添加到user.properties文件中(您可以在JMeter安装的bin文件夹中找到它)
httpclient.socket.http.cps = 21888
httpclient.socket.https.cps = 21888
您需要重新启动JMeter才能选择这些属性
2.或者,您可以通过-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 LAN | 12800000 |
千兆蓝 | 1.28 |