首页 > 代码库 > Jmeter深入一点的研究

Jmeter深入一点的研究

因为现有项目需要用到压力测试,所以今天花了几个小时对之前的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就可以看到在 线程组右键的监听器中可以看到增加了很多内容,在现有的项目中增加jp@gc - PerfMon Metrics Collector,作为监控服务器端的数据。
  • 增加了jp@gc - 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.
  • 启动之后,可以看到成功和端口的信息。

 这样环境就配置好了,在测试机器上,点击启动就可以开始接口的测试和压力测试工作了,当然在选择的jp@gc - PerfMon Metrics Collector也可以看到来自服务器的性能信息。

 

如图,是我在虚拟机中ubuntu系统作为服务器,Windows 系统作为测试机器,进行的压力测试结果中来自服务器的性能图。

 

后续还有很多工作继续学习。。。