在jmeter测试中模拟不同的带宽环境

怎么去测试在手机app中和在web的不同的连接速度对服务器的影响呢?

大部分情况下,手机终端用户通过移动网络访问网站.
所以在不同的网络连接数据下,我们的网站或程序可以同时处理多少链接?
今天,这篇文件就讨论在jmeter中用不同的带宽模拟测试

默认情况下,jmeter发请求是尽自己最大努力的的发,但与真实情况却有差别。

jmeter给出不两个选项来模拟不同的网络速度
1、httpclient.socket.http.cps=0
2、httpclient.socket.https.cps=0

分别控制http和https。默认的参数值为0,也就是不限制速度。cap是"characeters per second"的首字母缩写,当你编辑大于0时,带宽将会根据你的设定限制。

cap的计算公式如下:

cps=(目标带宽kbps * 1024)/8

比如:当想模拟GRPS网络时(下行为171Kbit/s ),cps数值就为21888(171*1024)/8

可以通过以下几种方式来设置带宽

1、在user.properties文件中添加上面二行(在bin文件中可以找到
如:
httpclient.socket.http.cps=21888
httpclient.socket.https.cps=21888

重启jmeter将设置生效

2、或者,可以通过变更启动文件的参数,如:
jmeter -Jhttpclient.socket.http.cps=21888 -Jhttpclient.socket.https.cps=21888 -t /path/to/your/testplan.jmx

可以查看官方文档

http://jmeter.apache.org/usermanual/get-started.html

接下来,我们来实践下:

尝试访问baidu来进行测试,两种结果对比如下:

在jmeter测试中模拟不同的带宽环境

在jmeter测试中模拟不同的带宽环境

从结果中可以看出,限制GRPS的带宽,Throughput没有超过180

下面给出常用的网络cps值:

网络  Cps值
GPRS  21888
3g    2688000
4g   19200000
wifi(802.11a/g) 6912000
adsl 1024000
100m 12800000
Gigabit 128000000

注:只能使用httpclient 3.1或httpclient 4方式来进行带宽限制。

个人感觉jmeter这个功能比较鸡肋,没实际用处。