JMeter详细介绍和相关概念

在这里插入图片描述

JMeter是一款开源的、强大的、用于进行性能测试和功能测试的Java应用程序。
在这里插入图片描述

本篇承接上一篇 JMeter快速入门示例 , 对该篇中出现的相关概念进行详细介绍。

JMeter测试计划

  1. 测试计划名称和注释:整个测试脚本保存的名称,以及对该测试计划的注释。这些自定义内容最好能表达脚本的意义。

  2. 用户定义的变量:在测试计划上可以添加用户定义的变量,这些变量相当于是全局变量,一般添加一些系统常用的配置。但请注意,如果测试过程中想切换环境或配置,一般不建议在测试计划上添加变量,因为不方便启用和禁用。此时,可以直接添加用户自定义变量组件。

  3. 线程组设置

    • 独立运行每个线程组:用于控制测试计划中的多个线程组的执行顺序。如果不勾选,则默认各线程组并行、随机执行。勾选后,可以保证线程组按顺序执行。
    • Run tearDown Thread Groups after shutdown of main threads:当线程组停止运行时仍继续运行tearDown线程组。该选项结合线程组的执行配置使用,但一般很少用到。
  4. 函数测试模式:如果选中了此选项,同时监听组件(如“查看结果树”)配置了保存到一个文件中,那么JMeter会将每次的请求结果保存到文件中。但此操作比较消耗资源,因此一般不建议勾选。

  5. 类路径设置:可以添加文件或jar包。此功能最常用于调用外部jar包。当脚本需要调用外部的java文件或jar包时,可以把jar包路径添加到这里,然后在beanshell中直接import进来,并调用jar包中的方法

线程组

  1. :线程组可以看作是一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。这些虚拟用户将并发地执行测试计划中的请求,从而模拟真实世界的用户行为,对目标服务器进行压力测试。

  2. 分类

    • 普通线程组:最常见的线程组类型。可以指定线程数、循环次数、延迟等参数,以控制虚拟用户的并发数和请求执行方式。
    • setUp线程组:一种特殊类型的线程组,通常用于执行预测试操作,如数据准备、登录等。与普通线程组不同,setUp线程组会在其他线程组之前执行。这对于需要在测试开始前进行一些初始化操作的情况非常有用。
    • tearDown线程组:另一种特殊类型的线程组,通常用于执行测试后的清理操作,如关闭数据库连接、清理测试数据等。与setUp线程组类似,tearDown线程组会在所有其他线程组执行完毕后执行。
  3. 关键参数

    • 线程数:模拟用户数,多个线程用于模仿对服务器的并发访问。
    • Ramp-Up时间:设置启动所有线程需要的时间,即线程从启动到运行再到释放的总时间。在负载测试时,建议将Ramp-Up时间设置大一些,以便让性能曲线平缓,从而更容易找到瓶颈点。
    • 循环次数:设置线程组中的每个线程循环次数。可以理解为线程的迭代次数或重复发起请求的次数。
  4. 错误处理:在取样器发生错误后,JMeter提供了多种操作选项,包括继续执行接下来的请求、启动下一个线程循环、停止当前线程循环、停止所有线程、停止测试计划以及立即停止测试计划等

取样器

JMeter中的取样器(Sampler)是执行性能测试的关键组件之一,用于模拟用户请求并收集相应的请求和响应数据。

常用取样器

  1. HTTP请求取样器 :用于模拟HTTP请求,测试Web应用程序的性能。它支持HTTPS协议,可以设置请求头、参数化、Cookie管理等。
  2. Debug Sampler:用于在测试过程中输出调试信息,如请求的参数、响应的状态码、响应的内容等。这对于调试测试计划或查看请求和响应的详细信息非常有用。但需要注意的是,Debug Sampler会记录大量的详细信息,可能会导致测试结果文件变得很大,因此不建议在生产环境中使用。
  3. 其他取样器:JMeter还提供了其他类型的取样器,如FTP请求取样器、JDBC请求取样器等,用于模拟不同类型的请求。

使用注意事项

  • 配置元件:在使用取样器时,通常需要配置一些元件,如HTTP Cookie管理器、CSV数据文件设置等,以模拟真实用户的请求环境。
  • 监听器:可以使用监听器查看取样结果,如查看结果树、聚合报告等,以便对测试结果进行分析和评估。
  • 作用域:取样器不存在作用域问题,但其他配置元件、定时器、断言等会作用于范围内的取样器。
  • 执行顺序:取样器是按照树上顺序从上到下执行的,因此需要注意取样器的排列顺序

断言

JMeter中的断言是用于验证服务器响应是否正确的测试元素,它会检查服务器响应中的部分或全部内容,并在响应不符合预期时标记该请求为失败。以下是对JMeter断言的详细介绍:

一、断言的作用

断言在测试过程中起着至关重要的作用,它相当于检查点,用于判断系统返回的响应结果是否正确,从而帮助测试人员判断测试是否通过。通过使用断言,可以确保应用程序的响应满足预期,提高测试的准确性和效率。

二、断言的类型

JMeter提供了多种类型的断言,以适应不同的测试场景和需求。以下是一些常用的断言类型:

  1. 响应断言

    • 用于验证服务器返回的响应内容是否符合预期。
    • 可以对响应文本、响应代码、响应信息、响应头、请求头、请求数据等字段进行断言。
    • 支持多种模式匹配规则,如包括、匹配、相等、字符串等。
  2. JSON断言

    • 专门用于验证响应结果为JSON格式的请求。
    • 可以使用JSON Path表达式来指定要断言的字段和值。
    • 支持对字段值进行正则匹配或精确匹配。
  3. 大小断言

    • 用于验证服务器响应的大小是否在指定范围内。
    • 可以对完整响应、响应头、响应的消息体、响应代码、响应信息等字段进行大小断言。
    • 支持等于、大于、小于、不等于等比较类型。
  4. 持续时间断言

    • 用于验证服务器响应是否在指定时间内返回。
    • 可以设置响应时间范围,任何超过该范围的响应都将被标记为失败。
  5. BeanShell断言

    • 提供了一种自定义断言脚本的方式。
    • 可以使用BeanShell脚本语言编写自己的判断逻辑。
    • 适用于需要复杂逻辑判断的断言场景。
  6. 其他断言

    • JMeter还支持其他类型的断言,如XPath断言、比较断言等。
    • 这些断言类型适用于特定的测试场景和需求。

三、断言的配置

在JMeter中配置断言通常需要在测试计划中选择需要添加断言的Sampler,然后右键单击该Sampler并选择“Add”->“Assertions”->相应的断言类型。在断言配置窗口中,可以设置要检查的字段、匹配规则、预期值等参数。

四、断言的使用注意事项

  1. 选择合适的断言类型:根据测试需求和响应格式选择合适的断言类型。
  2. 设置合理的匹配规则和预期值:确保匹配规则和预期值能够准确反映预期的响应内容。
  3. 注意断言的作用范围:根据需要设置断言的作用范围,如作用于父节点取样器及对应子节点取样器等。
  4. 避免过度使用断言:过多的断言会增加测试计划的复杂性和执行时间,因此应合理控制断言的数量和复杂度。

监听器

JMeter监听器是JMeter测试计划中的重要组件,用于收集和显示测试结果。以下是对JMeter监听器的详细介绍:

一、监听器的作用

  1. 实时收集数据:监听器可以实时收集JMeter测试执行过程中的数据,包括请求和响应的各种信息。
  2. 显示测试结果:监听器以不同的方式展示收集到的测试结果,如树状结构、表格、图形等,便于测试人员直观了解测试情况。
  3. 分析测试结果:通过监听器,测试人员可以对测试结果进行分析和评估,如查看响应时间、吞吐量、错误率等指标,以评估系统的性能表现。
  4. 生成测试报告:监听器可以生成测试报告,汇总测试结果和性能指标,方便团队成员共享和讨论测试结果。

二、监听器的类型

JMeter提供了多种类型的监听器,以适应不同的测试需求和场景。以下是一些常用的监听器类型:

  1. 查看结果树:以树状结构组织显示所有取样器的响应。通过查看结果树,可以查看任意取样器的响应信息,并提供多种不同的视图查看响应结果。但请注意,生成查看结果树需要消耗大量的系统资源(如CPU、内存等),因此在负载测试期间不得使用。
  2. 聚合报告:为测试中的每个不同名称的请求创建一个表记录。对于每个请求,它统计了响应信息并提供请求计数、最小值、最大值、平均值、错误率、近似吞吐量(请求/秒)和每秒千字节吞吐量等关键性能指标。
  3. 后端监听器:可以将事务或采样器在某个时间范围内执行的结果发送给外部系统(如Graphite、InfluxDB等),以便进行进一步的分析和可视化。
  4. 汇总报告:与聚合报告类似,但提供了更详细的测试结果汇总信息。
  5. 汇总图:以图形的方式展示测试结果汇总信息,便于测试人员直观了解测试趋势和性能瓶颈。
  6. 断言结果:用于查看断言的成功和失败数,帮助测试人员定位问题所在。
  7. 响应时间图:以图形的方式展示各事务和采样器的响应时间,便于测试人员分析系统响应时间的变化情况。

三、监听器的配置和使用

在JMeter中配置监听器通常需要在测试计划中选择需要添加监听器的Sampler或线程组,然后右键单击并选择“Add”->“Listener”->相应的监听器类型。在监听器配置窗口中,可以设置相关参数,如文件名、输出格式、匹配规则等。

使用监听器时,需要注意以下几点:

  1. 选择合适的监听器类型:根据测试需求和场景选择合适的监听器类型。
  2. 合理配置参数:根据测试需求合理配置监听器的参数,以确保收集到准确、有用的测试数据。
  3. 注意资源消耗:部分监听器(如查看结果树)会消耗大量的系统资源,因此在负载测试期间应谨慎使用。
  4. 定期查看和分析测试结果:通过定期查看和分析监听器生成的测试结果,可以及时发现和解决问题,提高测试效率和准确性。


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

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

相关文章

【日志】Unity3D模型导入基本问题以及浅谈游戏框架

2024.10.22 真正的谦逊从来不是人与人面对时的谦卑,而是当你回头看那个曾经的自己时,依旧保持肯定与欣赏。 【力扣刷题】 暂无 【数据结构】 暂无 【Unity】 导入外部模型资源报错问题 在导入外部资源包的时候一般都会报错,不是这个资源模…

NVR小程序接入平台/设备EasyNVR多品牌NVR管理工具/设备的多维拓展与灵活应用

在数字化安防时代,NVR批量管理软件/平台EasyNVR作为一种先进的视频监控系统设备,正逐步成为各个领域监控解决方案的首选。NVR批量管理软件/平台EasyNVR作为一款基于端-边-云一体化架构的国标视频融合云平台,凭借其部署简单轻量、功能多样、兼…

优化多表联表查询的常见方法归纳

目录 一、使用mybatis的嵌套查询 二、添加表冗余字段,减少联表查询需求 三、分表预处理,前端再匹配 一、使用mybatis的嵌套查询 【场景说明】 前端需要展示一张列表,其中的字段来源于多张表,如何进行查询优化? 【…

鸿蒙网络编程系列32-基于拦截器的性能监控示例

1. 拦截器简介 在Web开发中拦截器是一种非常有用的模式,它允许开发者在请求发送到服务器之前或响应返回给客户端之前执行一些预处理或后处理操作。这种机制特别适用于需要对所有网络请求或响应进行统一处理的情况,比如添加全局错误处理、请求头的修改、…

PostgreSQL中触发器递归的处理 | 翻译

许多初学者在某个时候都会陷入触发器递归的陷阱。通常,解决方案是完全避免递归。但对于某些用例,您可能必须处理触发器递归。本文将告诉您有关该主题需要了解的内容。如果您曾经被错误消息“超出堆栈深度限制”所困扰,那么这里就是解决方案。…

电脑视频剪辑大比拼,谁更胜一筹?

随着短视频的火爆,越来越多的人开始尝试自己动手制作视频,无论是记录生活点滴还是创作个性短片,一款好用的视频剪辑软件是必不可少的。今天,我们就从短视频运营的角度,来聊聊几款热门的电脑视频剪辑软件,看…

FineReport 数据筛选过滤

从大量的数据当中,获取到符合条件的数据,经常会使用到数据筛选过滤功能,在FineReort产品中实现筛选过滤的方法有三种 1)直接通过 SQL 语句取出满足条件的的数据,如修改数据集 SQL 语句为:SELECT * FROM 订单…

YOLOv8改进,YOLOv8采用WTConv卷积(感受野的小波卷积),二次创新C2f结构,ECCV 2024

摘要 WTConv(基于小波变换的卷积层),用于在卷积神经网络(CNN)中实现大感受野。作者通过利用小波变换,设计了一个卷积层,可以在保持少量可训练参数的情况下大幅扩大感受野。WTConv 被设计为可以无缝替换现有 CNN 架构中的深度卷积层,适用于图像分类、语义分割、物体检测…

Vue-插槽slot

当我们封装一个组件时,不希望里面的内容写死,希望使用的时候能够自定义里面的内容,这时我们就需要使用到插槽 插槽是什么呢 插槽是子组件提供给父组件的一个占位符,用slot标签表示,父组件可以在这个标签填写任何模板代…

3DMAX碎片生成器插件FragmentGenerator使用方法

3DMAX碎片生成器FragmentGenerator插件,主要应用于科研绘图方面,一键从选择对象体积上生成若干不规则大小凌乱排列的三角形面。 【适用版本】 3dMax2015 – 2025(不仅限于此范围) 【安装方法】 FragmentGenerator插件无需安装&a…

基于vue框架的的二手数码产品回收管理系统bodx1(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,产品分类,产品信息,预约回收,回收员,产品回收 开题报告内容 基于Vue框架的二手数码产品回收管理系统开题报告 一、课题背景及意义 随着科技的快速发展和消费者生活水平的提高,数码产品的更新换代速度日益加快&#x…

网络安全中的日志审计:为何至关重要?

在数字化时代,网络安全已成为企业和组织不可忽视的重要议题。随着网络攻击手段的不断进化,保护信息系统和数据安全变得日益复杂和具有挑战性。在这种背景下,日志审计作为一种关键的信息安全和网络管理工具,发挥着至关重要的作用。…

软考(网工)——局域网和城域网

文章目录 🕐局域网基础1️⃣局域网和城域网体系架构 IEEE(负责链路层)2️⃣局域网拓扑结构 🕑CSMA/CD1️⃣CSMA/CD2️⃣CSMA/CD三种监听算法3️⃣冲突检测原理 🕒二进制指数退避算法1️⃣ 二进制指数退避算法 &#x1…

envoyFilter导致的webSockets协议无法正常工作

一、背景 生产项目有一个socket请求经过网关一直无法响应,其它接口服务都能正常处理。 二、 处理过程 让租户提供对应的模拟请求接口,然后进行模拟请求测试,并查看envoy网关日志,发现在发起请求时,envoy网关日志是无法…

解密 Redis:如何通过 IO 多路复用征服高并发挑战!

文章目录 一、什么是 IO 多路复用?二、为什么 Redis 要使用 IO 多路复用?三、Redis 如何实现 IO 多路复用?四、IO 多路复用的核心机制:epoll五、IO 多路复用在 Redis 中的工作流程六、IO 多路复用的优点七、IO 多路复用使用中的注…

CTF(四)

导言: 本文主要讲述在CTF竞赛中,web类题目file_include。 靶场链接:攻防世界 (xctf.org.cn) 一,观察页面。 可以看到一段php代码。从则段代码中我们可以知道: 1,使用include引入check.php文件&#xff…

排序算法 —— 快速排序(理论+代码)

目录 1.快速排序的思想 2.快速排序的实现 hoare版 挖坑法 前后指针法 快排代码汇总 3.快速排序的优化 三数取中 小区间优化 三路划分 4.快速排序的非递归版本 5.快速排序总结 1.快速排序的思想 快速排序是一种类似于二叉树结构的排序方法。其基本思想为从待排序序…

【前端】如何制作一个自己的网页(15)

有关后代选择器的具体解释&#xff1a; 后代选择器 后代选择器使用时&#xff0c;需要以空格将多个选择器间隔开。 比如&#xff0c;这里p span&#xff0c;表示只设置p元素内&#xff0c;span元素的样式。 <style> /* 使用后代选择器设置样式 */ p span { …

给EXE添加网络验证激活码(卡密)

介绍 网络验证可以理解为给EXE文件添加一个激活码, 用户在打开EXE文件时, 需要输入激活码, 输入后, 通过网络验证激活码, 如果激活码有效用户便可以继续使用软件. 网络验证可以生成静态激活码(也就是卡密), 再需要使用的时候直接发给用户即可, 无需像离线一机一码加密那样需要…

漏洞挖掘 | 基于mssql数据库的sql注入

前记 今天挖edu随意点开个站&#xff0c;发现存在mssql数据库的sql注入&#xff0c;在此分享下整个挖掘过程 目录 0x1 判断网站数据库类型 0x2 了解mssql数据库的主要三大系统表 0x3 了解mssql的主要函数 0x4 判断注入点及其注入类型 0x5 联合查询之判断列数 0x6 联合查询之…