jmeter运行
来源:互联网 发布:java 最大公约数 编辑:程序博客网 时间:2024/05/18 02:15
要运行JMeter, 只需要运行 jmeter.bat (for Windows) 或jmeter (for Unix) 文件。jmeter.bat和jmeter在 JMeter的bin 目录中。经过短暂的初始化,jmeter UI界面将会启动。
Jmeter有两种模式
- GUI:通常用来制作编辑测试脚本
- NON GUI:通常用来进行压力测试
Jmeter的bin目录
jmeter的bin目录还存在一些非常有用的脚本,在不同的操作系统中有不同的命令。
windows系统下bin目录中的文件
*.cmd文件运行需要系统在win2000以上的版本
“LAST”可以作为一个特殊的名字在jmeter-n.cmd,jmeter-t.cmd和jmeter-n-r.cmd中使用,意味着与最后一个测试计划交互运行。
环境变量JVM_ARGS用来覆盖jmeter.bat中的JVM设置
set JVM_ARGS=”-Xms1024m -Xmx1024m -Dpropname=propvalue”
jmeter -t test.jmx …
Unix/Lnix脚本文件
可以在大部分Linux/Unix系统上运行
若某些JVM选项不支持,可以编辑jmeter shell脚本进行修改。环境变量JVM_ARGS用来覆盖JVM设置
JVM_ARGS=”-Xms1024m -Xmx1024m” jmeter -t test.jmx [etc.]
JMeter Classpath
JMeter 自动从安装目录下的/lib 和 /lib/ext目录下的jar包中扫描类。
自定义开发的 JMeter 组件,可以压缩成jar包并拷贝到 JMeter 的 /lib/ext 目录。JMeter 将会自动发现jar包中的JMeter 组件。若不想把扩展jar包放到lib/ext 目录,可以在jmeter.properties中定义search_paths属性。
帮助类和依赖jars放在lib目录下,若不想放在lib目录,则可以在jmeter.properties中使用user.classpath和plugin_dependency_paths
其他jar包 (例如 JDBC, 和任何JMeter代码需要支持的类库)应该放在lib目录或者是user.classpath,而不是lib/ext目录中。
JMeter 会发现.jar文件,而不是.zip文件。
你可以在$JAVA_HOME/jre/lib/ext安装jar文件,或者在jmeter.properties中设置user.classpath属性。
注意设置CLASSPATH 环境变量将不起作用。这是因为JMeter使用”java -jar”启动,并且java命令无记录忽略CLASSPATH 变量,并且当使用-jar选项时-classpath/-cp 选项也被使用。
所有的java程序都是这样,不仅仅是JMeter。
使用模版创建测试计划
通过菜单 “文件->templates”或者工具栏上的按钮调出模版对话框。
选择对应的模版,点击create~,以FTP模版为例
使用代理服务器
如果你在防火墙/代理服务器后测试,你需要提供给JMeter防火墙/代理服务器的主机名和端口号。这样做,从命令行使用以下参数运行jmeter.bat/jmeter文件:
例如 :
jmeter -H my.proxy.server -P 8000 -u username -a password -Nlocalhost
同样也可以使用 –proxyHost, –proxyPort, –username, –password作为参数名,他们分别对应-H、-P、-u、-a的长选项格式。
命令行上提供的参数对系统上的其他用户可见
如果提供了代理主机和端口参数,Jmeter设置以下系统属性
- http.proxyHost
- http.proxyPort
- https.proxyHost
- https.proxyPort
如果提供了不使用代理的主机列表,Jmeter设置以下系统属性
- http.nonProxyHosts
- https.nonProxyHosts
因此,如果您不希望同时设置http和https代理,那么您可以在system.properties中定义相关的属性使之代替命令行参数。
代理设置也可在测试计划中定义,使用HTTP(S) Request Defaults配置或者HTTP Request取样器元素。
JMeter也有自己的内建 HTTP代理服务器,来记录HTTP (不是 HTTPS)浏览器会话。这是和上面的代理设置描述不混淆的,它是在JMeter发出HTTP或者HTTPS请求时使用的。
非用户界面模式 (命令行模式)
为了不相互影响测试, 你可以选择运行没有用户界面的JMeter。这样做,使用下列命令选项:
这个脚本也允许我们指定可选的防火墙/代理服务器信息:
例如 :
jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000
如果jmeterengine.stopfail.system.exit设置成true(默认是false),如果不能停止所有线程则调用system.exit(1).通常情况下这个设置是非必要的。
服务器模式
支持分布测试,在远程服务器节点使用服务模式运行JMeter,并且通过主控机的用户界面控制每一台服务器。也可使用non-GUI模式运行远程测试,在每台远程主机上运行jmeter-server/jmeter-server.bat启动服务。
jmeter-server/jmeter-server.bat 脚本使用适当的classpath为你开始远程注册。如果失败,参见关于JMeter服务器启动细节。
运行jmeter-server/jmeter-server.bat,加上下列选项命令:
这个脚本也允许我们指定可选的防火墙/代理服务器信息:
例如 :
jmeter-server -H my.proxy.server -P 8000
若想运行完测试直接退出,可以设置Jmeter属性
server.exitaftertest=true.
使用non-GUI模式运行测试,使用命令行
jmeter -n -t testplan.jmx -r [-Gprop=val] [-Gglobal.properties] [-X]
如果 jmeterengine.remote.system.exit属性设置为true(默认是false),在测试结束时RMI停止后调用system.exit(0).通常情况下是非必要的。
通过命令行覆盖属性
Java系统属性,JMeter属性可以通过命令行直接覆盖(代替更改jmeter.properties文件)。这样做,使用下列选项:
例如 :
jmeter-Duser.dir=/home/mstover/jmeter_stuff \
-Jremote_hosts=127.0.0.1-Ljmeter.engine=DEBUG
jmeter-LDEBUG
注意
命令行参数在启动时较早被处理,但是在日志系统被设置以后。尝试使用-J标志更新log_level或者log_file属性无效。
日志和错误信息
从Jmeter3.2,jmeter的log配置不再通过配置文件配置如jmeter.properties,而是通过apache log4j2配置文件(log4j2.xml,默认这个文件凡在jmeter的启动目录),另外从3.2以后扩展插件写日志必须有SLF4J类库支持。
log4j2.xml示例
<Configuration status="WARN" packages="org.apache.jmeter.gui.logging"> <Appenders> <!-- The main log file appender to jmeter.log in the directory from which JMeter was launched, by default. --> <File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false"> <PatternLayout> <pattern>%d %p %c{1.}: %m%n</pattern> </PatternLayout> </File> <!-- Log appender for GUI Log Viewer. See below. --> <GuiLogEvent name="gui-log-event"> <PatternLayout> <pattern>%d %p %c{1.}: %m%n</pattern> </PatternLayout> </GuiLogEvent> </Appenders> <Loggers> <!-- Root logger --> <Root level="info"> <AppenderRef ref="jmeter-log" /> <AppenderRef ref="gui-log-event" /> </Root> <!-- SNIP --> <!-- # Apache HttpClient logging examples --> <!-- # Enable header wire + context logging - Best for Debugging --> <!-- <Logger name="org.apache.http" level="debug" /> <Logger name="org.apache.http.wire" level="error" /> --> <!-- SNIP --> </Loggers></Configuration>
更详细的log4j2的配置
jmeter.log 文件记录一些测试运行信息。例如:
2017/08/01 14:55:49 INFO - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 2017/08/01 14:55:49 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Cannot find .className property for htmlParser, using default 2017/08/01 14:55:49 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is 2017/08/01 14:55:49 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is 2017/08/01 14:55:49 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is 2017/08/01 14:55:49 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is 2017/08/01 14:55:49 INFO - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser 2017/08/01 14:55:49 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui 2017/08/01 14:55:49 INFO - jmeter.gui.util.MenuFactory: Skipping org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui 2017/08/01 14:55:49 INFO - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file D:\Program Files\jmeter2.10\bin\proxyserver.jks 2017/08/01 14:55:50 INFO - jmeter.samplers.SampleResult: Note: Sample TimeStamps are START times 2017/08/01 14:55:50 INFO - jmeter.samplers.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 2017/08/01 14:55:50 INFO - jmeter.samplers.SampleResult: sampleresult.useNanoTime=true 2017/08/01 14:55:50 INFO - jmeter.samplers.SampleResult: sampleresult.nanoThreadSleep=5000 2017/08/01 14:55:53 INFO - jmeter.gui.action.template.TemplateManager: Reading templates from:D:\Program Files\jmeter2.10\bin\templates\templates.xml 2017/08/01 15:02:55 INFO - jmeter.gui.action.Load: Loading file: D:\Program Files\jmeter2.10\bin\templates\build-ftp-test-plan.jmx 2017/08/01 15:02:55 INFO - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 2017/08/01 15:02:55 INFO - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 2017/08/01 15:02:55 INFO - jmeter.save.SaveService: Using SaveService properties version 2.5 2017/08/01 15:02:55 INFO - jmeter.save.SaveService: Using SaveService properties file version 1519088 2017/08/01 15:02:55 INFO - jmeter.save.SaveService: All converter versions present and correct
日志文件对发现错误原因很有帮助,作为JMeter不会打断一个测试来显示一个错误对话框。
命令行选项目录
命令行中输入错误的参数即可打印所有命令选项的一个列表:
参考
http://jmeter.apache.org/usermanual/get-started.html
原文连接:http://blog.csdn.net/yue530tomtom/article/details/76529619
- jmeter运行
- 关于Jmeter的运行
- 命令行运行jmeter脚本
- 命令行方式运行JMeter
- jmeter在命令行运行
- Jmeter运行结果分析
- Linux下运行jmeter
- Jmeter源码编译运行
- Jmeter分布式运行
- Jmeter运行原理
- mac运行jmeter
- JMeter:Linux上安装&运行JMeter
- JMeter:Linux上安装&运行JMeter
- jmeter使用--6、命令行运行jmeter脚本
- 命令行模式运行jmeter,主从方式运行jmeter
- Jmeter 非GUI模式运行
- Jmeter命令行运行实例讲解
- linux上安装运行Jmeter
- css3实现扇形列表
- type="file"上传文档格式限制
- VB快速查找大型文件中包含的字符串
- Android ActivityOptions动画
- 关于java传统线程的两种创建方式讲解
- jmeter运行
- Android源码编译及修改总结
- WCF系列之环境的配置
- 用DefaultDimension获得某成本中心的值
- RecyclerView简单使用
- 【Python】range和xrange
- scala断言专栏--入门
- 数据结构笔试题的笔记
- 编译gRPC(windows)和测试demo