JMeter自定义日志与日志分析

这篇具有很好参考价值的文章主要介绍了JMeter自定义日志与日志分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 JMeter日志概览

JMeter与Java程序一样,会记录事件日志,日志文件保存在bin目录中,名称为jmeter.log。当然,我们也可以在面板中直接察看日志,点击右上角黄色标志物可以打开日志面板,再次点击收起。JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展

可见,通过日志可以帮助我们定位一些不容易直接察觉的问题。

另外,JMeter可以很方便地设置日志输出级别:
JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展

2 JMeter自定义日志

前面所看到的都是系统日志,也就是JMeter本身所打印的日志。如果我们自己想输出一些日志,该怎么办呢?这个一般就要借助Beanshell了。

例如,一个接口响应结果如下:
JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展

在该请求下添加Beanshell断言,运行后,日志中输出了相应内容:JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展


import org.apache.log4j.Logger;

// 获取接口的响应数据
String result = prev.getResponseDataAsString();

if(result.contains("error")){
  Failure=true;
  log.error("接口失败: " + result);
}

当然,自定义日志最重要的作用还是在Linux服务器上运行脚本时,因为没有界面,排查问题更加麻烦。

承接前文,将JMeter脚本部署到Linux服务器上进行压力测试,存在一些不便之处:

吞吐量统计中包括了所有请求,包括一些辅助请求(beanshell请求),导致真正的tps统计数据不准确。

业务是否成功,以及具体失败原因难以排查。

首先,测试接口的响应内容如图所示:JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展

在接口下添加2个【JSON Path Extractor】,分别用于在测试接口的响应内容里提取code、orderId。
JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展
再在测试接口下添加【BeanShell断言】: 

import org.apache.log4j.Logger;

// 获取接口的响应数据
String result = prev.getResponseDataAsString();
// 从JSON提取器中获取code和orderId
String code = vars.get("code");
String orderId = vars.get("orderId");

if(code.equals("0")){
  log.info("place order success, orderId=" + orderId);
}else{
  Failure=true;
  log.error("FailureMessage: " + result);
}

 将该脚本上传到Linux中,顺便写个启动脚本:start.sh

#!/bin/bash
jmeter_log=/home/test/jmeter.log

if [ -f "$jmeter_log" ]; then
 // 将原日志文件备份后删除
 cp $jmeter_log /home/test/jmeter.log_back
 rm -rf $jmeter_log
fi
// 启动JMeter脚本
jmeter -n -t /home/test/test.jmx -l /home/test/result/test.jtl

运行脚本后,cat jmeter.log,效果如下:
JMeter自定义日志与日志分析,软件测试,技术分享,自动化测试,jmeter,软件测试,程序人生,自动化测试,职场发展

3 JMeter日志分析

针对该日志写一个日志分析脚本logAnalysis.sh:

#!/bin/bash
jmeter_log=/home/test/jmeter.log
thread_num=`grep 'Thread started' $jmeter_log|tail -n 1|awk -F"-" '{print$6}'`
start_time=`grep 'All thread groups have been started' $jmeter_log|awk -F" " '{print $1,$2}'|awk -F"," '{print $1}'`
end_time=`grep 'Shutdown hook ended' $jmeter_log|awk -F" " '{print $1,$2}'|awk -F"," '{print $1}'`

final_success_time=`grep "place order success" $jmeter_log|tail -n 1|awk -F" " '{print$1,$2}'|awk -F"," '{print$1}'`
success_running_time=$[ $(date -d "$final_success_time" +%s) - $(date -d "$start_time" +%s) ]
running_time=$[ $(date -d "$end_time" +%s) - $(date -d "$start_time" +%s) ]
cancle_times=`grep "cancle orders success" $jmeter_log|wc -l`   //撤单次数

success_times=`grep success $jmeter_log|wc -l`   // 成功次数
failure_times=`grep FailureMessage $jmeter_log|wc -l`
request_times=$[ $success_times+$failure_times ]
error_rate=`echo "scale=2; $failure_times/$request_times*100" | bc`
qps=$[ $request_times/$running_time ]
throughput=$[ $success_times/$success_running_time ]

echo -e '线程数:'$thread_num
echo -e '请求次数:' $request_times
echo -e '成功次数:' $success_times
echo -e '失败次数:' $failure_times
echo -e '撤单次数:'$cancle_times
echo -e '错误率:' $error_rate'%'
echo -e '开始时间:'$start_time
echo -e '结束时间:'$end_time
echo -e '最后成功请求时间:'$final_success_time
echo -e '请求时间:' $running_time 
echo -e '成功运行时间:'$success_running_time
echo -e '吞吐量:'$throughput'/s'
echo -e 'QPS:'$qps'/s'

当JMeter脚本运行一段时间后,执行logAnalysis.sh,效果如下:

线程数:180
请求次数: 131691
成功次数: 131493
失败次数: 198
撤单次数:141
错误率: 0%
开始时间:2018-11-28 15:34:54
结束时间:2018-11-28 15:37:17
最后成功请求时间:2018-11-28 15:37:17
请求时间: 143
成功运行时间:143
吞吐量:919/s
QPS:920/s

可以看到,输出信息全面清晰。这样,我们就可以在linux下运行JMeter压测脚本时,实时获取压测详情了。文章来源地址https://www.toymoban.com/news/detail-569953.html

到了这里,关于JMeter自定义日志与日志分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试技能,JMeter压力测试教程,Plugins Manager插件管理器(十三)

    前面讲了JDBC连接数据库的时候,需下载mysql对应的jar包,放到libext目录下就可以使用了 jmeter 有个插件管理器Plugins Manager,可以方便的管理其他插件的下载和更新 下载地址:https://jmeter-plugins.org/install/Install/ 下载插件后把jar包放到 lib/ext 目录,然

    2024年02月07日
    浏览(62)
  • Jmeter进行压力测试不为人知的秘密_jmter压力测试,软件测试面试项目

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月22日
    浏览(48)
  • 压力测试+接口测试(工具jmeter),软件测试 400道面试题通关宝典助你进大厂

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月26日
    浏览(65)
  • JMeter自定义日志与日志分析

    JMeter与Java程序一样,会记录事件日志,日志文件保存在bin目录中,名称为jmeter.log。当然,我们也可以在面板中直接察看日志,点击右上角黄色标志物可以打开日志面板,再次点击收起。 可见,通过日志可以帮助我们定位一些不容易直接察觉的问题。 另外,JMeter可以很方便地

    2024年02月16日
    浏览(30)
  • 接口测试 再也不必来回切换,发现一个接口测试软件,可以替代 Swagger+Mock+Jmeter+Postman

    日常测试过程中,常常需要多种工具来接力完成自己的接口测试任务。 比如说, 使用swagger查看接口文档, 使用mock编造接口数据对前端页面做测试 使用postman测试后端接口, 用Jmeter来做接口自动化测试/性能测试。 那有没有一款软件可以完美集成以上所有的功能? 笔者发现

    2024年02月15日
    浏览(58)
  • 软件测试技能,JMeter压力测试教程,请求头部自动签名带上X-sign参数(二十二)

    接口请求 body 带有 sign 签名参数,sign 签名是根据请求 body 除去 sign 本身参数后,拼接请求参数最后 md5 加密生成的 前面一篇是把 sign 前面参数放到请求的 body 里面,这篇继续讲把签名参数放到请求头部的情况 http 请求需要进行签名校验 X-Sign,放到请求头部 Content-Type: applic

    2024年02月12日
    浏览(56)
  • 测牛学堂:软件测试python中日志很重要!(一)

    日志 日志就是用于记录系统运行时的信息,对一个事件的记录,也称为Log 需要记录的信息: 1 脚本运行过程中某个重要变量的值 2方法的输入参数和返回结果 3异常信息 日记记录的作用 1 了解系统运行的情况是否正常 2系统程序运行故障分析与问题定位 3用来做用户行为分析

    2023年04月08日
    浏览(38)
  • 软件测试技术(单元测试)

    1、JUnit JUnit是一个Java语言的单元测试框架,用于编写和运行测试。它提供了一些注解和断言方法,可以使测试代码更加简洁和易于阅读。使用JUnit进行单元测试,可以提高代码的质量和可维护性,减少代码的错误和缺陷,从而提高整个系统的稳定性和可靠性。 JUnit框架的核心

    2024年02月04日
    浏览(52)
  • 软件测试Pytest实现接口自动化应该如何在用例执行后打印日志到日志目录生成日志文件?

    Pytest可以使用内置的logging模块来实现接口自动化测试用例执行后打印日志到日志目录以生成日志文件。以下是实现步骤: 1、在pytest配置文件(conftest.py)中,定义一个日志输出路径,并设置logging模块。 2、在测试用例中调用logging模块,输入需要生成的日志信息。 3、运行p

    2024年02月10日
    浏览(62)
  • 【软件测试】测试经验:IT 软件测试技术系统化学习方法

    目录 一、IT 软件测试技术的介绍 (1)相关职称证书 ① 「中级」软件评测师 ②「高级」项目管理师 (2)背景 (3)作用  (4)行业应用  (5)技术概况  二、系统化学习的前置准备 (1)学习目标 (2)学习计划  (3)学习工具 (4)学习资料 三、系统化学习软件测试技

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包