jmeter监听器大家都会用,但我这个妙招能让你提早一小时下班!

使用过 jmeter 的同学,应该都会使用监听器,在每个监听器中,都会有一个“所有数据写入一个文件”的功能,那这个功能应该怎么用呢?今天,我们就来讲讲这个功能的使用。

图片

几乎所有的监听器都有这样一个功能。

那对于这个监听器都带有的功能,到底该怎么用呢?

点击“浏览”按钮,会弹出系统的文件选择窗口

图片

我们可以从弹窗的文件类型中看到,支持的文件类型有三种:XML、jtl、CSV。

其实,jmeter 还支持一种:.db 只是,这种类型很少被用了。

也就是说,我们选择写入的文件类型有三种选择。其中,CSV 是 jmeter 目前版本默认的。可以在jmeter.properties文件中,找到

“jmeter.save.saveservice.output_format=”参数的值。

自己选择一个路径,可以选择一个已经存在的文件,也可以自己创建一个空文件,不过,建议使用空文件,因为,在jmeter默认参数配置时,

"resultcollector.action_if_file_exists=ASK",如果文件已经存在,就会弹窗提示。

图片

当然,也可以自己修改为“APPEND” 自动追加到文件末尾、“DELETE”自动删除原文件再创建新文件。

默认情况下,CSV 文件,保存的字段有 (jtl 文件也相同)

timeStamp   elapsed label   responseCode    responseMessage threadName  dataType    success failureMessage  bytes   sentBytes   grpThreads  allThreads  URL Latency IdleTime    Connect

字段信息
timeStamp时间戳 如:1634187509448
elapsed耗时,单位:ms 毫秒
label取样器名称 如:HTTP request
responseCode响应代码 如:200
responseMessage响应消息 如:OK
threadName线程名称 如:线程组 1-1
dataType数据类型 如:text
success成功与否 如:true
failureMessage失败消息
bytes样本中的字节数
sentBytes发送样本的字节数
grpThreads此线程组中的活跃线程数
allThreads所有线程组中的活跃线程数
URL取样器请求地址
Latency延迟耗时
IdleTime

空闲时间 单位:ms毫秒

Connect建立连接的时间

细心的同学,应该从这个图表中可以发现,这个 CSV 中是没有 request-body 和 response-body 的,也就是说,请求和响应的一些数据是没有写入文件的。这些数据,主要是在做性能分析生成图表的时候使用的。

那到底怎么用呢?

  • 如果你使用的是图形界面 jmeter,你可以在 jmeter 中,任意一个监听器中,点击“浏览”,选择你的 CSV 或 jtl 文件,如你使用“查看结果树” 元件

图片

或者使用“聚合报告” 元件:

图片

就能看到运行的结果,以及统计分析报告。

这个用法是不是很简单,你 ‘学废了’ 吗?

但是,因为他是 CSV 文件或 jtl 文件,还是有一些不足的。首先,CSV 文件,是不会保存请求体和响应结果相关的数据,所以,在使用“查看结果树” 元件来查看时,request body, request headers,response body, response headers 中都是没有数据的。然后,就是,如果 CSV 文件或 jtl 文件有大几十 M 或几百 M,在使用“查看结果树” 元件查看时,可能会导致 jmeter 无响应。

在 jmeter5.1.1 版本开始,如果你使用的图形界面,你也可以把 CSV 文件或 jtl 文件,生成 HTML 报告。

图片

点击第 1 个“浏览”,选择 CSV 文件或 jtl 文件,点击第 2 个“浏览” ,选择 jmeterbin 文件夹中的 jmeter.properties 或 user.properties 文件,点击第 3 个“浏览”, 选择一个空文件夹,然后点击最底部的 “Gererate report” 按钮,就可以生成 HTML 到你选择的空文件夹中。

图片

  • 如果,你使用的是无图形界面 jmeter,可以使用 jmeter -g xxxx.jtl -e -o xxxempty_dict “xxxx.jtl” 可以是你的 CSV 文件也可以是 jtl 文件, "xxxempty_dict" 就是你把生成 HTML 放的空文件夹名称。 

默认的 CSV 或 jtl 文件,没有保存请求体和响应相关数据,那有没有什么办法解决呢?

  • 我们可以通过下面两种方法: 

  • 选择一个空的 XML 文件,然后,点击 “配置”按钮,在弹窗中,选中“Save As XML” “Save Response Data(XML)” “Save Sampler Data(XML)” 三个复选框,然后,点击”完成“

图片

这样,请求体和响应相关数据,就都保存到了 XML 文件中。

注意:

1、想要保存请求体和响应相关数据,文件必须为 XML 格式,必须构想 Save As XML

2、Save Sampler Data(XML)会保存请求的 cookie、请求方法、请求体

  • 也可以选择一个空 XML 文件,然后,点击 “配置”按钮,在弹窗中,选中“Save As XML” ,点击”完成“, 然后,点击 ”测试计划“中的 ”函数测试模式“

图片

用这两种方法生成的 XML 文件,就都包含了请求体和响应相关数据,在 jmeter 图形界面中,选择”查看结果树“,点击选择写入文件的浏览,打开 XML 文件,这个时候,我们查看到请求 和 响应的详细信息。

图片

注意:

XML 文件不能像 CSV、jtl 文件一样生成 HTML 报告,它要生成报告,需要与 ant 集成。

前面,我们都是讲的在 jmeter 图形界面中,把数据写入文件,我们也可以通过采用无图形界面的 CLI 命令来生成 CSV 或 jtl 文件。

jmeter -n -t xx.jmx -l xxx.jtl -e -o xxxxempty_dict

xx.jmx 是 jmeter 脚本,xxx.jtl 或 xxx.csv 是生成的文件,xxxxempty_dict 是结果转换为的 HTML 文件。

好了,对于 jmeter 生成文件,你学会了吗?

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/544132.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解压即用,2024最简单好用AI开源换脸应用,整合包已备好

软件整合包:点击下载 关键词:#AI换脸 #开源应用 #可视化界面 #实时换脸 #高清修复 #多个模型 #人脸遮挡处理 #模糊修复 #性能优化 #操作简单 总结:本软件是一款2024年最强大、最易用的AI换脸开源应用。该应用界面经过汉化,操作简…

find_package 总结

本文参考:“轻松搞定CMake”系列之find_package用法详解 原理 find_package 即在指定目录CMAKE_MODULE_PATH 或 CMAKE_PREFIX_PATH查找对应的cmake文件。 find 模式 Module模式(默认):查询Findxxx.cmake配置文件, 在CMAKE_MODULE_PATH 目录Config模式…

LCD屏的应用

一、LCD屏应用 Linux下一切皆文件,我们的LCD屏再系统中也是一个文件,设备文件:/dev/fb0。 如果要在LCD屏显示数据,那我们就可以把数据写入LCD屏的设备文件。 1.显示颜色块 LCD屏分辨:800*480 像素 32位:说明一个像…

算法打卡day19|二叉树篇08|Leetcode 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

算法题 Leetcode 235. 二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 大佬视频讲解:二叉搜索树的最近公共祖先视频讲解 个人思路 昨天做过一道二叉树的最近公共祖先,而这道是二叉搜索树,那就要好好利用这个有序的特点…

Vue 全家桶

第 1 章:Vue 核心 第 2 章:vue 组件化编码 第 3 章:vue-ajax 第 4 章:vue UI组件 第 5 章:vue-router 第 6 章:vuex 第 7 章:vue源码分析

Internet协议的安全性

Internet协议的安全性 文章目录 Internet协议的安全性1. 网络层1. IP*62. ARP*33. ICMP * 3 2. 传输层协议1. TCP1. * SYN-Flood攻击攻击检测* 防御 2. TCP序号攻击攻击 3. 拥塞机制攻击 2. UDP 3. 应用层协议1. DNS攻击*3防范*3: 2. FTP3. TELNET: 改用ssh4. 电子邮件1. 攻击2…

python二级备考(3)-综合应用

1 《命运》是著名科幻作家倪匡的作品。这里给出《命运》的一个网络版本文件,文件名为“命运. txt”。 问题1 (5分) :在PY301-1. py文件中修改代码,对“命运. txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次&…

Java学习笔记------常用API(五)

爬虫 从网站中获取 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.reg…

MySQL语法分类 DQL(4)聚合函数

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

php中 0 == ‘’(0等于任意字符串) 判断是否成立 返回true

php中不同类型变量之间比较大小 一、背景二、探究0是为什么?三、探究 0all是为什么?四、程序中如何判断0是否等于指定字符串 一、背景 最近在项目实际开发中,我需要判断前端传来的参数值是否等于一个字符串;然后发现当参数值是0时…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Tabs)

通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 该组件从API Version 11开始默认支持安全区避让特性(默认值为&#x…

L1-070 吃火锅分数 15

我们老师的话说就是,你学长睡了四年的床板子你不收拾收拾就往上躺着睡觉吗???一定要记得用到计数变量时首先要赋初值0或者其他,按题目要求来。 用 输入样例 1: Hello! are you there? wantta chi1 huo3…