JMeter使用技巧

发表于:2013-08-12来源:博客园作者:虫师点击数: 标签:jmeter
在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享。本文内容如下。 如何使用英文界面的jmeter

  在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享。本文内容如下。

  如何使用英文界面的jmeter

  如何使用镜像服务器

  Jmeter分布式测试

  启动Debug 日志记录

  搜索功能

  线程之间传递变量

  如何使用英文界面的JMeter

  Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动,所以,我们启动jmeter后,其会出现一个倍感亲切的中文界面。但由于jmeter本身的汉化工作做得不好,你会看到有未被汉化的选项及元件的参数。而且部分翻译并不准确,因此对于英文比较好的牛人来说更喜欢纯正的英文界面。

  强制以英文方式启动jmeter的方法如下:

  在windows环境下,打开jmeter解压目录,bin目录下的jmeter.bat文件,也就是jmeter程序的启动文件,选择记事本方式打开。做以下修改:

复制代码

  .................

  set HEAP=-Xms512m -Xmx512m

  set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

  set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%

  set TENURING=-XX:MaxTenuringThreshold=2

  set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000

  set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m

  set LOCALE=-Duser.language=en -Duser.region=rem set DEBUG=-verbose:gc -XX:+PrintTenuringDistribution

  .........

  rem Server mode

  rem Collect the settings defined above

  set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %RMIGC% %PERM% %DDRAW% %LOCALE%

  .............

复制代码

  晕死,当我上面介绍了那么多后,在最新的2.8版本,我无意中发现了这个功能。

  如何使用镜像服务器

  在调试和修改测试计划的过程中,通常会为采样器增加一些额外的设置,例何设置额外的HTTP头、cookie管理器或认证管理器等,但当设置了这些内容后,sampler发出的请求是否就与预期的完全一支呢?

  当然用户可以通过添加监听器来看查采样器发出的HTTP请求,但如果调试过程中并不想真正地把请求发送给被测应用,如何解决这个问题呢?

  Jmeter 提供了一个名叫HTTP Mirror Server的组件,HTTP Mirror Server可以启动一个镜像的服务器,该服务器把所有接收到的请求原封不动地返回,这样就可以看到发出请求的具体内容了。

  添加HTTP Mirror Server的方式:

  右键点击“工作台”--->非测试元件--->HTTP Mirror Server

  如果有必要的话需要修改端口号,点击“启动”按钮来启动Server 。

  接下来修改采样器,使其将HTTP请求 发送到localhost:8081(也就是Mirror Server启动的位置)

  然后,运行测试计划,则可以从监听器“查看结果树”中看到响应数据。

  JMeter分布式测试

  Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制。

  那么,是如何实现多台负载机同时运行的呢?当然不会多个人坐在多台负载机面前,一喊开始,大家同时启动jmeter。这种方式很笨,也很难达到真正的同步。其实,我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。

  通过远程运行jmeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力,一个jmeter客户端实例,理论上可以控制任意多的远程jmeter实例,并通过他们收集测试数据。这样一样,就有了如下特性:

  * 保存测试采样数据到本地机器

  * 通过单台机器管理多个jmeter执行引擎。

  * 没有必要将测试计划复制到每一台机器,jmeter GUI客户端会将它发往每一台jmeter服务器。

  * 每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划。

  在1.4G Hz~3GHz 的CPU 、1GB 内存的 JMeter 客户端上,可以处理线程 100~300。但是Web Service 例外。XML处理是 CPU 运算密集的,会迅速消耗掉所有的CPU 。一般来说,以XML技术为核心的应用系统,其性能将是普通Web 应用的 10%~25% 。另外,如果所有负载由一台机器产生,网卡和交换机端口都可能产生瓶颈,所以一个JMeter 客户端线程数不应超过 10 0 。

  采用JMeter 远程模式并不会比独立运行相同数目的非GUI 测试更耗费资源。但是,如果使用大量的JMeter 远程服务器,可能会导致客户端过载,或者网络连接发生拥塞。

原文转自:http://www.cnblogs.com/fnng/archive/2012/12/29/2839420.html