欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第一个Jmeter插件开发

程序员文章站 2022-07-07 12:27:34
...

以Jmeter的Function(函数)组件作为插件开发

 

什么是Jmeter的Function组件?

Function组件:jmeter-->选项-->函数助手对话框,打开函数助手

功能:通过下拉菜单,查看JMeter为我们默认提供的一系列实用的函数功能,使用函数非常简单,比如”__UUID”函数,功能是生成一个uuid,在后面的输入框中只需输入”${__UUID}”便可以引入调用该函数方法所返回的uuid值,所有的组件都可以对函数组件进行引入。
第一个Jmeter插件开发

 

插件开发方法有两种

第一种:直接在jmeter官网下载 jmeter开源包,在源码里面新加函数,然后导出jar!

第二种:不需要下载源码,直接导入jmeter相应的jar包,即可立即开发!

推荐使用第二种方法,下面都是以第二种方法为例。

 

一个用于测试的Sampler插件

功能:一个专门用于测试函数或自定义变量输出的Sampler

名称:TestSampler

开发方式:分离法,分为逻辑控制部分TestSampler和GUI部分TestSamplerGUI

 

一、开发前准备

1、创建Java工程,File-->New-->Project,选择maven工程默认配置,next-->命名为TestSampler-->next第一个Jmeter插件开发

 

 

2、在Java工程中引入主要的JMeter插件开发jar包

主要的JMeter插件开发jar包:取jmeter安装目录\lib\ext

  • ApacheJMeter_components.jar
  • ApacheJMeter_core.jar
  • jorphan.jar
  • logkit-2.0.jar

第一个Jmeter插件开发

第一个Jmeter插件开发

 

二、代码开发

1、TestSampler类代码

Sampler的主要实现方法:通过重写sampler方法,实现执行一次抽样方法;

在此处输出”function”属性所对应的值,即输出GUI界面所引入的函数方法的返回结果。 

import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;

/**
 * @author nikey
 * @date 2020/3/30
 */
public class TestSampler extends AbstractSampler {
    public final static String FUNCTION = "function";

    @Override
    public SampleResult sample(Entry entry) {
        SampleResult result = new SampleResult();
        result.sampleStart();
        // 输出GUI界面所输入的函数方法的返回结果
        System.out.println(this.getProperty(FUNCTION));
        result.sampleEnd();
        result.setSuccessful(true);
        return result;
    }
}

2、TestSamplerGUI类代码

通过modifyTestElement方法,将functionTextField输入框中所输入的值,赋给TestSampler对象的function属性。

import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
import org.apache.jmeter.testelement.TestElement;

import javax.swing.*;
import java.awt.*;

/**
 * @author nikey
 * @date 2020/3/30
 */
public class TestSamplerGUI extends AbstractSamplerGui {
    private JTextField functionTextField = null;
    public TestSamplerGUI(){
        init();
    }

    @Override
    public void configure(TestElement element) {
        super.configure(element);
        functionTextField.setText(element.getPropertyAsString(TestSampler.FUNCTION));
    }

    private void init() {
        JPanel mainPanel = new JPanel(new GridBagLayout());
        functionTextField = new JTextField(20);
        mainPanel.add(functionTextField);
        add(mainPanel);
    }

    @Override
    public TestElement createTestElement() {
        // 创建所对应的Sampler
        TestElement sampler = new TestSampler();
        modifyTestElement(sampler);
        return sampler;
    }

    @Override
    public String getLabelResource() {
        return this.getClass().getSimpleName();
    }

    @Override
    public void modifyTestElement(TestElement sampler) {
        super.configureTestElement(sampler);
        if(sampler instanceof TestSampler){
            TestSampler testSampler = (TestSampler) sampler;
            testSampler.setProperty(TestSampler.FUNCTION,functionTextField.getText());
        }
    }

    @Override
    public String getStaticLabel() {
        // 设置显示名称
        return "TestSampler";
    }

    private void initFields(){
        functionTextField.setText("");
    }

    @Override
    public void clearGui() {
        super.clearGui();
        initFields();
    }
}

3、项目目录结构

第一个Jmeter插件开发

 

三、插件打jar包

1、点击 File-->Project Structure(快捷键 Ctrl + Alt + Shift + s),点击Project Structure界面左侧的“Artifacts”如图: 第一个Jmeter插件开发

 

2、Artifacts-->"+",选jar,选择from modules with dependencies,后有配置窗口出现,配置完成后,勾选Include in project build-->ok保存

第一个Jmeter插件开发

第一个Jmeter插件开发

 第一个Jmeter插件开发

 

3、菜单:Build-->Build Project

 第一个Jmeter插件开发

 

注意:如果编译报错,检查编译器版本是否正确,检查方法如下:

(1)File-->Settings-->Java Compiler,修改Target bytecode version版本为1.8

第一个Jmeter插件开发

(2)Project Structure-->Project/Modules版本改为1.8

第一个Jmeter插件开发

第一个Jmeter插件开发

 

4、去打包输出路径,找到jar包

Artifacts-->Output directory:D:\Nikey\Project\Repository\gitee\TestSampler\out\artifacts\TestSampler_jar

第一个Jmeter插件开发

 

四、Jmeter进行插件测试

1、将自研的jar包放入JMeter框架

D:\jmeter安装目录\lib\ext\TestSampler.jar

 

2、在线程组下添加TestSampler,输入被测试函数,运行该测试计划,检查控制台,控制台输出函数执行结果

操作:线程组右键-->添加-->TestSampler

第一个Jmeter插件开发

点击运行后,到控制台查看输出(察看结果树中,请求显示No data to display,响应显示为空)

输出了${__intSum(1,2,a)}函数运行后的结果,1+2=3

第一个Jmeter插件开发

 

 

 

相关标签: Jmeter