目 录

 2。 新手入门


开始使用JMeter最简单的方法是先下载最新版本的生产和安装。 本新闻稿中包含的所有文件,你需要建立和运行大多数类型的测试,例如,Web(HTTP / HTTPS),FTP,JDBC,LDAP,Java中,和JUnit。

如果你想执行JDBC测试,那么你会,当然,需要适当的JDBC驱动程序从您的供应商。 JMeter的不附带任何JDBC驱动。

JMeter的包括JMS API的JAR文件,但不包括JMS客户端实现。 如果你想运行JMS测试,你需要下载JMS提供者的合适的ja​​r。

参见JMeter 的classpath中部分细节上安装额外的罐子。

接下来,启动JMeter并通过建立一个测试计划 “用户指南”一节,以了解自己使用JMeter基础(例如,添加和删除元素) 。

最后,经过对如何建立一个测试计划的具体类型的相应部分。 例如,如果你是在测试一个Web应用程序感兴趣,然后看到一个Web测试计划的部分建筑 。 其他具体的测试计划部分是:

高级Web测试计划
JDBC的
FTP
JMS点到点
JMS主题
LDAP
LDAP扩展
Web服务(SOAP)

一旦你舒适的建设和运行JMeter测试计划,你可以寻找到的各种配置元素(定时器,监听器,断言,和其他人),让您更好地控制您的测试计划。


2.1需求

JMeter要求在您的计算环境,满足一些最低要求。
2.1.1 Java的版本

JMeter要求在一个完全兼容的JVM 1.5或更高。

因为JMeter的只使用标准的Java API,请不要提交错误报告,如果你的JRE失败运行JMeter的,因为JRE的实施问题。

 2.1.2作业系统

JMeter是100%的Java应用程序,并应在任何系统中,有一个兼容的Java实现正确运行。

JMeter已经和工程:

UNIX(Solaris上,Linux等)
的Windows(98,NT,XP等)
的OpenVMS Alpha 7.3 +

2.2可选

如果你做JMeter的发展计划,那么你会需要下面列出的一个或多个可选包。
2.2.1 Java的编译器

如果你想建立JMeter的源或开发JMeter的插件,那么您将需要一个完全兼容JDK 1.5或更高。


2.2.2 SAX的XML解析器

JMeter的来自Apache的Xerces XML解析器 。 你必须告诉JMeter的使​​用不同的XML解析器的选项。 要做到这一点,包括第三方解析器在JMeter的classpath中的类,和更新的jmeter.properties文件解析器实现的完整类名。


2.2.3电子邮件支持

JMeter的具有丰富的电子邮件功能。 根据测试结果,它可以发送电子邮件,并有一个POP3(S)/ IMAP(S)取样。 它也有一个SMTP取样。


2.2.4 SSL的加密

要测试一个Web服务器,使用SSL加密(HTTPS),JMeter要求提供SSL实现,是与Sun Java 1.4及以上的情况下。 如果您的Java版本不包括SSL支持,那么很可能增加一个外部的实施。 包括必要的加密包在JMeter 的classpath中。 此外,更新system.properties注册SSL提供者。

JMeter的HTTP默认协议水平的TLS。 这是可以改变的,编辑工作JMeter的属性“https.default.protocol”jmeter.properties或user.properties。

JMeter的HTTP取样器配置为接受的所有证书,是否信任与否,不管有效期等 ,这是为了让最大的灵活性,在测试服务器。

如果服务器要求客户端证书,这可以提供。

还有的SSL管理 ,为更大的控制证书。

JMeter的代理服务器(见下文)支持在2.3.4之后的版本录制的HTTPS(SSL)

SMTP采样可以选择使用一个本地的信托商店或信任的所有证书。


2.2.5 JDBC的驱动

您需要将您的数据库厂商的JDBC驱动程序添加到 classpath中,如果你想要做的JDBC测试。 请确保该文件是一个JAR文件,而不是一个zip。


2.2.6的JMS客户端

JMeter的现在包括从Apache Geronimo的JMS API,所以你只需要添加从JMS提供适当的JMS客户端执行的JAR(S)。 请参阅其文档以了解详情。 也有可能是JMeter的维基上的一些信息。


2.2.7图书馆的ActiveMQ JMS的

在写作时,当前版本的ActiveMQ 5.3.2。 您将需要添加ActiveMQ的所有- 5.3.2.jar到你的classpath中,如存储在lib /目录下的jar。

另外,添加ActiveMQ的核心- 5.3.2.jar到classpath中的jar,这是需要的,可在Apache Geronimo Geronimo的J2EE management_1.0_spec - 1.0.jar的jar发现javax/management/j2ee类。 其他需要的jar(如下议院记录)已经包含使用JMeter。
 有关详细信息,请参阅http://activemq.apache.org/initial-configuration.html 。
JMeter 的classpath中的更多细节部分上安装额外的罐子。

2.3安装

我们建议大多数用户运行最新的版本 。

要安装一个发布版本,只需将其解压缩到的zip / tar文件的目录,你想JMeter的安装。 只要你有一个JRE / JDK的正确安装和JAVA_HOME环境变量设置,是为你做而已。

注意:如果目录路径中包含任何空格,可以有问题(特别是客户机 - 服务器模式)。

安装目录结构应该是这个样子(版本2.3.1):

雅加达JMeter的- 2.3.1
jakarta-jmeter-2.3.1/bin
jakarta-jmeter-2.3.1/docs
jakarta-jmeter-2.3.1/extras
jakarta-jmeter-2.3.1/lib /
jakarta-jmeter-2.3.1/lib/ext
jakarta-jmeter-2.3.1/lib/junit
jakarta-jmeter-2.3.1/printable_docs

如果你想,可以重命名的父目录(即雅加达JMeter的2.3.1),但不改变任何子目录名称。

2.4运行JMeter的

要运行JMeter,运行jmeter.bat(Windows)或JMeter的(对于Unix)文件。 这些文件是在bin目录中找到。 在短暂的停顿后,JMeter的GUI应该会出现。

有一些额外的脚本,在bin目录中,你会发现有用的。 Windows脚本文件(cmd文件需要Win2K或更高版本)。

jmeter.bat - 运行JMeter(默认情况下,在GUI模式)
JMeter的n.cmd - 砸一个JMX文件运行一个非GUI测试
JMeter的nr.cmd - 砸一个JMX远程文件运行一个非GUI测试
JMeter的t.cmd - 下降这是一个JMX文件加载在GUI模式下
JMeter的server.bat - 在服务器模式下启动JMeter的
镜子server.cmd - 在非GUI模式运行JMeter的镜像服务器
shutdown.cmd - 关闭客户端运行正常停止非GUI实例
stoptest.cmd - 运行关机客户机突然停止一个非GUI的实例

注:去年特殊的名字,可用于使用JMeter n.cmd的,JMeter t.cmd和JMeter的nr.cmd和手段,以交互方式运行的最后一个测试计划。

环境变量JVM_ARGS可用于覆盖在jmeter.bat脚本JVM设置。 例如:

设置JVM_​​ARGS =“- Xms1024m - Xmx1024m - Dpropname = propvalue”
JMeter的- T test.jmx ...

UN * X的脚本文件,在大多数Linux / Unix系统的工作:

JMeter的 - 运行JMeter(默认情况下,在GUI模式)。 定义了一些JVM的设置可能不适合所有JVM。
JMeter的服务器 - 在服务器模式下启动JMeter的(用适当的参数调用JMeter的脚本)
jmeter.sh - 没有JVM指定的选项非常基本的JMeter的脚本。
镜面server.sh - 在非GUI模式运行JMeter的镜像服务器
shutdown.sh - 关闭客户端运行正常停止非GUI实例
stoptest.sh - 运行关机客户机突然停止一个非GUI的实例

它可能是必要的编辑JMeter的shell脚本,如果一些JVM选项不支持您使用的是由JVM。 JVM_ARGS环境变量可以用于覆盖或设置其他JVM选项,例如,

JVM_ARGS =“- Xms1024m - Xmx1024m”JMeter的- T test.jmx [等]

将覆盖脚本中的堆设置。

2.4.1 JMeter的Classpath的

JMeter会自动找到以下目录罐中的类:

JMETER_HOME / LIB - 实用罐
JMETER_HOME / lib / ext目录 - JMeter组件和附加使用

如果您已经开发了新的JMeter组件,那么你应该JAR,并复制到JMeter的lib / ext目录下的JAR。 JMeter会自动找到在这里找到任何罐JMeter组件。

支持罐(库等)应放置在 lib目录中。

如果你不想把JMeter的lib / ext目录扩展罐,然后在jmeter.properties定义的属性search_paths。 不要实用罐使用LIB / EXT,它是唯一的JMeter组件。

其他的jar(如JDBC,JMS实现和JMeter的代码所需要的任何其他支持libaries等),应放置在lib目录-不是lib / ext目录

注:JMeter会只找到jar文件,而不是拉链。。

您还可以安装实用程序JAR文件在$ JAVA_HOME / JRE / lib / ext目录,或(2.1.1),您可以设置在jmeter.properties 财产 user.classpath

请注意,设置CLASSPATH环境变量,将没有任何效果。 这是因为JMeter是开始与“Java的JAR”,和java命令默默地忽略CLASSPATH变量,而当罐子-classpath/-cp选项。 出现这种情况所有的Java程序,而不仅仅是JMeter的。]

2.4.2使用代理服务器

如果您是从后面的防火墙/代理服务器的测试,您可能需要提供JMeter的防火墙/代理服务器的主机名和端口号。 要做到这一点,从以下参数的命令行运行jmeter.bat / JMeter的文件:

- H [代理服务器主机名或IP地址]

- P [代理服务器的端口]

- N [nonproxy主机](如*. apache.org |本地主机)

- U [代理身份验证的用户名 - 如果需要的话]

[代理身份验证密码 - 如果需要的话]

例如 :my.proxy.server JMeter的- H - P 8000 - u用户名- A - N的密码本地主机

或者,您可以使用 - proxyHost, - proxyPort, - 用户名,和 - 密码

JMeter的也有其自身内置的HTTP代理服务器,可用于记录HTTP或HTTPS浏览器会话。 这不是与上面所述的代理设置,这是用来当JMeter的HTTP或HTTPS请求本身混淆。


2.4.3非GUI模式(命令行模式)

对于非交互式的测试,你可以选择没有GUI运行JMeter的。 要做到这一点,使用下面的命令选项

- N指定JMeter是在非GUI模式下运行

- T [JMX的文件名称包含测试计划]。

- L [JTL文件的名称记录样本的结果]。

- J [JMeter的运行日志文件的名称]。

- R运行JMeter的财产“remote_hosts”中指定的服务器测试

- R [远程服务器列表在指定的远程服务器上运行测试

该脚本还可以让你指定可选的防火墙/代理服务器信息:

- H [代理服务器主机名或IP地址]

- P [代理服务器的端口]

例如 :JMeter的- N - T log.jtl my_test.jmx - L - H my.proxy.server - P 8000


2.4.4服务器模式

对于分布式的测试,在服务器模式下运行JMeter的遥控器上的节点(S),然后从GUI控制服务器(S) 。 您也可以使用非GUI模式下运行远程测试。 要启动服务器(S),每台服务器主机上运行jmeter-server/jmeter-server.bat。

该脚本还可以让你指定可选的防火墙/代理服务器信息:

- H [代理服务器主机名或IP地址]

- P [代理服务器的端口]

例如 :JMeter的服务器- H my.proxy.server - P 8000

如果你想在服务器退出后,已运行一个单一的测试,然后定义JMeter的财产server.exitaftertest = TRUE。

要在非GUI模式下的客户端运行测试,使用下面的命令:

JMeter的testplan.jmx - N - T - R - Gprop = VAL] [ - Gglobal.properties] [- Z]
其中:
- G是用来定义JMeter的属性设置在服务器
- “X”表示退出的服务器,在测试结束
Rserver1,server2的 - 可以用来代替- R提供一个服务器列表启动
覆盖remote_hosts,但不定义该属性。


2.4.5通过命令行的首要 ¶

Java系统属性,JMeter的属性和记录属性可以直接在命令行上(而不是修改jmeter.properties)重写。 要做到这一点,使用下列选项:

D [prop_name] = [值] - 定义了一个Java系统属性的值。

- J [道具名] = [值] - 定义一个本地的JMeter的财产。

- G [道具名] = [值] - 定义了一个JMeter属性被发送到所有远程服务器。

- G [propertyfile] - 定义一个文件被发送到所有远程服务器包含JMeter的属性。

- L [类别] = [优先] - 覆盖了日志记录设置,设置特定类别的优先级。

- L标志也可以使用无根日志记录级别设置的类别名称。

例如 :

JMeter的,Duser.dir = / / mstover / jmeter_stuff \
- Jremote_hosts = 127.0.0.1 - Ljmeter.engine =调试

JMeter的,LDEBUG

注意:

早在启动命令行属性的处理,但后测井系统已成立。 尝试使用- J标志,更新LOG_LEVEL或log_file属性不会有任何效果 。


2.4.6日志和错误消息

JMeter的一般不使用错误弹出对话框,因为这些会干扰运行测试。 也没有报告任何一个错误拼写的变量或函数的错误,而只是用于参考。 更多信息 , 请参阅函数和变量。

如果JMeter的检测在检测过程中的错误,一个消息将被写入到日志文件。 日志文件的名称是指在jmeter.properties文件(或使用- j选项,见下文)。 它默认为jmeter.log,并会从中JMeter的启动目录中发现。

JMeter的2.2之后的版本中添加了一个新的命令行选项- J jmeterlogfile。 这是处理后的初始属性的文件被读取,处理之前,任何进一步的属性。 因此,它允许重写jmeter.log默认。 JMeter的脚本,测试计划名称作为参数(如JMeter的n.cmd)已更新定义日志文件的使用,例如Test27.jmx的日志文件设置为Test27测试计划测试计划名称。日志。

在Windows上运行时,该文件可能会出现像刚才JMeter的 ,除非你有Windows设置为显示文件扩展名。 你应该做的,可以更容易地检测病毒和其它脏东西,伪装成文本文件...]

以及记录错误,jmeter.log文件记录了一些有关测试运行的信息。 例如:

2003年10月17日下午12时一十九分20秒信息 - jmeter.JMeter:版本1.9.20031002
2003年10月17日下午12时19分45秒INFO - jmeter.gui.action.Load:加载文件:C:\ mytestfiles \ BSH.jmx
2003年10月17日12时十九分52秒信息 - jmeter.engine.StandardJMeterEngine:运行测试!
2003年10月17日12时十九分52秒INFO - jmeter.engine.StandardJMeterEngine:开始1线程组博西。 斜坡上升= 1。
2003年10月17日12时十九分52秒INFO - jmeter.engine.StandardJMeterEngine:继续对错误
2003年10月17日12时十九分52秒INFO - jmeter.threads.JMeterThread:主题BSH1 1日开始
2003年10月17日12时十九分52秒INFO - jmeter.threads.JMeterThread:主题BSH1 - 1完成
2003年10月17日12时十九分52秒信息 - jmeter.engine.StandardJMeterEngine:测试已经结束    


日志文件可以帮助确定错误的原因,像JMeter不中断测试显示错误对话。


2.4.7完整的命令行选项列表

调用像JMeter JMeter的 - 吗?“ 会打印出所有的命令行选项的列表。 这些所示。

- H, - 帮助
打印用法信息并退出
- V, - ​​版
打印版本信息并退出
- P, - propfile {参数}
使用JMeter的属性文件
- Q, - addprop {参数}
额外的属性文件(S)
- T, - testfile将{参数}
JMeter测试(JMX)文件运行
- J - jmeterlogfile {参数}
JMeter的日志文件
- L, - 日志文件{参数}
日志文件的样本,以
- N, - nongui
nongui模式运行JMeter
- S, - 服务器
运行JMeter的服务器
- H - proxyHost {参数}
JMeter的使​​用设置代理服务器
- P - proxyPort {参数}
JMeter的使​​用设置代理服务器的端口
- U, - 用户名{参数}
设置代理服务器的用户名,JMeter是使用
- A, - 密码{参数}
代理服务器的设置密码,JMeter是使用
- J - jmeterproperty {参数} = {值}
定义附加的JMeter的属性
- G - globalproperty(参数)=(值)]
定义全局属性(发送到服务器)
EG - Gport = 123
或- Gglobal.properties
- D - systemproperty {参数} = {值}
定义额外的系统性能
- S - systemPropertyFile {文件名}
要添加一个属性文件为系统属性
- L - 的loglevel {参数} = {值}
定义的loglevel:[类别]水平
例如jorphan = INFO或jmeter.util = DEBUG
- R, - runremote(非GUI)
启动远程服务器(JMeter的属性remote_hosts定义)
- R, - remotestart server1上,... ...  (仅限于非GUI)
启动这些远程服务器(覆盖remote_hosts)
- D, - HOMEDIR {参数}
使用JMeter的主目录
- X - remoteexit
退出远程服务器,在测试结束(非GUI)

注:。JMeter的日志文件的名称是一个SimpleDateFormat的(适用于当前日期),如果它包含单引号配对,如“jmeter_'yyyyMMddHHmmss”格式化日志“

如果特殊的名字,最后是使用了- t,- J - l标志,那么JMeter需要,意味着最后的测试计划,在交互模式下运行。

2.5配置JMeter的

如果你想修改与JMeter的运行,你需要修改/ bin目录的jmeter.properties或创建您自己的jmeter.properties副本,并在命令行中指定它的属性。

注意:从2.2开始,您可以定义附加的JMeter的属性在JMeter 的财产user.properties有默认值user.properties的定义的文件。 该文件将被自动加载,如果发现在当前目录中,或者如果它是在JMeter的bin目录中找到。 同样,system.properties是用来更新系统属性。

参数
属性     说明     要求
ssl.provider     您可以指定您的SSL实现的类,如果你不想使用内置的Java实现。     无
xml.parser     您可以指定您的XML解析器的实现。 默认值是:org.apache.xerces.parsers.SAXParser     无
remote_hosts     逗号分隔的列表远程JMeter的主机(或主机:端口如果需要的话)。 如果你是在分布式环境中运行JMeter中,列出的机器,你必须JMeter的远程服务器上运行。 这将允许您从本机的图形用户界面控制那些服务器     无
not_in_menu     一个组件的列表,你不希望看到在JMeter的菜单。 像JMeter有越来越多的组件,您不妨来定制你的JMeter的,只显示那些您感兴趣,您可以列出他们的类名或类标签(JMeter的用户界面出现的字符串)的组成部分,他们将没有不再出现在菜单中。     无
sea​​rch_paths     路径列表(分隔;),JMeter会为JMeter的搜索类上;例如额外的采样。 这是除了在lib / ext目录中发现的任何jar文件。     无
user.classpath     路径列表,JMeter将搜索的实用工具类。 这是除了在lib目录中发现的任何jar文件。     无
user.properties     文件包含附加的JMeter的属性的名称。 这些补充后的初始属性文件,但前- Q和- J选项的处理。     无
system.properties     含有额外的系统属性的文件的名称。 这些都是加入前- S和- D选项的处理。     无

命令行选项和属性文件按下列顺序处理:

- p propfile
jmeter.properties(或- p选项的文件),然后装入
- j日志文件
记录初始化
装入了user.properties是
装入了system.properties是
所有其他命令行选项的处理

在jmeter.properties,user.properties system.properties你可以改变其他设置的进一步信息的文件的意见。