jmeter命令行常用参数和使用示例

本文详细介绍JMeter命令行参数,包括非GUI模式启动、测试计划加载、日志记录、远程服务器配置等,以及如何进行分布式测试,适用于性能测试工程师和技术人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用参数

-n, --nongui
命令行界面启动jmeter

-t, --testfile {filename}
jmx结尾的测试计划,支持相对路径

-l, --logfile {filename}
日志结果文件

-r, --runremote (non-GUI only)
#non-gui模式下启动remote_hosts配置的所有远程server
-R, --remotestart server1,… (non-GUI only)
#non-gui模式下启动指定的server,此时remote_hosts和-r都无效

-p, --propfile {argument}
属性文件

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

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

-J, --jmeterproperty {argument}={value}
JMeter 本地属性
-p, --propfile {argument}
Jmeter本地属性文件,默认-p jmeter.properties

-D, --systemproperty {argument}={value}
JAVA系统属性
-S, --systemPropertyFile {filename}
JAVA系统属性文件

-G, --globalproperty (argument)[=(value)]
发送给server的全局属性,可以把属性及值填入global.properties,之后使用-Gglobal.properties

示例

界面上填写KaTeX parse error: Expected group after '_' at position 2: {_̲_P(num_threads)…{__P(ip)},表示使用jmeter的num_threads属性和ip属性替换
然后执行命令,从命令行传入jmeter的属性值

export HEAP='-Xmx8192m' 
./jmeter -n -t test.jmx  -l test.jtl  -J ip=192.168.199.177 -J num_threads=3000  -J ramp_time=60 -J duration=1200  

分布式测试示例

jmeter配置测试计划并保存到桌面

线程组
HTTP请求

产生的C:/Users/Administrator/Desktop/baidu.jmx内容

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <intProp name="LoopController.loops">-1</intProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">${__P(num_threads)}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">${__P(ramp_time)}</stringProp>
        <boolProp name="ThreadGroup.scheduler">true</boolProp>
        <stringProp name="ThreadGroup.duration">${__P(duration)}</stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain">www.baidu.com</stringProp>
          <stringProp name="HTTPSampler.port"></stringProp>
          <stringProp name="HTTPSampler.protocol"></stringProp>
          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
          <stringProp name="HTTPSampler.path">/</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
          <stringProp name="HTTPSampler.response_timeout"></stringProp>
        </HTTPSamplerProxy>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
</jmeterTestPlan>

切换到jmeter_home/bin目录执行如下命令

 
jmeter-server -D server.rmi.ssl.disable=true -LDEBUG -Djava.rmi.server.hostname=192.168.1.18 -Dserver.rmi.localport=1099 -Dserver_port=1099    
jmeter-server -D server.rmi.ssl.disable=true -LDEBUG -Djava.rmi.server.hostname=192.168.1.18 -Dserver.rmi.localport=1098 -Dserver_port=1098     
jmeter-server -D server.rmi.ssl.disable=true -LDEBUG -Djava.rmi.server.hostname=192.168.1.18 -Dserver.rmi.localport=1097 -Dserver_port=1097     
jmeter        -D server.rmi.ssl.disable=true -LDEBUG -n -t C:/Users/Administrator/Desktop/baidu.jmx  -l C:/Users/Administrator/Desktop/baidu.jtl      -R 192.168.1.18:1097,192.168.1.18:1098,192.168.1.18:1099     -G num_threads=30  -G ramp_time=2 -G duration=30
jmeter        -D server.rmi.ssl.disable=true -LDEBUG -n -t C:/Users/Administrator/Desktop/baidu.jmx  -l C:/Users/Administrator/Desktop/baidu.jtl     -J remote_hosts=192.168.1.18:1097,192.168.1.18:1098,192.168.1.18:1099 -r     -G num_threads=30  -G ramp_time=2 -G duration=30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值