全网最详细,Jmeter性能测试数据写入文件(总结)看这篇就够了......

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

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时间戳 如: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文件。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要你有能力去做的事就一定要去做,不要给自己留下任何遗憾,人生最重要的不是所站的位置,而是所朝的方向。

生于忧患,死于安乐。如果你想跨越自己目前的成就,就不能画地自限,而是要勇于接受挑战。对畏畏缩缩的人来说,真正的危险正在于不敢冒险!

为明天做准备的最好方法就是集中你所有智慧,所有的热忱,把今天的工作做得尽善尽美,这就是你能应付未来的唯一方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RK3568平台开发系列讲解(Linux系统篇)消息队列

🚀返回专栏总目录 文章目录 一、创建消息队列二、发送和接收消息三、内核结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢消息队列在如下两个方面上比管道有所增强: 消息队列中的数据是有边界的,发送端和接收端能以消息为单位进行交流,而不再是无分隔的字节流…

Android---动态权限申请

目录 权限分类 动态权限核心函数 简易实现案例 完整代码 Google 在 Android 6.0 开始引入了权限申请机制,将所有权限分成了正常权限和危险权限。App 每次在使用危险权限时需要动态的申请并得到用户的授权才能使用。 权限分类 系统权限分为两类:正常…

队列实现及leetcode相关OJ题

上一篇写的是栈这一篇分享队列实现及其与队列相关OJ题 文章目录一、队列概念及实现二、队列源码三、leetcode相关OJ一、队列概念及实现 1、队列概念 队列同栈一样也是一种特殊的数据结构,遵循先进先出的原则,例如:想象在独木桥上走着的人&am…

计算机网络管理 TCP三次握手的建立过程,Wireshark抓包分析并验证TCP三次握手建立连接的报文

⬜⬜⬜ ---🟧🟨🟩🟦🟪 (*^▽^*)欢迎光临 🟧🟨🟩🟦🟪---⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→…

【Linux入门篇】操作系统安装、网络配置

目录 🍁Linux详解 🍂1.操作系统 🍂2.操作系统组成 🍂3.操作系统历史 🍂4.常见的Linux系统 🍂5.centos7下载 🍂6.安装centos7 🍁linux初始化配置 🍃1.虚拟机系统安装后操作…

从零实现深度学习框架——学习率调整策略介绍

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 要深入理解深度学习,从零开始创建的经验非常重要,从自己可以理解的角度出发,尽量不使用外部完备的框架前提下,实现我…

【微信小程序】-- 案例 - 自定义 tabBar(四十六)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

kali内置超好用的代理工具proxychains

作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。 一个人的价值,在于他所拥有的。所以可以不学无术,但不能一无所有! 技术领域:WEB安全、网络攻防 关注WEB安全、网络攻防。…

31. 下一个排列

题目链接:https://leetcode.cn/problems/next-permutation/解题思路:整数数组的 下一个排列 是指其整数的下一个字典序更大的排列,其实也就是把整数所有数字从左往右组合成一个数,则下一个排列就是将数组中的所有元素重新组合成一…

【跟着chatgpt学go】Gooutine和Channel

Goroutine Goroutine 是 Go 语言中的一种并发机制,它是一种轻量级线程,可以通过关键字 go 启动一个新的 Goroutine。相比传统的线程,Goroutine 拥有更小的栈空间,因此可以创建更多的 Goroutine。 下面是一个简单的 Goroutine 的…

数据结构初阶(顺序表)

文章目录1、时间复杂度1.2、大O渐进表示法1.3、递归算法时间复杂度计算2、空间复杂度3、顺序表1、概念2、静态顺序表3、动态顺序表1、创建结构体(头文件中创建)2、销毁链表3、初始化结构体4、打印函数5、内存扩容6、顺序表任意位置插入数据7、顺序表任意…

从 hybrid开发----》微前端

为什么开始写关于微前端的一系列博客? 1. 学生时代讨论关于hybrid APP的应用开发,历史的选择总是变化的,需要更进一步深入。 2. 之前工作项目中见到过沙箱隔离之后CSS冲突,需要学一下如何解决 ----------------------------- …

QT CTK插件框架 (一 下载编译)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而…

ChatGPT助力校招----面试问题分享(四)

1 ChatGPT每日一题:电阻如何选型 问题:电阻如何选型 ChatGPT:电阻的选型通常需要考虑以下几个方面: 额定功率:电阻的额定功率是指电阻能够承受的最大功率。在选型时,需要根据电路中所需要的功率确定所选…

【JavaEE】Thread 类及常用方法

一、Thread 类Thread 类我们可以理解为是 java 用于管理线程的一个类,里面封装了操作系统提供的线程管理这一方面的 API (Thread 是优化后的结果), Java 代码创建的每一个线程,可以理解为为 Thread 实例化的对象,Threa…

JUC是什么?

JUC 简介 在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC 就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。 进程与线程 进程(Process) 是计算机中…

Java基础:笔试题

文章目录Java 基础题目1. 如下代码输出什么?2. 当输入为2的时候返回值是多少?3. 如下代码输出值为多少?4. 给出一个排序好的数组:{1,2,2,3,4,5,6,7,8,9} 和一个数,求数组中连续元素的和等于所给数的子数组解析第一题第二题第三题第四题方案…

[ 云计算 | Azure ] Chapter 05 | 核心体系结构之管理组、订阅、资源和资源组以及层次关系

本文主要对如下内容进行讲解:Azure云计算的核心体系结构组件中的:资源、订阅和资源组,以及了解 Azure 资源管理器 (ARM) 如何部署资源。 本系列已经更新文章列表: [ 云计算 | Azure ] Chapter 03 | 描述云计算运营中的 CapEx 与…

面试了8家软件公司测试岗位,面试题大盘点,我真的尽力了

包含的模块:本文分为十九个模块,分别是:软件测试 基础、liunx、MySQL、web测试、接口测试、APP测试 、管理工具、Python、性能测试、selenium、lordrunner、计算机网络、组成原理、数据结构与算法、逻辑题、人力资源需要的可以看文末获取方式…

Qt基础之三十三:海量网络数据实时显示

开发中我们可能会遇到接收的网络数据来不及显示的问题。最基础的做法是限制UI中加载的数据行数,这样一来可以防止内存一直涨,二来数据刷新非常快,加载再多也来不及看。此时UI能看到数据当前处理到什么阶段就行,实时性更加重要,要做数据分析的话还得查看日志文件。 这里给出…