JMeter教程
前言
为什么要撰写这样一个教程呢?
原因如下:
-
深入学习Jmeter
温故而知新,通过编写教程,我将更深入地学习JMeter。尽管我已经使用JMeter很长时间,但还有许多元件我并不十分了解。为了创作一个详尽且实用的JMeter教程,我需要精通JMeter的各个元件。因此,编写教程的过程成为了我的学习过程,通过反复回顾和整理知识,我能够更全面地掌握JMeter的使用技巧
-
分享知识
我深信知识具有强大力量,而这种力量应该共享。我愿意将我的所学分享给志同道合的朋友——也就是你们。通过分享知识,我不仅能够为他人提供帮助,还能够在这个过程中体验到一种内在的满足感。
-
结识朋友
这是我的第一个教程,后续也会编辑更多的教程。希望能通过这一行为与各位取得交流,与大家一起讨论更多的事情。
此教程的部分内容引用来源如下:
注意:
此教程基于Jmeter-5.6.2版本。
本文中示例接口仅在本地局域网内可用。后续我会将这些接口打包并提供下载
关于Jmeter
JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
我们为什么使用Jmeter
- 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件
- 支持接口测试,压力测试等多种功能,支持录制回放,入门简单
- 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试
- 多平台支持,可在Linux,Windows,Mac上运行selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
主要组件介绍
(1)测试计划(Test Plan)
是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器。
(2)线程组(Thread Group)
代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
(3)取样器(sampler)
定义实际的请求内容,被线程组包含,我们主要用HTTP请求。
(4)监听器(Listener)
负责收集测试结果,同时也被告知了结果显示的方式。我们常用的包括:聚合报告、察看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。
(5)逻辑控制器(Logic Controller)
可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
其分为循环控制器和事务控制器。
(6)断言(Assertions)
可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
(7)配置元件(Config Element)
维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config。
(8)前置处理器(Pre Processors)和后置处理器(Post Processors)
负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。
(9)定时器(Timer)
负责定义请求之间的延迟间隔。
(10)执行顺序(Execution sequence)
配置元件、前置处理器、定时器、取样器、后置处理器、断言、监听器
工作流程
JMeter通过模拟一组用户将请求发送到目标服务器。 随后,收集数据以通过各种格式计算目标服务器的统计和显示性能度量。
如下图所示:
本章节探讨了JMeter的由来及其作用,以及对JMeter主要组件的概要介绍、原理和流程的讨论。我们还探讨了为何选择使用JMeter进行性能测试,以及它在性能测试领域中的优势。通过对JMeter的整体了解,读者将更好地准备好深入学习和应用这个强大的性能测试工具。
标签:教程,JMeter,前言,处理器,测试,Jmeter,请求 From: https://www.cnblogs.com/EtherealBoyJiang/p/17969929/Foreword