因为现有项目需要用到压力测试,所以今天花了几个小时对之前的jmeter进行更深层次的研究。
我试用Jmeter的测试机是在Windows8 64位的系统上进行了,测试服务器分为Ubuntu和Windows两种类型。
1. 配置环境变量,
之前都是找到jmeter的目录点击jmeter.bat启动Jmeter的,稍显麻烦,解决方案:在环境变量中path加上XXX\Apache\jmeter\bin,
这样Cmd中就可以直接运行jmeter了。
2. 响应断言的使用
响应断言故名思义,对响应数据进行分析,查看是否找到了,正确的接口信息中的值。
试用方式:线程组,右键-〉添加-〉断言-〉响应断言
在要测试的模式中添加,一个正确的接口中包含的信息。
3. 断言结果的使用
断言结果的使用,是为了在测试过程中更好的查看断言的正确与否,如果不正确,说明在接口返回的数据中已经开始包含了异常的接口数据。
4. 20QPS的设置
在今天的学习过程中,经常听到20QPS的说法,特意研究了下,大概内容如下:
QPS,就是服务器一秒钟处理的查询次数,被经常使用的一个参数,所以在这次测试过程中设置了一些Jmeter的参数,使得服务器的处理数据保持在20QPS的水平,从而查看来自服务器的一些性能参数。
其实就是通过,Constant Throughput Timer 定时器来做到的,添加--->定时器--->Constant Throughput Timer,弹出的页面中设置两个参数:
第一:Target throughput的选项 选择1200, 代表20QPS,因为Jmeter中是以分钟来计算的。
第二:CalculateThroughput based on:选择 all active threads,因为是要20QPS的总量分配到不同的线程上。而不是每个线程都是20QPS。
5. Jmeter的性能检测
性能检测是需要监控宿主也就是服务器的CPU,内存,I/O和TCP之类的一些性能数据。大概的原理是,服务器启动服务之后,测试机发起请求,然后服务器通过某一个约定好的端口将数据返回到测试机。
方法:
- 配置好测试机器上的jmeter环境
- http://jmeter-plugins.org/downloads/all/ 网站下载两个东西,JMeterPlugins-Standard-1.1.3.zip 和 ServerAgent-2.2.1.zip,
- Standard的zip包解压缩之后,将JMeterPlugins-Standard.jar 放在XXX\Apache\jmeter\lib\ext下,重启jmeter就可以看到在 线程组右键的监听器中可以看到增加了很多内容,在现有的项目中增加[email protected] - PerfMon Metrics Collector,作为监控服务器端的数据。
- 增加了[email protected] - PerfMon Metrics Collector之后,在其中Add Row,增加需要监控的数据信息,比如Cpu,Memory,Disks/IO,TCP等之类的信息,端口默认为4444,可以修改,但是需要确认的是来自服务器端是否4444已经被占用。至此,客户端已经配置完成。
- 服务器端配置,解压缩ServerAgent.zip包,放到服务器上,以Ubuntu为例。
- CD命令到该文件夹下,输入命令./XXXXXX/startAgent.sh。注意,如果客户端配置的不是4444端口,则需要启动客户端设置的端口,命令为./startAgent.sh --udp-port 0 --tcp-port Xxxx,当然Xxxx为设定好的端口号。
- 如果是Windows系统,双击startAgent.bat,即可,但是启动的是默认端口4444.
- 启动之后,可以看到成功和端口的信息。
这样环境就配置好了,在测试机器上,点击启动就可以开始接口的测试和压力测试工作了,当然在选择的[email protected] - PerfMon Metrics Collector也可以看到来自服务器的性能信息。
如图,是我在虚拟机中ubuntu系统作为服务器,Windows 系统作为测试机器,进行的压力测试结果中来自服务器的性能图。
后续还有很多工作继续学习。。。
Jmeter深入一点的研究