zhang-jun-jie

 

 

 

 

 

入门

  • 开始使用 JMeter 最容易的方法是首先下载最新版 并且安装它。这个版本包含所 有你在构建和运行 Web,FTP,JDBC,和 JNDI 等测试时使用需要的所有文件。
  • 如果你想执行 JDBC 测试,你当然需要从供应商得到适当的 JDBC 驱动。JMeter 没有提供任何 JDBC 驱动。

你可能需要下载的其它软件:

  • BeanShell - BeanShell 函数和测试元件需要
  • Java Activation Framework - JavaMail 需要
  • Java Mail - Mail 可视化,Mail Reader 和 WebService(SOAP)取样器需要
  • JMS - JMS 取样器需要
  • General Java download page

需求

JMeter 需要最小需求的运行环境。

Java 版本

JMeter 需要一个完全适当的 JVM1.4 或者更高因为 JMeter 仅使用 Java 标准 API,

操作系统

JMeter 是 100%纯 Java 应用程序并且能够正确的在任何有适当的 Java 实现的操 作系统上运行。

JMeter 在下列环境已经被测试:

  • Unix (Solaris, Linux, 等)
  • Windows (98, NT, 2000, xp) 
  • OpenVMS Alpha 7.3+

可选

如果你计划做 JMeter 开发或者想使用 SUN 的 java 标准扩展包,你将需要下列更 多的可选包。

Java 编译器

如果你想编译 JMeter 源代码或者开发 JMeter 插件,你将需要一个完整的适当的 JDK1.4 或者更高。

SAX XML 解析器

JMeter 使用 Apache 的 Xerces XML 解析器,你可以选择告诉 JMeter 使用一 个不同的 XML 解析器。 这样做,把第三方的解析器的类包包含在 JMeter 的 classpath 中, 并更新 jmeter.properties 文件里的解析器实现的全类名。

Email 支持

JMeter 有有限的 Email 能力。 它能够发送基于测试结果的 Email,并且支持 POP/IMAP 取样器。它现在不支持 SMTP 取样。 为了能够支持 Email, 需要添加 Sun 的 JavaMail 包和 activation 包到 JMeter classpath 。

SSL 加密

  • 为了测试一个使用 SSL 加密(HPPS)的 web 服务器, JMeter 需要一个提供 SSL 实现 (例如 Sun 的 Java Secure Sockets Extension - JSSE)。包含需要的加 密包到 JMeter 的 classpath。 同样,通过注册 SSL 提供者更新 system.properties 文件。
  • JMeter 默认协议等级 TLS(传输层安全性)。这可以通过修改在 jmeter.proerties 或者 user.properties 文件中的"https.default.protocol"来改变。
  • JMeter 被配置接受所有的证书,不管是否信赖和合法时间等。这允许在测试服 务器最大灵活性。
  • 如果服务器需要一个客户端证书,这是可以提供的。
  • 为了更好的管理证书,也要有一个 SSL 管理器 。

JMeter 代理服务器(见下)不支持记录 SSL(https)。

JDBC 驱动

如果你需要 JDBC 测试,需要添加厂商的 JDBC 驱动到 classpath。确认文件是一 个 jar 文件,而不是 zip。

Apache SOAP

Apache SOAP 需要 mail.jar 和 activation.jar. 你需要下载并拷贝这两个 jar 文件到你 jmeter/lib 目录.一旦文件放到那里,JMeter 会自动找到它们。

BeanShell

为了运行 BeanShell 函数或者任何 BeanShell 测试元件(取样器,定时器等), 你需要从 http://www.beanshell.org/ 下载 beanshell 的 jar 文件并拷贝 jar 文件到 jmeter/lib 目录,JMeter 会自动找到它。

ActiveMQ 3.0 类库

详细参见 http://activemq.apache.org/initial-configuration.html

详细参见 JMeter Classpath 一章安装附加的 jar 包

安装

避免在一个有空格的路径安装 JMeter。这将导致远程测试出现问题。

我们推荐大多数用户运行最新版本 。

要安装一个构建版本,简单解压 zip/tar 文件到你想安装 JMeter 的目录。保证 一个 JRE/JDK 正确的安装并且设置环境变量 JAVA_HOME,其它不需要做什么了。

安装目录接口应该看到的像这样一些东西(2.3.1 版本):

jakarta-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

 

如果你想的话你可以重命名父目录(例如 jakarta-jmeter-2.3.1) ,但是不要 改变任何子目录命。父目录路径中不能包含任何空格;如果包含,你运行客户端 -服务器模式会有问题。

运行 JMeter

  • 要运行 JMeter, 运行 jmeter.bat (for Windows) 或者 jmeter (for Unix) 文 件。那些文件在 bin 目录下。稍微暂停后,JMeter GUI 会显示出来。
  • 在 bin 目录你会发现有些附加脚本很有用。Windows 脚本文件(CMD 文件需要 Win2K 或者更新):
  1. jmeter.bat - 运行 JMeter(默认在 GUI 模式)
  2. jmeter-n.cmd - 使用一个 JMX 文件运行非 GUI 测试
  3. jmeter-n-r.cmd - 使用一个 JMX 文件远程运行一个非 GUI 测试
  4. jmeter-t.cmd - 在 GUI 模式使用一个 JMX 文件
  5. jmeter-server.bat - 以服务器模式启动 JMeter

注意: LAST 可以在 jmeter-n.cmd, jmeter-t.cmd 和 jmeter-n-r.cmd 中使用, 意味着最后一次测试会运行.

Unix 脚本文件; 可以运行在大多 Linux/Unix 系统.

  • jmeter - 运行 JMeter(默认在 GUI 模式)
  • jmeter-server - 以服务器模式启动 JMeter

JMeter Classpath

JMeter 自动从下列目录中的 jar 文件发现类。

  • JMETER_HOME/lib - 用来放使用的 jar 文件
  • JMETER_HOME/lib/ext - 用来放 JMeter 组件和扩展

如果你开发新的 JMeter 组件,你可以压缩它们成 jar 包并拷贝到 JMeter 的 /lib/ext 目录。JMeter 将会自动发现在这里的任何 jar 文件中的 JMeter 组件。

支持的 jar 文件(类库)应该放在 lib 目录.

如果你不想把扩展 jar 包放到 lib/ext 目录,可以在 jmeter.properties 中定义 search_paths 属性。不要使用 lib/ext 给那些公用的 jar 包;它仅仅是存放 JMeter 组件。

其他 jar 包 (例如 JDBC, 和任何 JMeter 代码需要支持的类库)应该被代替放在 lib 目录 - 而不是 lib/ext 目录。

注意 JMeter 会发现.jar 文件,而不是.zip 文件。

  • 你可以在$JAVA_HOME/jre/lib/ext安装有用的jar文件,或者(自从 2.1.1版本) 你可以在 jmeter.properties 中设置 user.classpath 属性。
  • 注意设置 CLASSPATH 环境变量将不起作用。这是因为 JMeter 使用"java --jar" 启动,并且 java 命令无记录忽略 CLASSPATH 变量,并且当使用-jar 选项时 -classpath/-cp 选项也被使用。[所有的 java 程序都是这样,不仅仅是 JMeter。]

使用代理服务器

如果你从防火墙/代理服务器后测试,你需要提供给 JMeter 防火墙/代理服务器 的主机名和端口号。这样做,从命令行使用以下参数运行 jmeter.bat/jmeter 文件:

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

-P [代理服务器端口]

-N [非代理主机] (例如: *.apache.org|localhost)

-u [代理证书用户名- 如果需要]

-a [代理证书密码 - 如果需要]

例如 : jmeter -H my.proxy.server -P 8000 -u username -a password -N localhost

或者, 你使用 --proxyHost, --proxyPort, --username, and --password

 

JMeter 也有自己的内建 HTTP 代理服务器,来记录 HTTP(不是 HTTPS) 浏览器会话。这是和上面的代理设置描述不混淆的,它是在 JMeter 发出 HTTP 或者 HTTPS 请求时使用的

非用户界面模式 (命令行模式)

为了不相互影响测试, 你可以选择运行没有用户界面的 JMeter。这样做,使用 下列命令选项:

-n 这是指定 JMeter 在非用户界面模式运行

-t [包含测试计划的 JMX 文件的名字]

-l [记录取样结果的 JTL 文件的名字]

-r 运行在 jmeter.properties 文件里所有的远程服务器 (或者通过在命令行覆 盖属性指定远程服务器)

这个脚本也允许我们指定可选的防火墙/代理服务器信息:

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

-P [代理服务器端口]

例如 : jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

服务器模式

为了分布测试 ,在服务器模式运行 JMeter,并且通过用户界面控制每一台服务 器。

运行 jmeter-server/jmeter-server.bat,加上下列选项命令:

这个脚本也允许我们指定可选的防火墙/代理服务器信息:

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

-P [代理服务器端口]

例如 : jmeter-server -H my.proxy.server -P 8000

通过命令行覆盖属性

Java 系统属性,JMeter 属性,和日志属性可以通过命令行直接覆盖(代替更改 jmeter.properties 文件)。这样做,使用下列选项:

-D[prop_name]=[value] - 定义一个 java 系统属性值。

-J[prop name]=[value] - 覆盖一个 JMeter 属性。

-L[category]=[priority] - 覆盖一个日志设置,设置一个特殊目录为给定的优 先级。

-L 标志也可以使用没有目录名来设置根目录日志等级。

例如 :

jmeter -Duser.dir=/home/mstover/jmeter_stuff \

-Jremote_hosts=127.0.0.1

-Ljmeter.engine=DEBUG jmeter -LDEBUG

日志和错误信息

如果 JMeter 发现一个错误, 一个消息将被写入日志文件。日志文件名在 jmeter.properties 文件中定义。一般定义为 jmeter.log 。并且在 JMeter 启 动目录,例如 bin。

当在 Windows 下运行时,如果你不设置 Windows 显示文件扩展名,文件名会仅显 示为 JMeter。[你可以做一些事都很容易地发现伪装成文本文件的病毒和垃圾文 件...]

还有记录错误,jmeter.log 文件记录一些测试运行信息。例如:

10/17/2003 12:19:20 PM INFO - jmeter.JMeter: Version 1.9.20031002

10/17/2003 12:19:45 PM INFO - jmeter.gui.action.Load: Loading file: c:\mytestfiles\BSH.jmx

10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Running the test!

10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group BSH. Ramp up = 1.

10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Continue on error 10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 started 10/17/2003 12:19:52 PM INFO - jmeter.threads.JMeterThread: Thread BSH1-1 is done 10/17/2003 12:19:52 PM INFO - jmeter.engine.StandardJMeterEngine: Test has ended

日志文件对发现错误原因很有帮助,作为 JMeter 不会打断一个测试来显示一个 错误对话框。

命令行选项目录

调用 JMeter 的 "jmeter -?"命令将打印所有命令选项的一个列表。列表如下:

-h, --help 打印使用信息并退出

-v, --version 打印版本信息并推出

-p, --propfile {argument} 使用的 JMeter 属性文件

-q, --addprop {argument} 附加的属性文件

-t, --testfile {argument} 运行的 JMeter 测试文件(.jmx)

-l, --logfile {argument} 日志取样文件

-n, --nongui 非用户界面运行 JMeter

-s, --server 运行 JMeter 服务器

-H, --proxyHost {argument} 设置 JMeter 使用的代理服务器

-P, --proxyPort {argument} 设置 JMeter 使用的代理服务器端口

-u, --username {argument} 设置 JMeter 使用的代理服务器用户名 -

a, --password {argument} 设置 JMeter 使用的代理服务器密码

-J, --jmeterproperty {argument}={value} 定义附加的 JMeter 属性

-D, --systemproperty {argument}={value} 定义附加的 System 属性

-S, --systemPropertyFile {filename} 一个属性文件被做为系统属性添加

-L, --loglevel {argument}={value} 定义日志等级: [category=]level 例如 jorphan=INFO or jmeter.util=DEBUG

-r, --runremote 从非用户界面模式启动远程服务器

-d, --homedir {argument} 使用的 JMeter 目录

 配置 JMeter

如果你希望改变 JMeter 运行时的属性你需要改变在/bin 目录的 jmeter.properties 文件,或者创建你自己的 jmeter.properties 文件并且在命 令行指定它。

 

分类:

技术点:

相关文章: