当前位置: 首页 > news >正文

Jmeter基础知识详解

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

JMeter 介绍: 一个非常优秀的开源的性能测试工具。

优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来。

从性能工具的原理划分:

Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:

(1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。

(2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。

(3)资源生成器:用于生成测试过程中服务器、负载机的资源数据。

(4)报表生成器:根据测试中获取的数据生成报表,提供可视化的数据显示方式。

测试计划元件

Test Plan (测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就说本的性能测试的所有内容是于基于一个计划的。

下面看一下一个计划下面都有哪些主要的功能模块(右键单击“测试计划”弹出菜单)。

Threads (Users)线程 用户

虽然有三个添加线程组的选项,名字不一样, 创建之后,其界面是完全一样的。之前的版本只有一个线程组的名字。现在多一个setUp theread Group 与terDown Thread Group

1) setup thread group

一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

2) teardown thread group.

一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

可能你还是不太理他们与普通的线程组有什么不同。 如果您用过junit,想必你不会对setup ,teardown这2个字眼陌生。 即时每用过,也没关系。 熟悉loadrunner的应该知道,loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块。 那么这里 setup thread group 和 teardown thread group 就是分别指这两部分。 其实从本质上来看,他们并没有什么不同。

3) thread group(线程组).

这个就是我们通常添加运行的线程。通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

测试片段(Test Fragment)

测试片段是在2.5版本之后新加的一个选项。

测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

控制器

JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。

取样器(Sampler)

取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。(在jmeter 的所有sampler 中,Java Request Sampler 和 Beanshell Request Sampler 是两种特殊的可定制的 Sampler ,后面会深入讨论。)

逻辑控制器(Logic Controller)

逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。

配置元件(Config Element)

配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改Sampler的默认数据。(例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的cookie 进行管理)

定时器(Timer)

定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

前置处理器(Per Processors)

用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当RUL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID 。

后置处理器(Post Processors)

用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,XPath Extractor 则可以用于提取响应数据中通过给定XPath 值获得的数据。

断言(Assertions)

断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。

监听器(Listener)

这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。 图行结果、查看结果树、聚合报告。都是我们经常用到的元件。

到此,我们已经简单了解了jmeter的基本组成原件,我们后序的性能测试工作也就是使用这些元件来完成测试任务。

写在最后

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

http://www.jsqmd.com/news/1107353/

相关文章:

  • Linux无线网卡兼容性难题:RTL8821CU驱动深度配置指南
  • 电子系统散热管理:从芯片级到系统级的优化策略
  • 2026进口闸阀品牌排行榜
  • 计算机毕业设计之河北经贸大学毕业生就业跟踪系统
  • Agent工作流编排的“可控性”难题:SwarmFlow的解决方案
  • 如何在Windows和Mac电脑上录制特定窗口
  • GitHub Copilot × IDEA效率黑盒拆解(仅限内部技术团队流通的LLM token调度策略)
  • Krita Vision Tools深度解析:AI智能选区工具的创新应用实战指南
  • 铜钟音乐:5分钟掌握纯净无干扰的免费听歌平台终极指南
  • Redis 连接失败对网站的影响:何时该先测网络再查缓存
  • KMX63与PIC18F87J10实现低成本自然交互方案
  • 从工具到思维:2025年,AI模型如何重写产业规则?
  • MANO手部模型完整指南:从零开始构建3D手部动画
  • 终极隐私保护方案:Boss-Key老板键一键隐藏Windows窗口的完整教程
  • 大型项目验证的企业级 Vue3 项目架构模板 从零到生产可用的架构骨架
  • 从新手到Expert:IDEA项目导入报错响应时效对比——手动排查需47分钟 vs 自动化脚本仅8.3秒(实测数据+可复现Demo)
  • 如何用Resynthesizer插件实现专业级图像修复与纹理合成:GIMP用户的终极指南
  • MeEdu开源网校系统:如何构建高可用、低成本的视频点播平台架构
  • Nexus 搭建 npm 私有仓库:3 步配置 npm-proxy 代理与 5 个包发布避坑要点
  • Android视频播放终极指南:5种比例模式适配告别黑边烦恼
  • 3步搞定视频下载难题:Parabolic让你的下载体验焕然一新
  • 地区定向住宅代理怎么配置?别只看 IP 库,要看页面证据
  • 关于人工智能辅助驾驶
  • 国产鼎讯 DXA-601:以 “芯” 动力,护航能源光缆抢修
  • 我说MySQL每张表最好不超过2000万条数据,面试官让我回去等通知?
  • Sunshine游戏串流主机:如何用3步打造你的私人游戏云服务
  • 企业级文本到SQL技术:CSR-RAG高效检索系统解析
  • AI大模型到底改变了什么?这5个真相你必须知道
  • 芯片替代最怕“参数看着都一样”:上板前必须过的7层验证
  • 从零发布 npm 包:AI编程工具实战 5 步完成私有仓库配置与版本发布