在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来进行测试,两种结果对比如下:
从结果中可以看出,限制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这个功能比较鸡肋,没实际用处。