【JMeter】命令参数说明

本文详细介绍了JMeter命令行参数的使用方法,包括非GUI模式运行、远程执行、结果文件处理、日志配置及各种命令行选项。适用于希望通过命令行高效使用JMeter进行性能测试的读者。

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

  • jmeter -n -t xxx.jmx -l result.jtl

    • 非GUI运行xxx.jml脚本写入xxx.jtl结果文件

  • jmeter -n -t xxx.jmx -l result.jtl -j run.log

    • 非GUI运行xxx.jmx脚本写入xxx.jtl结果文件,日志记录到run.log

  • jmeter -n -t xxx.jmx -R ip1:port1,ip2:port2 -l result.jtl

    • 使用远程负载机ip1和ip2,同时执行xxx.jmx脚本,生成结果保存在result.jtl

  • jmeter -g result.jtl -e -o html\test

    • 使用result.jtl现有结果文件在html\test目录下生成html测试报告

  • 自定义参数 外部通过-D属性来实现参数值的传递,一个-D一次只能传递一个参数

    • ${__P(thread.num)}

      • 变量名 thread.num

    • ${__P(thread.num,1)}

      • 变量名thread.num,默认值1

    • ${__P(thread.num,t_num,1)}

       

      • 变量名 thread.num,赋值给变量t_num,默认值

  • 命令参数

    • -?

      • 打印命令行选项并退出

    • -h --help 帮助

      • 打印使用信息和退出

    • -v --version 版本

      • 打印版本信息并退出

    • -p --propfile<argument>

      • 要使用的jmeter属性文件

    • -q --addprop<argument>

      • 其他JMeter属性文件

    • -t --testfile<argument> 测试文件

      • 要运行的jmeter测试(.jmx)文件

      • -t LAST 将最后加载用过的文件

      • 表示要运行的jmx

    • -l  --logfile<argument> 日志文件

      • 要讲样本纪录到的文件

    • -i  --jmeterlogconf<argument>

      • jmeter日志记录配置文件(log4j2.xml)

    • -j  --jmeterlogfile<argument>

      • jmeter运行日志文件(jmeter.log)

    • -n --nongui 非GUI

      • 在非gui模式下运行JMeter

    • -s --server 服务器

      • 运行JMeter服务器

    • -E --proxyScheme<argument>

      • 设置用于代理服务器的代理方案

    • -H --proxyHost<argument>

      • 设置JMeter使用的代理服务器

    • -P --proxyPort<argument>

      • 设置JMeter要使用的代理服务器端口

    • -N --nonProxyHosts<argument>非代理主机

      • 设置非代理主机列表(例如:*.apache.org|localhost)

    • -u --username<argument> 用户名

      • 设置JMeter要使用的代理服务器的用户名

    • -a --password<argument> 密码

      • 为JMeter要使用的代理服务器设置密码

    • -J --jmeterproperty<argument>=<value>

      • 定义其他JMeter属性

    • -G --globalproperty<argument>=<value> 全局属性

      • 定义全局属性(发送到服务器)

      • -Gport=123或Gglobal.properties

    • -D --systemproperty<argument>=<value> 系统属性

      • 定义其他系统属性

    • -S --systemPropertyFile<argument>

      • 其他系统属性文件

    • -f --forceDeleteResultFile 强制删除结果文件

      • 强制删除现有结果文件和web报表文件夹开始测试前

    • -L --loglevel<argument>=<value>

      • [category=]level

      • jorphan=INFO

      • jmeter.util=DEBUG

      • com.example.foo=WARN

    • -r --runremote 远程启动

      • 启动远程服务器(在远程主机中定义)

      • 指远程将所有agent启动

    • -R --remotestart<argument>

      • 启动这些远程服务器(覆盖远程主机)

    • -d --homedir<argument>

      • 要使用的jmeter主目录

    • -X --remoteexit 远程退出

      • 在测试结束时退出远程服务器(非GUI)

    • -g --reportonly<argument>

      • 仅从测试结果文件生成报表仪表板

      • specifies the existing result file 指定已存在的结果文件

    • -e --reportatendofloadtests 报告的

      • 负载测试后生成报表仪表板

    • -o --reportoutputfolder<argument>

      • 保存html报表的路径,此文件夹必须为空或者不存在

### JMeter 中实现随机参数化的原理与方法 在性能测试工具 JMeter 中,可以通过多种方式实现随机参数化。以下是具体的方法以及其实现过程: #### 方法一:使用 Random CSV 数据文件 可以创建一个包含大量不同数据的 CSV 文件,并通过 **CSV Data Set Config** 来加载这些数据。为了使每次请求都随机选取不同的值,可以在设置中调整 `Recycle on EOF` 和 `Stop thread on EOF` 的选项。 - 将 `Recycle on EOF` 设置为 `True` 表示当到达文件末尾时重新开始读取。 - 将 `Stop thread on EOF` 设置为 `False` 可以让线程继续运行而不中断[^1]。 如果希望进一步增强随机性,则可在脚本逻辑中引入函数助手 `${__Random(1,100)}` 或者其他内置函数来动态生成数值[^4]。 #### 方法二:利用 JMeter 函数助手 (Function Helper) JMeter 提供了一系列强大的内置函数用于生成各种类型的随机数或字符串。例如: - `${__RandomString(length,characters)}` 用来生成指定长度和字符集范围内的随机字符串; - `${__UUID()}` 自动生成全局唯一标识符作为随机输入源之一; - `${__Random(min,max)}` 返回介于 min 到 max 范围之间的整型随机数; 下面是一个简单的例子展示如何应用上述功能完成一次 GET 请求中的 URL 查询参数部分替换为随机产生的数字序列号: ```jmeter GET http://example.com/api/resource?id=${__Random(1000,9999)} ``` 此命令会向服务器发送带有 id 值变化莫测的不同版本资源定位地址链接请求[^2]。 #### 方法三:结合 JSON Extractor 实现复杂对象字段级别的随机赋值操作 对于某些 RESTful API 接口返回的是嵌套结构体形式的数据包而言,单纯依靠外部导入静态样本难以满足灵活多变的实际业务需求。此时我们可以先借助上一步骤提到过的技术手段捕获目标实体属性名及其对应初始默认值之后再运用正则表达式或者 XPath 抽取出特定子节点内容最后配合自定义算法计算得出最终结果并将其注入回原位置形成闭环控制流图如下所示[^3]: 假设我们的服务端响应样例如下: ```json { "userId": 78, "username":"testUser", ... } ``` 那么我们只需要简单配置一下JSON extractor即可轻松获取到任意一层内部成员变量的具体表现形态进而方便后续处理流程的设计开发工作得以顺利开展下去. --- ### 示例代码片段 这里给出一段完整的 JMX 配置实例说明整个过程是如何串联起来工作的: ```xml <TestPlan> <!-- 定义线程组 --> <ThreadGroup name="Example Thread Group"> <elementProp name="loopController" elementType="LoopController"/> <!-- 添加 HTTP Request 默认设置 --> <ConfigTestElement guiclass="HttpDefaultsGui" testclass="HTTPSamplerProxy"/> <!-- 引入 CSV 数据源 --> <CSVDataSet filename="data.csv" variableNames="paramName,paramValue" /> <!-- 构造 HTTP 请求 --> <HTTPSamplerProxy domain="www.example.com" port="" method="POST" path="/api/endpoint"> <argument name="dynamicParam">${__Random(1,10)}</argument> <!-- 动态插入随机数 --> <argument name="${paramName}">${paramValue}</argument> <!-- 插入来自 CSV 的参数 --> </HTTPSamplerProxy> <!-- 断言机制 --> <ResponseAssertion testField="ResponseMessage" containsPatterns="Success" /> </ThreadGroup> </TestPlan> ``` 以上 XML 片段展示了如何综合运用多个组件构建起一套完善的自动化测试框架体系架构模型方案设计思路方向指引路径指南针罗盘灯塔明灯照亮前行之路引领未来发展方向趋势脉络清晰可见易于理解掌握实践落地执行效果显著提升效率质量双丰收共赢局面达成共识统一行动纲领宣言书战斗口号激励士气鼓舞人心振奋精神昂扬斗志勇往直前无坚不摧所向披靡势不可挡锐不可当无可匹敌天下无敌唯我独尊舍我其谁霸气侧漏王者风范尽显无疑彰显非凡魅力风采独具特色与众不同脱颖而出鹤立鸡群卓尔不凡超凡脱俗出类拔萃技压群雄笑傲江湖纵横捭阖叱咤风云震撼天地惊世骇俗石破天惊鬼斧神工巧夺天工妙手偶得浑然天成水到渠成瓜熟蒂落顺理成章自然而然恰如其分适得其所各司其职分工合作默契十足完美搭档黄金组合梦幻团队强强联合优势互补资源共享互利互惠合作共赢共创辉煌伟业基业长青万古流传永垂不朽! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值