JMeter进行一次简单的压力测试
测试目的:10个用户并发打开百度首页(https://www.baidu.com/),百度能否正常响应。
操作步骤
一、打开JMeter
打开后的界面如下:
二、右击“测试计划”,添加线程组
三、设置线程组的线程数
JMeter中的线程组,类似于LoadRunner中的虚拟用户组,因为我们要测试10个用户并发的情况,所以这里的线程数,要设置为10。
“Ramp-Up Period(in seconds)”的含义是达到最大线程数(这里设置的是10)所需要的时间(单位是秒)。
如果我们把Ramp-Up Period设置为100秒,那么JMeter就会在100秒内启动所有10个线程,并让它们运转起来,每隔10秒启动一个新线程。这里我们把Ramp-Up Period设置为1秒。
四、右击“线程组”,添加“HTTP请求”
五、设置“HTTP请求”
服务器名称或IP:www.baidu.com
-
协议:https
-
方法:GET
-
路径:/
六、添加“察看结果树”
“察看结果树”是用来看测试结果的。
至此,测试脚本已经设置完了,我们可以执行一下了,看看当有10个用户并发访问百度首页时,百度能否正常响应。
点击“启动”,执行测试脚本,如下:
执行完毕后,在“察看结果树”里面会出现结果,如下:
在这里面,我们可以看到每个请求的请求数据和响应数据。
每个请求都有正确的响应,如下:
说明,在10个用户在1秒内并发访问的情况下,百度首页仍然能正确响应。
但是在这里,我们会发现,每个请求的响应数据是乱码的,如下:
这里,我们可以这么设置,如下:
右击刚添加的“HTTP请求”,添加后置处理器
在脚本里面输入:
prev.setDataEncoding("UTF-8");如下
再次执行脚本,响应数据就不会乱码了,如下:
对于需要登录才能使用的接口,有两种方法可以测试:
1. 静态token:通过抓捕工具fiddler或者其它工具,登录用户获取token值,添加http信息头管理器,添加参数:名称(token名称),值(获取到的token值);
2.添加Http Cookie管理器,参数填写登录信息里的sessionID的key和key值,[域]/[路径]这两项可填可不填,如果填写则填写登录的域和路径。
第二种方法也可以什么参数都不填,但在线程组加上登录请求,并且post请求勾选跟随重定向,其他请求不勾选。
关于JMeter学习,这里给大家推荐一本书《零成本实现Web性能测试:基于Apache JMeter和Gatling》,大家看一下JMeter的那部分就可以了,需要电子版的可以留言邮箱