关于Jmeter
JMeter是Apache组织开发的基于Java的开源压力测试工具。最初,它被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI脚本、Java对象、数据库、FTP服务器等。JMeter可以模拟巨大的负载,测试服务器、网络或对象在不同压力条件下的强度和性能。
JMeter的优点包括:
-
开源免费:基于Java编写,具有很高的可扩展性,可以集成到其他系统中并扩展各种功能插件。
-
多种测试功能:支持接口测试、压力测试等,且支持录制回放,入门简单。
-
友好的用户界面:相较于自己编写框架或其他开源工具,JMeter具有较为完善的UI界面,便于接口调试。
-
多平台支持:可在Linux、Windows、Mac等操作系统上运行。
-
功能/回归测试:通过创建带有断言的脚本来验证程序返回的结果是否符合预期。JMeter允许使用正则表达式创建断言,提供了极大的灵活性。
主要组件介绍
-
测试计划(Test Plan)
是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器。
-
线程组(Thread Group)
代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
-
取样器(sampler)
定义实际的请求内容,被线程组包含,我们主要用HTTP请求。
-
监听器(Listener)
负责收集测试结果,同时也被告知了结果显示的方式。我们常用的包括:聚合报告、察看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。
-
逻辑控制器(Logic Controller)
可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
其分为循环控制器和事务控制器。
-
断言(Assertions)
可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
-
配置元件(Config Element)
维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config。
-
前置处理器(Pre Processors)和后置处理器(Post Processors)
负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。
-
定时器(Timer)
负责定义请求之间的延迟间隔。
-
执行顺序(Execution sequence)
配置元件、前置处理器、定时器、取样器、后置处理器、断言、监听器
工作流程
JMeter通过模拟一组用户将请求发送到目标服务器。 随后,收集数据以通过各种格式计算目标服务器的统计和显示性能度量。
说明
本文基于JDK21、Jmeter-5.6.3测试编写,可能不适用于历史版本及未来版本。如果Jmeter在后续的新版本中有所变化,或者文中有错漏的地方,请联系我或评论。
Apache JMeter中文网-本系列教程中部分介绍文本引用于此
本系列文章中所有示例接口皆由python编写,如要使用示例接口请安装python3与pycharm。可点击下载压缩包,压缩包内包含接口源码和使用说明。
© 转载需要保留原始链接,未经明确许可,禁止商业使用。CC BY-NC-ND 4.0
...