如何为Apache JMeter开发插件(一)

本文详细介绍了为何选择Apache JMeter作为性能测试工具,强调其可扩展性,允许通过编写插件完善组件。文章阐述了JMeter的基本组件类型,包括GUI和非GUI组件,并详细讲解了实现组件的两种方法。此外,还探讨了JMeter插件的实现细节,如GUI的图标映射、逻辑控制部分的实现,并列举了各种组件的实现示例,如线程组、配置元件、定时器等。最后,文章指出将自定义插件集成到JMeter框架只需将jar包放入指定路径。

为什么选择使用JMeter

当被问到这个问题的时候,也许你会在脑海里产生很多的理由,比如:

  • Apache基金会下的开源项目,没有版权问题;
  • 为数不多的还在持续更新的开源性能自动化测试工具;
  • 支持协议丰富,是商用测试工具最佳替代品;
  • 有专门的插件项目做支撑,使得你在实践中有更多的选择,比如http://jmeter-plugins.org/就提供了很多优秀的插件为你在使用JMeter执行测试时,可以选择更多的组件来制定测试计划,完成测试过程,监控测试数据。

而我的回答是:

关键在于不要简单地把JMeter理解为一个单纯的性能测试工具,而应该意识到它还是一个优秀的框架,这甚至成为我选择它的一个最根本理由,在这里所有的组件都可以通过自由编写插件的方式进行添加和完善,对于一个测试工程师来说为JMeter编写插件式组件其乐无穷!

JMeter基本组件类型及实现方法

对于JMeter的基本组件,我们可以将其简单的划分为两大类:

  • 一类是具备GUI的组件,即可以通过JMeter图形管理控制器在测试计划Tree中进行添加的组件,主要包括ThreadGroup(线程组)、Config(配置元件)、Timer(定时器)、Modifier(前置处理器)、Extractor(后置处理器)、Controller(逻辑控制器)、Sampler(测试抽样器)、Assertion(断言)和Listener(监听器);
  • 另一类是非GUI组件,这类组件典型的代表是Function(函数)和某些子测试抽样器,如JavaSamplerClient。

对于组件一般有两种实现方法:

  1. GUI与逻辑控制分离:GUI部分通过继承各种组件GUI抽象类,逻辑控制部分通过继承组件逻辑抽象类和实现各种接口方式从而实现不同组件的内部逻辑控制;
  2. GUI与逻辑控制不分离:与分离方法的区别在于不单独实现GUI部分,在逻辑控制部分通过实现TestBean接口方法从而实现对GUI界面的配置。

JMeter插件式组件实现细节概述

TestElement是所有组件的最基本单元,组件类都是TestElement类的子类,JMeter定义了上一章节所介绍的几种组件模型,并对其规范了各自所需发挥的作用。

(1)GUI部分的实现
GUI部分的实现我们可以在JMeter实现主类org.apache.jmeter.JMeter中发现端倪,该类实际实现了JMeterPlugin接口中的getIconMappings()方法来映射组件所对应的GUI图标,并为映射关系定义了一个二维数组,如下代码:

private static final String[][] DEFAULT_ICONS = {
        { "org.apache.jmeter.control.gui.TestPlanGui", "org/apache/jmeter/images/beaker.gif" },
        { "org.apache.jmeter.timers.gui.AbstractTimerGui", 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值