JMeter使用技巧(2)

发表于:2013-08-12来源:博客园作者:虫师点击数: 标签:jmeter
使用多台机器产生负载的操作步骤如下: (1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作

  使用多台机器产生负载的操作步骤如下:

  (1)在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。然后运行所有 agent 机器上的jmeter-server 文件(假定使用两台机器192.168.0.100 和192.168.0.101 作为agent)

  (2)在controller机器的jmeter的bin目录下,找到jmeter.properties 文件,编辑该文件:

复制代码

  查找:

  remote_hosts=127.0.0.1

  修改为:

  remote_hosts=192.168.0.100:1099,192.168.0.101:1099

复制代码

  这里要特别注意端口后,有些资料说明端口1644为jmeter的controller 和agent 之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机子是否开启了防火墙等。

  (3)启动controller 机子上的jmeter应用,选择菜单“运行”--->“远程启动”,来分别启动agent ,也可以直接选择“远程全部启动”来将所有的agent启动。

  启动Debug 日志记录

  大多数测试元件都支持Debug 日志记录。如果通过 GUI 运行测试计划,那么在选中测试元件后,可以通过“帮助”菜单enable debug或者disable debug。在“帮助”菜单 中有一个选项“What’s this node? ”,

  通过它可以查看GUI 和测试元件的类名,如图 11 -7 所示。通过它们,测试人员可以决定修改哪一项JMeter 属性,以便修改日志级别。

  例如:我们可以点击一个HTTP请求,选择菜单栏“帮助”--->what's this node ?

  在jmeter的bin\目录下,找到jmeter.properties 文件,关于日志级别的属性如下:

复制代码

  #Logging levels for the logging categories in JMeter. Correct values are FATAL_ERROR, ERROR, WARN, INFO, and DEBUG

  # To set the log level for a package or individual class, use:

  # log_level.[package_name].[classname]=[PRIORITY_LEVEL]

  # But omit "org.apache" from the package name. The classname is optional. Further examples below.

  log_level.jmeter=INFO

  log_level.jmeter.junit=DEBUG

  #log_level.jmeter.control=DEBUG

  #log_level.jmeter.testbeans=DEBUG

  #log_level.jmeter.engine=DEBUG

  #log_level.jmeter.threads=DEBUG

  #log_level.jmeter.gui=WARN

  #log_level.jmeter.testelement=DEBUG

  #log_level.jmeter.util=WARN

  #log_level.jmeter.util.classfinder=WARN

  #log_level.jmeter.test=DEBUG

  #log_level.jmeter.protocol.http=DEBUG

  # For CookieManager, AuthManager etc:

  #log_level.jmeter.protocol.http.control=DEBUG

  #log_level.jmeter.protocol.ftp=WARN

  #log_level.jmeter.protocol.jdbc=DEBUG

  #log_level.jmeter.protocol.java=WARN

  #log_level.jmeter.testelements.property=DEBUG

  log_level.jorphan=INFO

复制代码

  搜索功能

  这是在使用一个变量或含有一定的URL或参数测试计划树和元素有时很难找到。现在一个新的特点是从2.6开始,你可以访问它的菜单搜索。它提供了搜索与下列选项:

  * 使搜索区分大小写区分大小写:

  * 正则表达式是一个正则表达式搜索文本,如果有的话将被搜索的正则表达式树的组件,例如“\ BTEST \ b”将匹配任何组件,包含测试组件的搜索元素

  线程之间传递变量

  JMeter 变量作用域局限于所属线程。这样设计是经过深思熟虑的,目的是让测试线程能够独立运转。有时候用户可能需要在不同线程间(可能属于同一个线程组,也可能不属于同一个线程组)传递变量。

  其中一种方法就是使用属性。属性为所有 JMeter 线程所共享,因此当某个线程设置一个属性后,其他线程就可以读取更新后的值。

  如果存在大量数据需要在线程间传递,那么可以考虑使用文件。例如,测试人员可以在一个线程中使用监听器,保存响应到文件(Save Responses to a file )或者 BeanShell PostProcessor 。而在另外一个线程中使用HTTP 采样器的“file: ”协议来读取文件,接着使用一个后置处理器或者BeanShell 测试元件提取信息。

  如果在测试启动前测试人员就能获得测试数据,那么最好将数据保存到文件中,使用CSV Dataset读取。

  ----------------------------------------

  这最后一个技巧,操作较为麻烦,暂时不给详细的例子。算是提供个思路吧!知道有这当子事儿就行了。日后有机会再实践^_^

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