jmeter 二次开发---实现自定义函数插件
1.前提:
有时候,Jmeter自带的函数,可能不能满足于业务的需求,这时候,我们可以自己写一个函数插件;
2.创建maven工程

一直next,输入GroupID,ArtifactId->finsh

3.编辑pom.xml
创建好maven工程后,引入Jmeter的jar包,注意你本地Jmeter版本是几,这里<version></version>就写几
<dependency>
<groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId>
<version>3.3</version>
</dependency> <dependency>
<groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId>
<version>3.3</version>
</dependency>
4.创建一个package
实现扩展jmeterfunction,主要有两点:
1.实现function的类的package声明必须包含".functions"
2.需要继承org.apache.jmeter.functions.AbstractFunction,并且实现相应的方法
5.扩展类AbstractFunction讲解
public List<String> getArgumentDesc()
功能描述:顾名思义描述你写的这个方法是干嘛使的。
public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException
需要实现什么功能。
public String getReferenceKey()
返回function名称
public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException
设置参数,接收用户传递的参数
5.代码讲解
public class TicketNo extends AbstractFunction{
//添加方法描述
private static final List<String> desc = new LinkedList<String>();
static {
desc.add("ticketNo");
}
//function名称
private static final String KEY = "__JddTicketNo";
private static final int num = 1;
//传入参数的值
private Object[] values;
private Date data =new Date();
/**功能描述**/
public List<String> getArgumentDesc() {
// TODO Auto-generated method stub
return desc;
}
@Override
public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
try {
Thread.sleep(1000);
String ticket = String.valueOf(data.getTime())
System.out.println("当前输出"+ticket);
return ticket;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
throw new InvalidVariableException(e);
}
}
/**
* 设置参数。接收用户传递的参数
* @param collection
* @throws InvalidVariableException
* **/
@Override
public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
checkParameterCount(parameters, num);
values = parameters.toArray();
}
/**返回function名称**/
@Override
public String getReferenceKey() {
return KEY;
}
}
jmeter 二次开发---实现自定义函数插件的更多相关文章
- Jmeter二次开发实现自定义functions函数(九)
在Jmeter->选项->函数助手对话框中我们可以看到Jmeter内置的一些常用函数,但考虑到测试过程中的实际情况,我们经常需要在脚本引用或者实现自定义的函数.那么如何在"函数助 ...
- Jmeter二次开发——自定义函数
在之前的博文中,Jmeter二次开发--基于Java请求,已介绍了Jmeter二次开发的基础情况,上次分享的是java请求开发,今天来分享下Jmeter中的函数开发.聊到Jmeter的函数,知道Jme ...
- JMeter二次开发(2)-编写 JSON Assertion 插件
本篇文章主要介绍如何对JMeter进行二次开发,添加自己所需的功能.这里以Json验证为例进行说明.在web接口测试过程中,JSON的应用已经非常普遍,但原声的JMeter并没有提供Json及Json ...
- PHPCMS V9二次开发便捷自定义后台入口文件夹
phpcms v9二次开发便捷自定义后台入口文件夹 最新发布的phpcms v9由于采用了mvc的设计模式,所以它的后台访问地址是固定的,虽然可以通过修改路由配置文件来实现修改,但每次都修改路由配置文 ...
- JMeter二次开发(1)-eclipse环境配置及源码编译
1.下载src并解压 http://jmeter.apache.org/download_jmeter.cgi 2.获取所需jar包,编译 ant download_jars ant instal ...
- Jmeter二次开发
Jmater函数扩展的步骤1. 导入Jmeter源码,或使用maven项目,引入依赖的jar包 2. 继承AbstractFunction,实现自定义Function 3. 继承JMeterTestC ...
- 性能测试基础---jmeter二次开发
·Jmeter的二次开发,常见的有以下几种类型: ·扩展.修改Jmeter已有的组件(源代码) ·扩展.修改Jmeter已有的函数. ·完全自主开发一个新的组件(依赖于Jmeter提供的框架). ·扩 ...
- Jmeter二次开发——基于Java请求
简述 这近几年,越来越多非http的协议需要进行性能测试,包括不仅限于各类rpc.mq.缓存等.对于这些协议,市面上可能没有现成的工具可以直接使用,这个时候,我们可以自己动手,通过编写相应的JavaS ...
- Qt+QGIS二次开发:自定义类实现查询矢量数据的属性字段值(图查属性)
在GIS领域,有两种重要的查询操作,图查属性和属性查图. 本文主要介绍如何在QGIS中通过从QgsMapToolIdentify中派生自定义类实现查询矢量数据的属性字段值(图查属性). 重点参考资料: ...
随机推荐
- okvis代码解读
okvis_timing模块 提供时间转换的功能函数 okvis_util模块 包含 assert_macros.hpp 该文件包含一些有用的断言宏. source_file_pos.hpp 该文件 ...
- python web篇 创建数据库
python3 manage.py migrate ls sqlite3 使用单文件数据库,管理方便 运行测试 python manage.py runserver 输入http://127.0.0. ...
- [No000011D].NETCORE1/19-.NET Core 指南
.NET Core 是一个通用开发平台,由 Microsoft 和 GitHub 上的 .NET 社区共同维护.跨平台的,支持 Windows.macOS 和 Linux,并且可用于设备.云和嵌入式/ ...
- [No0000C8]英特尔快速存储IRST要不要装
IRST (英特尔快速存储技术)Intel Rapid Storage Technology(简称IRST)又称英特尔快速存储技术. Intel Rapid Start Technolog同样是简称( ...
- python,re模块正则
python没有正则需要导入re模块调用.正则表达式是为了匹配字符串,动态模糊的匹配,只要有返回就匹配到了, 没返回就没匹配到,前面是格式后面是字符串 最常用的匹配语法: re.match()#麦驰, ...
- LeetCode 590 N-ary Tree Postorder Traversal 解题报告
题目要求 Given an n-ary tree, return the postorder traversal of its nodes' values. 题目分析及思路 题目给出一棵N叉树,要求返 ...
- Java之旅_高级教程_多线程编程
摘自:http://www.runoob.com/java/java-multithreading.html Java 多线程编程 Java 给多线程编程提供了内置的支持.一条线程指的是进程中的一条执 ...
- liteide 去除go程序cmd窗口
http://blog.csdn.net/aqtata/article/details/53389261
- 洛谷 P3521 ROT-Tree Rotations [POI2011] 线段树
正解:线段树合并 解题报告: 传送门! 今天学了下线段树合并,,,感觉线段树相关的应用什么的还是挺有趣的,今天晚上可能会整理一下QAQ? 然后直接看这道题 现在考虑对一个节点nw,现在已经分别处理出它 ...
- java Date型时间比较大小
两个Date类型的变量可以通过compareTo方法来比较.此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0:如果此 Date 在 Date 参数之前,则返回小于 0 的值:如 ...