【性能测试】如何编写Jmeter输出错误日志

本文介绍了一种在JMeter性能测试中改进日志记录的方法,通过Beanshell脚本实现对不符合预期响应的数据进行记录,帮助快速定位问题。

 一、问题

        当我们在使用jmeter压测的时候执行脚本一般都会在Linux的压力机上执行,,压测过程中有个很不方便的地方是我们无法及时看到报错信息,以及时无法看到详细的日志,对排查问题会产生报错的信息定位问题影响很大。

二、解决办法

        添加beanshell中输出对不满足检断言的(检查点的)请求的返回信息的打印输出(适用于包含响应断言)信息

2.1、生成日志具体代码

String response ="";
String Str ="000000000000";
response = prev.getResponseDataAsString();
if(response == ""){
Failure = true;
FailureMessage = "系统无响应,获取不到响应数据";
log.info(FailureMessage);
}
else if(response.contains(Str) == false){
Failure = true;
String Msg = "系统返回与检查点不一致";
FailureMessage = Msg + "\n" + "期望结果:\n" + Str + "\n" + "响应内容: \n" + response +"\n";
log.info(FailureMessage);
}

2.2、生成日志的指定log文件

jmeter -n -t CustomSeq.jmx -l 2021092241917_Custom75_yangml.jtl -D thread.num=75 -D rampUp.time=1 -D run.time=300 -j ../log/111.log

<think>嗯,用户想知道如何配置JMeter的命令行参数来生成和查看输出日志。首先,我需要回忆一下JMeter的基本命令行参数。记得JMeter通常在非GUI模式下运行测试,使用-n和-t参数指定测试计划文件。比如,jmeter -n -t test.jmx -l result.jtl,这样会生成结果文件result.jtl。 不过用户问的是输出日志,可能是指JMeter运行时的日志信息,而不仅仅是测试结果。JMeter日志配置可能涉及到日志级别和日志文件的设置。默认情况下,JMeter会生成jmeter.log文件,记录运行时的信息。但用户可能需要调整日志级别,比如DEBUG或者ERROR,这可以通过修改jmeter.properties文件中的log_level.jmeter属性来实现。例如,log_level.jmeter=INFO或者DEBUG。 另外,用户可能还想知道如何通过命令行参数直接指定日志级别,而不是修改配置文件。JMeter的命令行参数中有一个-log或者-l选项,但通常-l是指定结果文件,比如前面提到的result.jtl。而日志文件默认是jmeter.log,位置可能在bin目录下。如果需要改变日志文件的位置,可能需要使用-j参数指定日志文件路径,比如-j mylog.log。不过需要确认JMeter的文档是否支持这个参数。 还要注意,用户提到的引用中提到了生成HTML报告,这可能涉及到-e和-o参数,比如生成报告时需要指定输出目录。但用户的问题是关于输出日志的配置,可能和生成测试报告不同。需要区分日志文件和测试结果文件。 总结一下,配置JMeter命令行生成输出日志的步骤可能包括:1. 使用-n和-t运行测试;2. 使用-j参数指定日志文件路径;3. 修改日志级别,可能需要在jmeter.properties中设置,或者在命令行通过-J参数传递,比如-Jlog_level.jmeter=DEBUG;4. 查看日志文件的内容,可以使用文本编辑器或者实时监控日志输出。 需要验证这些步骤是否正确,比如检查JMeter的官方文档或用户引用中的信息。根据引用[1]中的示例命令,用户可能已经知道基本的命令行运行方式,但需要更详细的日志配置。引用[3]提到在非GUI模式下运行以获得最佳结果,所以需要确保所有配置都适用于命令行模式。 可能的误区是混淆测试结果文件(如result.jtl)和日志文件(jmeter.log)。需要明确告诉用户这两个文件的区别,以及如何配置各自的生成位置和详细程度。 最后,还需要考虑不同操作系统下的路径问题,比如在Windows和Linux下指定日志文件路径时的斜杠方向。此外,实时查看日志可能需要使用tail命令或者其他工具,尤其是在长时间运行的测试中。</think>### 如何配置JMeter命令行参数生成输出日志 #### 1. **基础命令行执行与日志生成** JMeter默认在运行时会自动生成日志文件`jmeter.log`,位于JMeter的`bin`目录下。通过以下命令执行测试并生成日志: ```bash jmeter -n -t test.jmx -l result.jtl -j debug.log ``` - `-n`: 非GUI模式运行。 - `-t test.jmx`: 指定测试计划文件。 - `-l result.jtl`: 生成测试结果文件(如响应时间、成功率等)。 - `-j debug.log`: 指定日志文件路径和名称[^3]。 #### 2. **调整日志详细级别** JMeter日志级别可通过配置文件或命令行参数修改: - **修改配置文件**: 打开`jmeter.properties`文件(位于`bin`目录),找到以下配置并调整级别: ```properties log_level.jmeter=INFO # 可选级别:DEBUG, INFO, WARN, ERROR ``` - **命令行动态调整**: 通过`-J`参数覆盖配置: ```bash jmeter -n -t test.jmx -Jlog_level.jmeter=DEBUG -j detailed.log ``` #### 3. **实时查看日志输出** - **终端实时输出**: 添加`-L`参数指定日志级别并输出到控制台: ```bash jmeter -n -t test.jmx -L DEBUG ``` - **监控日志文件**: 使用`tail`命令(Linux/macOS)或文本编辑器实时查看: ```bash tail -f debug.log ``` #### 4. **日志文件与测试结果的区别** - **`jmeter.log`**: 记录JMeter运行时的系统事件(如线程启动、错误堆栈)。 - **`result.jtl`**: 存储性能测试结果(需通过监听器配置生成)。 #### 5. **生成HTML报告(附加功能)** 结合日志与可视化报告: ```bash jmeter -n -t test.jmx -l result.jtl -e -o ./report ``` - `-e`: 测试后生成报告。 - `-o ./report`: 指定报告输出目录[^1][^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值