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. HTML界的“苏炳添”——详解Canvas优越性能和实际应用

    Google Docs宣布将会把HTML迁移到基于Canvas渲染,这一消息的出现再次把几年前随HTML5诞生的标签重新推到了人们视线之中.Canvas在刚推出时主打的优势就是更快的渲染速度,堪称HT ...

  2. NOIP 模拟 $27\; \rm 牛半仙的妹子图$

    题解 \(by\;zj\varphi\) 颜色数很少,考虑枚举颜色数. 建出来一棵最小生成树,可以证明在最小生成树上,一个点到另一个点的路径上的最大权值最小(易证,考虑 \(\rm kruskal\) ...

  3. pycharm使用Djiago创建第一个web项目

    安装PyCharm专业版(注意社区版创建Djiago需要配置,比较麻烦) 创建Djiago项目点上 1.Inherit glocal site-packages(不然pycharm不去下载Djiago ...

  4. 自定义Vue&Element组件,实现用户选择和显示

    在我们很多前端业务开发中,往往为了方便,都需要自定义一些用户组件,一个是减少单一页面的代码,提高维护效率:二个也是方便重用.本篇随笔介绍在任务管理操作中,使用自定义Vue&Element组件, ...

  5. QT 自定义控件 以及信号和槽的使用

    自定义login 控件 Login头文件 #ifndef LOGIN_H #define LOGIN_H #include <QWidget> namespace Ui { class L ...

  6. 同步(synchronized)

    转载至:https://www.cnblogs.com/dolphin0520/p/3923737.html 一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而在多线程编程中,有可能 ...

  7. 如何配置https

    1.创建证书:keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakey 其中姓氏和组织名称为登录时的域名:如localho ...

  8. 多线程编程<二>

    wait()与notify(): 1 public class ThreadComDemo { 2 public static void main(String[] args) { 3 try { 4 ...

  9. Servlet的特点及运行过程

  10. promise错误处理的三种方法

    promise碰到then,也就是resolve或者reject的时候是异步的,所以try...catch对它是没有用的 1.then(resolve,reject);  then方法中第二个回调,是 ...