关于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