JMeter私人定制之取样器定制

JMeter私人定制之取样器定制

我们同样可以通过自定义全新的取样器来实现。本文以JMeter5.1.1版本为例,通过创建Maven项目来简单介绍如何自定义全新取样器来实现前端设备Web端登录。
开始之前,我们先了解下简单的开发流程:
1.首先,设计GUI布局,创建GUI类,也就是绘制一个页面(要实现AbstractSamplerGui类才能被JMeter加载)
2.其次,创建取样器处理类(要实现AbstractSampler类才能被JMeter加载)
3.最后,集成取样器,编译、打包,放到%JMETER_HOME%/lib/ext下

取样器GUI布局设计

取样器GUI布局设计如下:
在这里插入图片描述

创建Maven项目

步骤1 创建Maven工程(Maven工程项目创建这里不在赘述),创建后得到如下项目结构:
在这里插入图片描述

步骤2 在pom.xml文件中将JMeter相关的依赖包进行引入

<!--引入JMeter的依赖jar包;version与本地Jmeter版本一致-->
<dependencies>
    <dependency>
        <groupId>org.apache.jmeter</groupId>
        <artifactId>ApacheJMeter_core</artifactId>
        <version>5.1.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.jmeter</groupId>
        <artifactId>ApacheJMeter_java</artifactId>
        <version>5.1.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.jmeter</groupId>
        <artifactId>ApacheJMeter_http</artifactId>
        <version>5.4.3</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.76</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>9.0.27</version>
    </dependency>
</dependencies>

在这里插入图片描述
这里一定要引入JMeter相关的依赖包(ApacheJMeter_core/ApacheJMeter_java),只有引入相关的依赖包,才能继承相关的类和重新实现类中相应的方法。其他引入的包,根据设计需要,按照如上格式自行引入。

取样器GUI类实现

步骤1 导入依赖的JMeter类引用

//GUI类创建依赖
import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
import org.apache.jmeter.testelement.TestElement;
//GUI组件创建依赖
import com.test.jmeter.sampler.RPC3LoginSampler;
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jorphan.gui.JLabeledTextField;
import javax.swing.*;
import java.awt.*;

步骤2 新建Java类并继承以获取父类的能力

public class RPC3LoginSamplerGui extends AbstractSamplerGui

步骤3 定义全局变量,用于创建GUI组件

private JLabeledTextField ipAddressField;
private JLabeledTextField portField;
private JLabeledTextField userNameField;
private JLabeledTextField passwordField;

步骤4 定义构造器,初始化取样器页面

public RPC3LoginSamplerGui() {
   
    super();
    this.createPanel();
}

步骤5 根据GUI设计图,每一行单独看作一个组件,比如将“平台地址”一行看作一个组件进行绘制(其他同理)

private JPanel getIpAddressPanel() {
   
    ipAddressField = new JLabeledTextField();
    JLabel ipAddressLabel = new JLabel("平台地址:");
    ipAddressLabel.setLabelFor(ipAddressField);

    JPanel panel = new HorizontalPanel();
    panel.add(ipAddressLabel, BorderLayout.WEST);
    panel.add(ipAddressField, BorderLayout.CENTER);
    return panel;
}

步骤6 组件组装,从而获取取样器整个面板GUI

private void createPanel() {
   
    JPanel panel = new VerticalPanel();
    panel.add(getIpAddressPanel());
    panel.add(getPortPanel());
    panel.add(getUserNamePanel());
    panel.add(getPasswordPanel());
    //取样器-名称、注释头布局
    setLayout(new BorderLayout(0, 5));
    setBorder(makeBorder());
    add(makeTitlePanel(),BorderLayout.NORTH);
    //自定义面板布局
    add(panel, BorderLayout.CENTER);
}

步骤7 重写getStaticLabel方法,设置取样器页面上展示的名称

//导航菜单&取样器页面-取样器的名称
@Override
public String getStaticLabel(){
   
    return "RPC3LoginSampler";
}

步骤8 重写getLabelResource方法,和getStaticLabel的差别在于,getLabelResource会根据properties文件进行语言的国际化,优先采用getStaticLabel。需要与makeTitlePanel配合使用

//从message_zh_CN.prepertities读取
@Override
public String getLabelResource() {
   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔波儿灞爱霸波尔奔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值