Jmeter分布式性能测试详解(2)jmeter配置和命令行模式

Jmeter目录结构如下

apache-jmeter-X.Y
apache-jmeter-X.Y/bin
apache-jmeter-X.Y/docs
apache-jmeter-X.Y/extras
apache-jmeter-X.Y/lib/
apache-jmeter-X.Y/lib/ext
apache-jmeter-X.Y/lib/junit
apache-jmeter-X.Y/licenses
apache-jmeter-X.Y/printable_docs

目录bin文件介绍

window下.bat后缀

jmeter.bat
运行JMeter(默认情况下为GUI模式)
jmeterw.cmd
在没有Windows Shell控制台的情况下运行JMeter(默认为GUI模式)
JMeter-n.cmd
在此上放一个JMX文件来运行非GUI测试
JMeter-n-r.cmd
在此上放置JMX文件以远程运行非GUI测试
JMeter-t.cmd
在此上放置一个JMX文件以在GUI模式下加载
JMeter-server.bat
以服务器模式启动JMeter
mirro-server.cmd
以非GUI模式运行JMeter Mirror Server
shutdown.cmd
运行Shutdown客户端以优雅地停止非GUI实例
stoptest.cmd
运行Shutdown客户端以突然停止非GUI实例

linux系统下不带后缀文件

JMeter
运行JMeter(默认情况下为GUI模式)。
JMetee-server
以服务器模式启动JMeter(使用适当的参数调用jmeter脚本)
jmeter.sh
非常基本的JMeter脚本(您可能需要修改JVM选项,如内存设置)。
mirror-server.sh
以非GUI模式运行JMeter Mirror Server
shutdown.sh
运行Shutdown客户端以优雅地停止非GUI实例
stoptest.sh
运行Shutdown客户端以突然停止非GUI实例

命令行选项的完整列表

-?
打印命令行选项并退出
-h, - 帮助
打印使用情况信息并退出
-v,–version
打印版本信息并退出
-p,–propfile <参数>
要使用的jmeter属性文件
-q,–addprop <参数>
额外的JMeter属性文件(s)
-t,–testfile
运行jmeter测试(.jmx)文件
-l,–logfile <参数>
要将样本记录到的文件
-i, - jmeterlogconf
jmeter日志记录配置文件(log4j2.xml)
-j, - jmeterlogfile
jmeter运行日志文件(jmeter.log)
-n,–nongui
以nongui模式运行JMeter
-s,–server
运行JMeter服务器
-H,–proxyHost <参数>
设置一个供JMeter使用的代理服务器
-P,–proxyPort
设置代理服务器端口供JMeter使用
-N,–nonProxyHosts <参数>
设置非代理主机列表(例如* .apache.org | localhost)
-u,–username <参数>
为JMeter要使用的代理服务器设置用户名
-a,–password <参数>
为JMeter要使用的代理服务器设置密码
-J, - jmeterproperty =
定义其他JMeter属性
-G,–globalproperty =
定义全局属性(发送到服务器)
例如-Gport = 123
或-Global.properties
-D,–systemproperty =
定义其他系统属性
-S,–systemPropertyFile <参数>
额外的系统属性文件
-f,–forceDeleteResultFile
在开始测试之前强制删除现有的结果文件
-L,–loglevel =
[category =] level例如jorphan = INFO,jmeter.util = DEBUG或com.example.foo = WARN
-r,–runremote
启动远程服务器(按remote_hosts中的定义)
-R,–remotestart <参数>
启动这些远程服务器(重写remote_hosts)
-d,–homedir <参数>
jmeter主目录下使用
-X,–remoteexit
测试结束时退出远程服务器(非GUI)
-g,–reportonly
仅从测试结果文件生成报告仪表板
-e,–reportatendofloadtests
负载测试后生成报告仪表板
-o,–reportoutputfolder <参数>
输出文件夹的报告仪表板

  • 注意:如果JMeter日志文件名包含成对单引号,则格式化为SimpleDateFormat(应用于当前日期),例如jmeter_’yyyyMMddHHmmss’.log

JMeter自定义JVM设置

目的根据服务器配置,制定jvm参数运行jmeter服务,达到更好性能。

修改方式几种:

bin下setenv文件设置

JVM_ARGS =“ - Xms1024m -Xmx1024m -Dpropname = value”

bin下jmeter文件设置

HEAP:=”-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

执行jmeter脚本启动时,通过属性设置—-推荐

JVM_ARGS =“ - Xms1024m -Xmx1024m”jmeter -t test.jmx [etc.]

setenv环境变量设置

重点关注JM_LAUNCH、JVM_ARGS参数

DDRAW
影响直接绘制使用的JVM选项,例如-Dsun.java2d.ddscale = true。默认为空。
GC_ALGO
JVM垃圾收集器选项。默认为-XX:+ UseG1GC -XX:MaxGCPauseMillis = 250 -XX:G1ReservePercent = 20

启动JMeter时使用的JVM内存设置。默认为-Xms1g -Xmx1g -XX:MaxMetaspaceSize = 256m
JMETER_BIN
JMeter bin目录(必须以\结尾)。当setenv.bat被调用时,值会被猜到。
JMETER_COMPLETE_ARGS
如果指定,则仅使用JVM_ARGS和JMETER_OPTS。所有其他选项,如HEAP和GC_ALGO将被忽略。默认为空。
JMETER_HOME
安装目录。将从jmeter.bat的位置猜测
JMETER_LANGUAGE
Java运行时选项指定使用的语言。默认为:-Duser.language =“en”-Duser.region =“EN”
JM_LAUNCH
java可执行文件的名称,如java.exe(默认)或javaw.exe
JVM_ARGS
启动JMeter时使用的Java选项。这些将被最后添加到java命令中。默认为空

JMeter类路径

JMETER_HOME / lib目录
JMETER_HOME / lib / ext目录
如果您开发了新的JMeter组件,那么您应该将它们打包并将jar复制到JMeter的lib / ext目录中。
JMeter会自动在这里找到的任何jar中找到JMeter组件。
不要将lib / ext用于插件使用的实用程序jar或依赖关系jar; 它仅用于JMeter组件和插件。
如果您不想将JMeter插件jar放入lib / ext目录中,请在jmeter.properties中定义属性search_paths。

代理使用JMeter

请使用以下参数从命令行运行jmeter [.bat]文件:
-H
[代理服务器主机名或IP地址]
-P
[代理服务器端口]
-N
[非代理主机](例如* .apache.org | localhost)
-u
[代理身份验证的用户名 - 如果需要]
-一个
[代理验证密码 - 如果需要]

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

还可以使用–proxyHost,–proxyPort,–username和–password作为参数名称

非GUI模式(命令行模式)

对于负载测试,您必须在此模式下运行JMeter(无GUI)以从中获得最佳结果。为此,请使用以下命令选项:

-n
这指定JMeter将以非gui模式运行
-t
[包含测试计划的JMX文件的名称]。
-l
[记录样本结果的JTL文件的名称]。
-j
[JMeter运行日志文件的名称]。
-r
在由JMeter属性“ remote_hosts ” 指定的服务器中运行测试
-R
[远程服务器列表]在指定的远程服务器上运行测试
-G
[到CSV文件的路径]仅生成报告仪表板
-e
负载测试后生成报告仪表板
-o
输出文件夹负载测试后生成报告仪表板的位置。文件夹不能存在或为空
该脚本还允许您指定可选的防火墙/代理服务器信息:

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

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

服务器模式

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

该脚本还允许您指定可选的防火墙/代理服务器信息:

-H
[代理服务器主机名或IP地址]
-P
[代理服务器端口]
示例:
jmeter-server -H my.proxy.server -P 8000
如果您希望服务器在单个测试运行后退出,请定义JMeter属性server.exitaftertest = true。

要以非GUI模式从客户端运行测试,请使用以下命令:

jmeter -n -t testplan.jmx -r [-Gprop = val] [-Global.properties] [-X]
哪里:
-G
用于定义要在服务器中设置的JMeter属性
-X
意味着在测试结束时退出服务器
-Rserver1,Rserver2
可以用来代替-r来提供要启动的服务器列表。覆盖remote_hosts,但不定义该属性。

命令行覆盖属性

Java系统属性和JMeter属性可以直接在命令lin上覆盖(而不是修改jmeter.properties)。为此,请使用以下选项:

-D [prop_name] = [值]
定义一个java系统属性值。
-J [prop_name] = [值]
定义一个本地JMeter属性。
-G [prop_name] = [值]
定义要发送到所有远程服务器的JMeter属性。
-G [propertyfile]
定义一个包含要发送到所有远程服务器的JMeter属性的文件。
-L [类别] = [优先]
覆盖日志记录设置,将特定类别设置为给定优先级。
的-L标志也可以在没有类别名称用于设置根记录级别。

例子:

jmeter -Duser.dir = / home / mstover / jmeter_stuff -Jremote_hosts = 127.0.0.1 -Ljmeter.engine = DEBUG
jmeter -LDEBUG

记录和错误消息

从3.2版开始,JMeter日志记录不再通过诸如jmeter.properties之类的属性文件进行配置,而是通过Apache Log4j 2配置文件(默认情况下启动JMeter的目录中的log4j2.xml)进行配置,而不是。此外,包括JMeter和插件的每个代码必须使用SLF4J库从3.2开始保留日志。

如果您想将org.apache.http类别的日志级别更改为调试级别,则可以在启动JMeter之前在log4j2.xml文件中简单地添加(或取消注释)以下记录器元素。

<Loggers>
    <!-- SNIP -->
    <Logger name="org.apache.http" level="debug" />
    <!-- SNIP -->
  </Loggers>

特定类别或根记录器的日志级别可以直接在命令行上覆盖(而不是修改log4j2.xml)。为此,请使用以下选项:

-L [类别] = [优先]

jmeter -Ljmeter.engine=DEBUG
jmeter -Lorg.apache.jmeter.engine=DEBUG
jmeter -Lcom.example.foo=DEBUG
jmeter -LDEBUG

命令行选项和属性文件顺序处理

  1. -p propfile
  2. 加载jmeter.properties(或-p选项中的文件)
  3. -j日志文件
  4. 记录被初始化
  5. 加载user.properties
  6. 加载system.properties
  7. 处理所有其他命令行选项
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值