Jmeter - 命令行参数

同步更新至个人博客:https://njlife.top/2019/07/12/Jmeter-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0/

Jmeter可以通过GUI模式非GUI模式执行。GUI模式用来进行配置和调试,也可以执行脚本得到一些执行结果。非GUI模式即命令模式,提供了更加灵活强大的呢功能。Jmeter官方文档也明确说明不要使用GUI模式执行负载测试。

20190712213517.png

下面是Jmeter Non-GUI模式下的命令行参数。

参数列表
参数说明
-nThis specifies JMeter is to run in cli mode 表明使用NON-GUI模式
-t[name of JMX file that contains the Test Plan] 指定.jmx文件路径
-l[name of JTL file to log sample results to] 指定结果文件.jtl路径
-j[name of JMeter run log file] 指定执行日志路径
-rRun the test in the servers specified by the JMeter property "remote_hosts" 设置分布式远程执行(在JMETER_HOME\bin\jmeter.properties中的remote_hosts配置)
-R[list of remote servers] Run the test in the specified remote servers 指定远程服务器列表
-g[path to CSV file] generate report dashboard only 指定结果文件路径,仅用于生成测试报告
-egenerate report dashboard after load test 测试完成后生成测试报表
-ooutput folder where to generate the report dashboard after load test. Folder must not exist or be empty 指定测试报表生成文件夹。文件夹必须为空或者不存在
-H[proxy server hostname or ip address] 指定代理服务器地址(域名或者IP)
-P[proxy server port] 指定代理服务器端口
例子
jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

如果配置jmeterengine.stopfail.system.exit设置成了true,在线程无法停止的情况下,Jmeter会调用System.exit(1)进行停止。默认情况下改配置是false,一般情况下用不到,在有需求的时候可以进行设置。

转载于:https://www.cnblogs.com/nickhan/p/11179035.html

<think>好的,我现在要解决用户关于JMeter-G和-J参数区别的问题。首先,我需要回忆自己之前对JMeter参数的理解,同时查看用户提供的引用内容,特别是引用[2]和可能相关的其他引用。 用户提供的引用[2]提到:“-G:作用和用法和-D类似,区别在于,如果使用分布式测试,则必须使用-G例子:jmeter -n -t php论坛.jmx -l result/t2.jtl -Dthread.num=6 -Dloop.num=6 -e -o result/h1 [^2]。”这里指出-G和-D类似,但用于分布式测试。而-D参数通常用于设置系统属性,比如在命令行中传递参数给JMeter实例。可能-G的作用是在分布式环境下传递属性到远程服务器? 另一方面,用户的问题还涉及到-J参数。虽然引用中没有直接提到-J,但根据JMeter的官方文档,-J用于设置JMeter属性,并且这些属性会被传递到远程服务器吗?或者是不是-J仅用于本地,而-G用于远程? 需要进一步确认两者的区别。根据JMeter的文档,-D是设置系统属性,而-J是设置JMeter属性。但-G参数可能是在分布式测试中,将属性传递给所有远程服务器,而-J可能只在本地生效? 例如,引用[2]中的例子使用了-G,并且在分布式测试中必须使用它。而-J可能在非分布式情况下设置本地属性。因此,两者的主要区别在于作用范围:-G用于分布式测试中的远程服务器,而-J用于本地JMeter实例。 另外,用户提供的引用[5]提到了JMeter的上下文变量,可能涉及到如何在测试计划中使用这些属性。例如,通过${__P(propertyName)}来访问系统属性,或者${__propertyName}来访问JMeter属性。 需要总结出-G和-J的具体用法场景,以及它们的区别。比如,-G在分布式测试中设置系统属性到所有远程服务器,而-J设置JMeter属性仅在本地生效。或者,可能-G是用于将属性发送给远程服务器,而-J是在本地覆盖JMeter属性。 另外,用户可能希望知道实际应用中的例子,比如在分布式测试中如何正确使用这两个参数,以及错误使用可能导致的问题。 可能需要进一步验证这些信息,确保回答的准确性。例如,查阅JMeter的官方文档或可靠来源,确认-G和-J的具体用途。根据记忆,JMeter-G参数用于在分布式测试中向所有远程服务器传递属性,而-J参数用于在本地设置JMeter属性,这些属性不会被发送到远程服务器。 总结:-G用于分布式测试中设置系统属性并传递给所有远程服务器,而-J用于本地设置JMeter属性。例如,使用-G来指定远程服务器需要的配置,而-J用于本地线程数或循环次数等设置。</think>### JMeter 中 `-G` 与 `-J` 参数的区别及用法 #### 1. **`-G` 参数** - **作用**:用于在分布式测试(远程执行)中向所有远程服务器传递**系统属性**(System Properties)。 - **场景**:必须与分布式测试(`-r` 参数)配合使用,确保所有远程服务器接收相同的配置。 - **语法示例**: ```bash jmeter -n -t test.jmx -r -Gthread.num=10 -Gloop.count=5 ``` 上述命令将 `thread.num=10` 和 `loop.count=5` 传递给所有远程服务器。 #### 2. **`-J` 参数** - **作用**:在本地 JMeter 实例中设置**JMeter 属性**(JMeter Properties),仅影响当前运行的测试计划。 - **场景**:用于覆盖 `jmeter.properties` 文件中的配置,如调整本地线程数或采样器配置[^5]。 - **语法示例**: ```bash jmeter -n -t test.jmx -Jthreads=50 -Jrampup=10 ``` 此命令在本地设置 `threads=50` 和 `rampup=10`,不影响远程服务器。 #### 3. **核心区别** | 参数 | 作用对象 | 作用范围 | 适用场景 | |------|----------------|----------------|--------------------| | `-G` | 系统属性 | 所有远程服务器 | 分布式测试 | | `-J` | JMeter 属性 | 本地实例 | 本地配置覆盖 | #### 4. **使用注意事项** - **`-G` 必须与分布式测试联用**:若未指定 `-r`,`-G` 参数无效。 - **属性访问方式不同**: - 通过 `-G` 传递的系统属性需用 `${__P(property_name)}` 引用。 - 通过 `-J` 设置的 JMeter 属性可用 `${property_name}` 直接引用。 #### 5. **典型错误示例** ```bash # 错误:未启用分布式测试时使用 -G,属性无法生效 jmeter -n -t test.jmx -Gtimeout=30 # 正确:分布式测试中传递属性 jmeter -n -t test.jmx -r -Gtimeout=30 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值