1、达到效果:在jmeter的函数助手增加一个“timeStamp”函数,调用“timeStamp”函数可以将用户传入的时间转换为时间戳。

2、eclipse项目创建步骤此处省略,可参考上一篇Jmeter二次开发函数之入门

3、直接新建一个class命名为“TimeStampFunction”并继承jmeter自带的AbstractFunction

4、TimeStampFunction.java代码(逻辑为:创建key="__timeStamp",声明传入时间参数的处理方法,最终返回时间戳结果)

package org.apache.jmeter.functions;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedList;
import java.util.List; import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler; public class TimeStampFunction extends AbstractFunction {
private static String key="__timeStamp";
private static List<String> timeParams=new LinkedList<String>();
static
{
timeParams.add("请输入需要转换的时间(必填。填入的时间格式需为yyyy-MM-dd或者yyyy-MM-dd HH:mm:ss)");
}
public String time=""; @Override
public List<String> getArgumentDesc() {
return timeParams;
} @Override
public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {
// TODO Auto-generated method stub
String lastTime="";
System.out.print("用户传入时间为:"+time);
//当传入时间格式为yyyy-MM-dd则自动补充为yyyy-MM-dd HH:mm:ss
String relTime=time.length()==19?time:time+" 00:00:00";
try{
Date guitime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(relTime);
lastTime=String.valueOf(guitime.getTime());
System.out.print(relTime+"转换时间戳为:"+lastTime);
}catch (ParseException e){
e.printStackTrace();
lastTime="输入日期格式错误,请重新填入";
}
System.out.print("最终转换时间戳为:"+lastTime);
return lastTime;
} @Override
public String getReferenceKey() {
return key;
} @Override
public void setParameters(Collection<CompoundVariable> arg0) throws InvalidVariableException {
checkParameterCount(arg0,1);
Object[] data=arg0.toArray();
time=((CompoundVariable)data[0]).execute();
} }

5、将TimeStampFunction.java代码保存,导出到桌面并命名为TimeStampFunction.jar。将TimeStampFunction.jar复制到jmeter目录下\apache-jmeter-5.5\lib\ext\

6、重启jmeter,打开函数助手可以看到多了一个timeStamp函数,并且函数可以传入时间参数并获对应的时间戳

Jmeter自带函数也可以将指定时间转化为时间戳,参考Jmeter函数助手30-groovy

Jmeter二次开发函数 - 将指定时间转换为时间戳的更多相关文章

  1. JMeter 源码二次开发函数示例

    JMeter 源码二次开发函数示例 一.JMeter 5.0 版本 实际测试中,依靠jmeter自带的函数已经无法满足我们需求,这个时候就需要二次开发.本次导入的是jmeter 5.0的源码进行实际的 ...

  2. Jmeter二次开发——自定义函数

    在之前的博文中,Jmeter二次开发--基于Java请求,已介绍了Jmeter二次开发的基础情况,上次分享的是java请求开发,今天来分享下Jmeter中的函数开发.聊到Jmeter的函数,知道Jme ...

  3. JMeter二次开发(2)-编写 JSON Assertion 插件

    本篇文章主要介绍如何对JMeter进行二次开发,添加自己所需的功能.这里以Json验证为例进行说明.在web接口测试过程中,JSON的应用已经非常普遍,但原声的JMeter并没有提供Json及Json ...

  4. Jmeter二次开发实现自定义functions函数(九)

    在Jmeter->选项->函数助手对话框中我们可以看到Jmeter内置的一些常用函数,但考虑到测试过程中的实际情况,我们经常需要在脚本引用或者实现自定义的函数.那么如何在"函数助 ...

  5. jmeter 二次开发---实现自定义函数插件

    1.前提: 有时候,Jmeter自带的函数,可能不能满足于业务的需求,这时候,我们可以自己写一个函数插件: 2.创建maven工程 一直next,输入GroupID,ArtifactId->fi ...

  6. 性能测试基础---jmeter二次开发

    ·Jmeter的二次开发,常见的有以下几种类型: ·扩展.修改Jmeter已有的组件(源代码) ·扩展.修改Jmeter已有的函数. ·完全自主开发一个新的组件(依赖于Jmeter提供的框架). ·扩 ...

  7. JMeter二次开发(1)-eclipse环境配置及源码编译

    1.下载src并解压 http://jmeter.apache.org/download_jmeter.cgi   2.获取所需jar包,编译 ant download_jars ant instal ...

  8. 【NX二次开发】获取指定矩阵标识的矩阵值

    函数:UF_CSYS_ask_matrix_values () 函数说明:获取指定矩阵标识的矩阵值. 用法: #include <uf.h> #include <uf_csys.h& ...

  9. jmeter 二次开发

    基于jmeter的java请求的二次开发 常用的方法: ①.addArgument("name", "value")    定义参数 ②.sampleStart ...

  10. Jmeter二次开发——基于Java请求

    简述 这近几年,越来越多非http的协议需要进行性能测试,包括不仅限于各类rpc.mq.缓存等.对于这些协议,市面上可能没有现成的工具可以直接使用,这个时候,我们可以自己动手,通过编写相应的JavaS ...

随机推荐

  1. 对于 EI K 逆序对排列计数的另一种自然求和方法的理解

    有一个简单的 \(O(n^3)\) DP,考虑 \(f_{x + 1, k} = \sum_{j = 0}^{x} f_{x, k - j}\),利用前缀和优化即可. 考虑这实际上是 \(f_{x + ...

  2. CF1827

    CF1827 A. Counting Orders 简单计数. 两个都排序,双指针维护一下 a[i] 在 b[p] 的位置(a[i] <= b[p]). 那么方案数 \(\times (p - ...

  3. C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704

    C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704 环境说明: .NET Framework 4.6 的控制台程 ...

  4. SonarQube代码质量扫描工具

    1.什么是SonarQube 既然是学习devops 运维流水线构建 开发 ↓ 测试 ↓ 运维 华为devops软件开发流水线文档 https://support.huaweicloud.com/re ...

  5. Mybatis中#{}和${}的区别:

    简单来说 #{} 会在将参数加上引号,例如:   SELECT * FROM user WHERE username=#{username} ;   带上参数后的SQL语句即:   SELECT * ...

  6. JavaScript通过递归实现深拷贝

    思路 首先是用Object.prototype.toString.call(obj)来得到传入的值的类型,如果是几个基本类型,则直接返回值就可以了 如果是引用类型,则通过深拷贝函数递归进行再次拷贝. ...

  7. 【干货分享】.NET人脸识别解决方案

    前言 前段时间有同学在DotNetGuide技术社区交流群提问:.NET做人脸识别功能有什么好的解决方案推荐的吗?今天大姚给大家推荐2款.NET开源.免费.跨平台.使用简单的人脸识别库,希望可以帮助到 ...

  8. mysql自带test数据库表的默认属性:Collation latin1_swedish_ci 更新为utf8_general_ci,解决MYSQL数据库乱码

    ## mysql自带test数据库表的默认属性:Collation latin1_swedish_ci 更新为utf8_general_ci,解决MYSQL数据库乱码USE test;CREATE T ...

  9. transformer原理

    Transformer注意力架构原理 输入层 embedding词嵌入向量 将文本中词汇的数字表示转变为向量表示,在这样的高维空间捕捉词汇间的关系 语义相近的词语对应的向量位置也更相近 每个词先通过词 ...

  10. hdu 5072 coprime不完整题解

    Problem Description There are n people standing in a line. Each of them has a unique id number. Now ...