jmeter 生成html报告及解读


当前版本:

  • jmeter 5.6.3
  • mysql 5.7.39

简介

    JMeter 支持在测试完成后自动生成报告,也支持使用结果数据文件转换成html报告(使用 -l 文件.jtl)。本篇文章主要介绍如何生成报告,以及报告的基本解读。

        

文章目录如下

1. 生成html报告

1.1. 使用命令行生成报告

1.2. 使用GUI工具生成报告

2. 报告解读

2.1. 整体概要

① 基本报告

② 统计信息

③ 错误统计

2.2. 性能指标

① 按时间性能走势

② 吞吐量走势

③ 响应时间走势


        

1. 生成html报告

本章节介绍2种生成 html 报告的方法:

  • 命令行生成
  • GUI工具生成

jmeter 会自动生成一个文件夹,需要将整个文件夹下载到本地,打开 index.html 即可。

1.1. 使用命令行生成报告

【方法一】执行完成后自动生成html报告

jmeter -n -t 测试文件 -l 结果日志 -e -o 报告目录  # 报告目录为不存在的目录
  • -n:命令行模式运行JMeter
  • -t:指定要执行的jmx文件
  • -l:指定测试结果的日志文件(类似于查看结果树)
  • -e:在测试结束后生成HTML报告
  • -o:指定用于生成HTML报告的目标目录

         

【方法二】将结果文件生成html报告

jmeter -g 日志文件 -o 报告目录  # 需要一个不存在的目录,jmeter自动创建
  • -g:指定结果文件的路径(指定jtl文件生成报告)
  • -o:指定用于生成HTML报告的目标目录

        

1.2. 使用GUI工具生成报告

点击 "工具" 中的 "Generate HTML report"

生成报告如下:

        

2. 报告解读

需要将生成报告的整个目录下载到本地,打开 index.html。报告分为3个部分:

  • Dashboard:提供了整体的概览信息,显示了关于测试结果的总体摘要。
  • Charts:提供了关于性能指标的图表,如吞吐量、响应时间、活跃用户数等。
  • Custom Graphs:允许根据自己的需求创建和显示自定义的图表。

        

后面的解读以压测 MySQL 业务作为例子

        

2.1. 整体概要

① 基本报告

  • 基本报告主要分为3个部分:基本信息、用户满意度和请求通过率。

【基本信息】

测试报告的基本信息,包括开始时间、结束时间和报告的源文件。

        

【用户满意度】

从上述图表来看,设定的用户容忍响应时间为500ms,最大容忍1500ms,jmeter 根据每个业务的实际响应时间来判断。update 和 delete 业务满意度达到98.8%,insert 和 select 业务满意度达到100%,整体满意度达到99.9%,基本符合预期。

换一种角度来理解

  • 100%:全部用户都很满意性能。
  • 99.99%:绝大部分用户很满意性能,只有少量几个用户不满意。
  • 95%:95%的用户很满意,但是存在5%的用户不满意,是否符合需求根据每个公司的要求。

        

【请求通过率】

这部分报告主要将请求成功和失败的结果做了饼状图表比例(FAIL:失败;PASS:成功)。

        

② 统计信息

  • 统计信息主要分为5个部分:请求信息、执行情况、响应时间、吞吐量和网络,重点关注错误率、95%响应时间、吞吐量。

Label   # 每个请求的名称
Samples # 请求总次数
FAIL    # 请求失败的次数
Error%  # 请求失败率
Average   # 平均响应时间
Min       # 最小响应时间
Max       # 最大响应时间
Median    # 所有请求按照响应时间从小到大排序后,处于中间位置的响应时间
90th pct  # 90% 的请求响应时间低于或等于该数值
95th pct  # 95% 的请求响应时间低于或等于该数值
99th pct  # 99% 的请求响应时间低于或等于该数值
Transactions/s  # 每秒事务数
Received  # 接收的数据量
Sent      # 发送的数据量

        

③ 错误统计

  • 错误统计主要分为2个部分:错误统计、前5错误信息。

【错误统计】

Type of error(错误类型)    # 统计各种错误类型,例如连接超时、响应码错误或其它与请求执行相关的错误
Number of errors(错误数量) # 在整个测试期间发生的特定类型错误的总数
% in errors(错误比例)      # 在整个测试期间发生的特定类型错误占所有错误的百分比
% in all samples(所有样本中的比例)  # 特定类型错误占所有请求样本的百分比

        

【前5错误信息】

Sample(采样器)    -- 请求的名称
#Samples(样本数)  -- 请求的总数
#Errors(错误数)   -- 特定采样器相关的错误数
Error(错误信息)   -- 特定采样器的错误信息。例如错误消息、错误类型等。

        

2.2. 性能指标

① 按时间性能走势

  • 按时间性能走势主要分为6个部分:响应时间、响应时间百分位、活动线程数、字节吞吐量、等待时间和连接时间。

【响应时间】

随时间推移的平均响应时间的变化情况,每个业务使用不同颜色的业务线。

        

【响应时间百分位】

展示了系统返回的响应时间在不同百分位数上的分布情况,该信息有助于确定系统在给定时间段内的性能状况。

        

【活动线程数】

展示系统同时处理的并发请求数,可用于监视系统的负载情况和并发性能。

        

【字节吞吐量】

展示在不同时间段内发送和接收的字节数,可用于观察系统的数据传输性能。

        

【等待时间】

展示请求在系统中等待的时间,包括网络延迟等因素。

        

【连接时间】

展示请求在与服务器建立连接时所花费的时间。

        

② 吞吐量走势

  • 吞吐量走势主要分为6个部分:每秒请求数、每秒响应码数、每秒事务数、总每秒事务数、响应时间与请求的关系、等待时间与请求的关系。

【每秒请求数】

系统每秒针对服务器的请求次数,每个请求可能包含多个样本。

        

【每秒响应码数】

系统每秒接收到的成功和失败响应的数量。

        

【每秒事务数】

显示每秒钟完成的事务数量。一个事务可以包含多个采样器,并且表示一个用户的完整操作。

        

【总每秒事务数】

测试期间完成的总事务数量。

        

【响应时间与请求的关系】

显示请求的响应时间分布情况。主要提供了不同请求所花费的平均响应时间,以便比较请求之间的性能差异。

        

【等待时间与请求的关系】

显示请求的等待时间分布情况。主要提供了不同请求的平均等待时间,即请求在系统中等待的时间。

        

③ 响应时间走势

  • 响应时间走势主要分为4个部分:响应时间百分位数、响应时间概述、时间 vs 线程数、响应时间分布。

【响应时间百分位数】

提供从 0% ~ 100% 百分位的响应时间,例如:

  • 10%:表示 10% 请求响应时间低于或等于该数值(按10%最大值算)
  • 99%:表示 99% 请求响应时间低于或等于该数值(按99%最大值算)

        

【响应时间概述】

分别展示了响应时间小于500ms、大于1500ms、500~1500ms之间和响应错误的请求数(纵坐标就是请求数)。

        

【时间 vs 线程数】

展示每个业务的活动线程数的响应时间(横轴:线程数,纵轴:响应时间)。

        

【响应时间分布】

展示每个业务的请求数与响应时间的分布(横轴:响应时间,纵轴:请求数)。

        

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

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

相关文章

06. Nginx进阶-Nginx代理服务

proxy代理功能 正向代理 什么是正向代理? 正向代理(forward proxy),一个位于客户端和原始服务器之间的服务器。 工作原理 为了从原始服务器获取内容,客户端向代理发送一个请求并指定目标(即原始服务器…

window10 安装配置docker

前言(重要):确认window10版本已经更新到最新版 随着时间推移,docker对window版本的支持也在变,截至2024年3月份,支持win10最低版本号:22H2,操作系统最低版本:19045.2965&#xff0c…

基于springboot+vue的新闻资讯系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

科技云报道:阿里云降价,京东云跟进,谁能打赢云计算价格战?

科技云报道原创。 就在大家还在回味2月29日阿里云发布“史上最大降价”的惊喜时,京东云连夜发布降价消息,成为第一家跟进的云服务商,其“随便降,比到底!”的口号,颇有对垒的意味,直接吹响了云计…

Python采集学习笔记-request的get请求和post请求

使用http://httpbin.org测试,一个简单的 HTTP 请求和响应服务。(需联网)1.导入requests包 import requests 2.测试get请求 url http://httpbin.org/get par {key1: value1, key2: value2} # 不带参数请求 r1 requests.get(url) # 带参数请求 r2 requests.get(url, paramspa…

【数据结构和算法初阶(C语言)】带环链表问题详解(快慢指针的烧脑应用)

目录 1.铺垫-----带环链表基本了解 2. 题目:环形链表 3.环形链表|| ​编辑 3.1题解1 3.2 题解2 4.总结 1.铺垫-----带环链表基本了解 环形链表题目启迪: 环形链表特点:遍历链表会出现一模一样的地址 2. 题目:环形链表 给…

Scrapy与分布式开发(2.3):lxml+xpath基本指令和提取方法详解

lxmlxpath基本指令和提取方法详解 一、XPath简介 XPath,全称为XML Path Language,是一种在XML文档中查找信息的语言。它允许用户通过简单的路径表达式在XML文档中进行导航。XPath不仅适用于XML,还常用于处理HTML文档。 二、基本指令和提取…

爬虫入门到精通_实战篇10(使用Redis+Flask维护动态代理池)

1 目标 为什么要用代理池 许多网站有专门的反爬虫措施,可能遇到封IP等问题。互联网上公开了大量免费代理,利用好资源。通过定时的检测维护同样可以得到多个可用代理。 代理池的要求 多站抓取,异步检测定时筛选,持续更新提供接…

12 状态优先级

概念 cpu需要执行很多进程,有很多进程排在队列中,每个进程加载后运行一定的时间段,然后切换下一个进程。cpu如何判断进程需不需要加载,什么时候加载,依靠进程的状态和优先级属性来判断,进程调度&#xff0…

Gitlab: PHP项目CI/CD实践

目录 1 说明 2 CI/CD 2.1 部署方式一:增量部署 2.1.1 目标服务器准备 2.2.2 Gitlab及Envoy脚本 2.2 部署方式二:镜像构建与部署 2.2.1 推送到私有化容器仓库 准备工作 脚本 要点 2.2.2 推送到hub.docker.com 准备工作 脚本 3 参考&#x…

深入探讨 AutoGPT:彻底改变游戏的自主 AI

原文地址:Deep Dive into AutoGPT: The Autonomous AI Revolutionizing the Game 2023 年 4 月 24 日 AutoGPT 是一个功能强大的工具,它通过 API 使用 GPT-4 和 GPT-3.5,通过将项目分解为子任务并在自动循环中使用互联网和其他工具来创建完…

力扣hot8---滑动窗口

这里先跳过力扣hot7啦,这几天就回更~ 题目: 滑动窗口思路: 首先左窗口(left)指向的是第0个元素,依次遍历循环每一个元素,维护一个unordered_set,如果当前被遍历的元素存在于unorder…

Python实现ADTM工具判断信号:股票技术分析的工具系列(6)

Python实现ADTM工具判断信号:股票技术分析的工具系列(6) 介绍算法解释 代码rolling函数介绍完整代码data代码ADTM.py 介绍 ADTM(动态买卖气指标)是一种用于衡量市场买卖力量对比的指标。它通过计算动态买盘指标&#…

【源码】imx6ull实现触摸屏单点实验-移植tslib和qt

一、本实验实验的器材: 1.正点原子imx6ull的阿尔法开发板v2.2 2.屏幕ALIENTEK 4.3 RGBLCD 二、实验已经移植好的文件: 仓库代码:https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.文件说明 arm-qt.tar.bz2:移植好的…

tsc : 无法加载文件 C:\Users\Administrat\AppData\Roaming\npm\tsc.ps 1,因为在此系统上禁止运行脚本

报错:tsc : 无法加载文件 C:\Users\Administrat\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 解决 使用命令行时出现ab…

idea中引入新JDK环境

在不同的项目中往往会需要不同的运行环境,那么如何下载一个新的环境并运用到idea中呢? 下面给出的就是oracle官网,以JDK17为例教大家如何下载 Java Archive Downloads - GraalVM for JDK 17https://www.oracle.com/java/technologies/javase…

世界的本质是旋转(5)-在复平面上驱动软件无线电SDR发射BPSK波形

在上一篇文章中,我们介绍了复平面、拍照采样的一些思维实验。从本节开始,转入现实应用,通过控制复平面向量的位置,实现一个完整的BPSK全双工通信通道。 发射方:通过控制复平面向量在各个时刻的位置来携带信息的技术&a…

108. 将有序数组转换为二叉搜索树【简单】

108. 将有序数组转换为二叉搜索树【简单】 题目描述: 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉…

电脑不小心格式化了,怎么恢复?

在这个数字化时代,电脑已经成为我们日常生活和工作中不可或缺的工具。然而,有时我们可能会不小心格式化电脑硬盘,导致重要数据的丢失。那么,电脑不小心格式化了,怎么恢复? 别着急,在本篇攻略中&…

vue3页面内容切换(类似登录、注册内容切换)

一、内容描述 页面有俩块内容,分别是验证码登录页面内容,账号密码登录页面内容。有俩种处理方式,一个是写俩个页面跳转使用,还有一种是一个页面俩个内容,切换的只是不同的内容,相同的内容保留。一般都是选择…