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就可以看到在 线程组右键的监听器中可以看到增加了很多内容,在现有的项目中增加[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深入一点的研究

时间: 2024-08-17 12:43:20

Jmeter深入一点的研究的相关文章

关于 const 的一点小研究

在饱受 var 的折磨之后,ES6 终于推出了新的定义变量的方法:let 和 const 和 var 相比,let 和 const 有了自己的作用域,let 用于定义变量,而 const 用于定义常量 但在实际工作中,它们常常有一些出人意料的表现,今天就先说说 "常量" const 上面的示例十分很常见,也很容易理解.作为一个常量,定义之后是不能再次定义的 但是如果换一种方式... 在定义了常量 name 之后,没有重定义 name,而是增加一个 info 属性 虽然这个 info 属

Spring中定时任务@Scheduled的一点小小研究

最近做一个公众号项目,微信公众号会要求服务端找微信请求一个access_token,获取的过程: access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留512个字符空间.access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效. 公众平台的API调用所需的access_token的使用及生成方式说明: 1.建议公众号开发者使

冒个泡,还活着??做了个项目,一点感想。

的确,成家后,很多时间都由不得自己安安静静地花时间去学习了.从3月底到7月底,香港.买车.婚礼,很多事情都在今年一起办了. 8月初的时候接到一个项目,做微信定制开发的,由于是兼职,有持续一周的时间,每天晚上和朋友加班到晚上3.4点,第二天又正常上班.而且之前没做过定制开发(甲方要求用户体验高.很多细节的技术还要即时攻尖),虽然很累,但是最后做出来了,而且上线20多天,经过2000人左右的体验,没出什么大问题,已经感到很高兴了. 虽然还有项目尾款没拿到,但还是用之前的钱,为自己换了一台mac pr

SqlDataAdapter 更新插入 与 InsertBulkCopy

近日做项目,涉及多个数据库多个表的关联更新,因数据量巨大,逐条更新也很费时.于是就想用SqlDataAdapter 一次提交一批数据过去.以下是自己经历的坑: 1. table Merge 部分 DataTable dtCBBill = DbHelper.ExecuteDataAdapter(SqlHelper.cbBill, pars, strConnOldCBBill); DataTable dtMember = DbHelper.ExecuteDataAdapter(SqlHelper.a

HBuilder开发App教程04-最难搞定的是mui

前言 前几篇说到一些HBuilder开发app的基础教程, 现在来说一下HBuilder开发app的难点,或者说是上手的难点, 就是mui, 如果你没有研究mui就贸然的上手HBuilder,那你的开发过程是痛苦的, 花一点时间研究下mui,对你之后开发app有很大的帮助. 网址 教程再好,也会有疏漏的地方,还需要你仔细阅读官方文档, 附地址:http://dcloudio.github.io/mui/ init mui封装了很多常用的页面方法,都需要在init中设置,例如: 1.和上拉加载,下

log4net RemotingAppender 的配置

Before you even start trying any of the alternatives provided, ask yourself whether you really need to have multiple processes log to the same file, then don't do it ;-). FileAppender offers pluggable locking models for this usecase but all existing

高效能程序员的修炼—第一次读后感

高效能程序员的修炼-第一次读后感 最近利用在地铁上的时间看完了<高效能程序员的修炼>发现自己还是存在的很大的不足之处,或者说成为程序员就需要不停的学习,而我在一段时间很自满以为没有自己不能解决的问题,直到跳出了那个城市来到了北京才发现自己不过是一个很菜的菜鸟,在这里我那点知识根本是不够用的额,我突然发现了如果这么下去我们之间的差距就会变得很大,然后么我就每天花一点时间研究一些深入的东西,发现以前的好多东西站在现在的角度还是有很大改进的地方.特别是最近看了这本书,发现人或许就是活到老.学到老,而

【iOS开发每日小笔记(五)】实测copy到底是个神马玩意

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.该分类的文章,内容涉及的知识点可能是很简单的.或是用很短代码片段就能实现的,但在我看来它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.其实,90%的作用是帮助自己回顾.记忆.复习.如果看官觉得太easy,太碎片,则可以有两个选择:1,移步[iOS探究]分类,对那里的文章进行斧正:2,在本文的评论

WGZX:javaScript 学习心得--2

转贴javascript心得(二) 标签: javascriptajaxweb开发htmlfirefox框架 2008-09-11 10:56 636人阅读 评论(0) 收藏 举报  分类: UI(21)  1,不要认为Struts已经过时了,也不要盲目的去追随JSF以及更新的MVC框架,在目前Struts仍旧 是最为优秀的MVC框架,尤其是后来与spring.hibernate(或者Ibatis)的结合,使得Struts的应用得到了进一步的发展,也许你 认为Webwork2.SpringMVC