CODE

package com.functions;

import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class Plus extends AbstractFunction {

private Object[] values;//声明变量values用来接用户输入的参数;为什么是Object,用户输入的不代表是int型的数据
private CompoundVariable first,second;//存储第一个和第二个参数

/*
*执行方法
* @param sampleResul
* @param sampler
* @return
* @throws InvalidVariableException
*/
public String execute(SampleResult sampleResult, Sampler sampler) throws InvalidVariableException {
System.out.println("execute run!!!");

first = (CompoundVariable) values[0];//强转,因为定义first时,定义的是CompoundVariable
System.out.println("第一个参数是" + first);
second = (CompoundVariable) values[1];
System.out.println("第二个参数是" + second);

int count = new Integer(first.execute().trim()) + new Integer(second.execute().trim());//声明一个“和”变量;将first和second转换为int,将两段空格去掉

System.out.println("两数相加的合是" + count);
return String.valueOf(count); //因为public接收的是string,所以返回去转成string
}

/*
*设置参数,接收用户传递的参数
* @param collection
* @throws InvalidVariableException
*/
public void setParameters(Collection<CompoundVariable> collection) throws InvalidVariableException {
checkMinParameterCount(collection,2);//有两个参数,这个方法是apacheJmeter自带的检查参数写的是否合法,接收参数
values = collection.toArray();//接收到用户输入的参数,把它变成一个数组
System.out.println("setParameters run!!!");
}

/*
* 功能名称
* @return
*/
public String getReferenceKey() {
System.out.println("getReferenceKey run!!!");
return "__MyDemoPlus";
}

/*
* 功能描述,参数描述
* @return
*/
public List<String> getArgumentDesc() {
System.out.println("getArgumentDesc run!!!");
List desc = new ArrayList();
desc.add("第一个数字");//第一行参数展示
desc.add("第二个数字");//第二行参数展示
return desc;
}
}

Step

敲代码打包放到Jmeter目录Jmeter重启校验添加__MyDemoPlus函数,运用出结果,OK简单的函数助手开发完成

Jmeter扩展组件开发(10) - 自定义扩展函数助手的开发的更多相关文章

  1. Jmeter扩展组件开发(1) - 创建maven工程

    前言 没有安装IDEA的伙伴先安装.url:https://www.cnblogs.com/gltou/p/14956060.html 扩展开发实现的两种方式 继承AbstracJavaSampler ...

  2. JMeter扩展插件实现对自定义协议进行支持 转

    本文版权归xmeter.net 所有.欢迎转载,转载请注明出处. 摘要## JMeter本身提供了插件机制,允许第三方扩展JMeter以支持JMeter不支持的协议的测试.本文以扩展一个简单的Apac ...

  3. Jmeter扩展组件开发(8) - 函数助手扩展开发demo

    前提条件 1.pom文件引用ApacheJMeter_functions包 <dependency> <groupId>org.apache.jmeter</groupI ...

  4. Jmeter扩展组件开发(7) - 自定义java请求的开发

    CODE package com.demo;import org.apache.jmeter.config.Arguments;import org.apache.jmeter.protocol.ja ...

  5. Jmeter扩展组件开发(4) - 自定义参数的实现

    CODE //URLNAME 就是在图形化界面当中显示的变量名称private static final String URLNAME = "URL";//设置界面当中默认显示的变 ...

  6. Jmeter扩展组件开发(6) - 将响应结果数据显示到查看结果树中

    CODE //用来存储响应数据,目的是将响应结果放到查看结果树当中private String resultData;/** 这个方法就是实现你具体功能逻辑的方法* @param javaSample ...

  7. Jmeter扩展组件开发(2) - 扩展开发第一个demo的实现

    maven工程src目录介绍 main:写代码 main/java:写Java代码 main/resources:写配置文件 test:写测试代码 test/java demo实现 创建Package ...

  8. Jmeter扩展组件开发(5) - 初始化方法的作用与实现

    CODE //URLNAME 就是在图形化界面当中显示的变量名称private static final String URLNAME = "URL";//设置界面当中默认显示的变 ...

  9. Jmeter扩展组件开发(3) - 实现方法

    继承JavaSamplerClient,四种实现方法讲解 前提 JavaSamplerClient要把四种实现方法都继承,编译器才不会报错. com.demo(package包)右键新建一个secon ...

随机推荐

  1. Java 多线程与并发【原理第一部分笔记】

    Java 多线程与并发[原理第一部分笔记] Synchronized synchronized的基本含义以及使用方式 在Java中线程安全问题的主要诱因就是存在共享数据(也称为临界资源)以及存在多条线 ...

  2. SQL 练习32

    查询不及格的课程 SELECT * from Course WHERE CId IN (SELECT cid from sc WHERE score < 60 GROUP BY cid)

  3. Quartz任务调度(1)概念例析快速

    实例解析概念 在quartz中,有几个核心类和接口:Job.JobDetail.Trigger.Calendar.Scheduler.下面我们结合实例来分析这些类的角色定位.现在我们有一个新闻网站,它 ...

  4. 四:HttpServletRequest对象

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  5. 关于 java编程思想第五版 《On Java 8》

    On Java 8中文版 英雄召集令 这是该项目的GITHUB地址:https://github.com/LingCoder/OnJava8 广招天下英雄,为开源奉献!让我们一起来完成这本书的翻译吧! ...

  6. ubuntu 查看系统信息

    1.系统信息 uname -a 显示linux的内核版本和系统是多少位的:X86_64代表系统是64位的. Linux field-ubuntu-18 4.15.0-20-generic #21-Ub ...

  7. 关于在mysql和oracle中编码对varchar等类型的影响

    今天在测试oracle的时候发现,我用varchar2(10),的字段,居然存不下"凯尔特人"四个字符:和我在学习mysql中显然是不一样的,查阅资料发现: mysql 5.0 之 ...

  8. 阿里云搭建elk

    参考了阿里云搭建ELK日志平台安装过程. 系统环境 阿里云ECS 2C2G CentOS 7.6 请确保机器配置至少4G!!! 配置秘钥 1.下载并安装公共签名密钥 [root@aliplay ~]# ...

  9. rollup 使用babel7版本的插件rollup-plugin-babel,rollup-plugin-babel使用报错解决办法。

    最近在研究rollup,想吐槽下rollup的官方文档写的真的太简单了,而且照着文档一步步来还报错,说明文档年代有点久远啊... 照着文档使用rollup-plugin-babel报错,首先打开rol ...

  10. JAVA《多线程多人上线通知案例》

    package com.wangbiao.palyermanager; import com.wangbiao.player.Player; /** * TODO * * @author wangbi ...