Jmeter(十二)_打印时间戳

本文介绍JMeter中使用时间戳函数实时获取当前时间的方法,以及通过BeanShellSampler实现时间偏移,打印未来或过去时间戳的技巧。

Jmeter中提供了一种函数,可以打印时间戳,如下图

  年: yyyy 月:MM 日:dd
  时: HH 分: mm 秒:ss

关于时间戳的格式,可以自由组合定义,这里我写成这样 yyyy-MM-dd HH:mm:ss

生成的函数是这样的:${__time(yyyy-MM-dd HH:mm:ss,)}

现在将这个函数写入下一个接口

执行,查看结果树,可以看到结果中,将当前时间打印出来了哦~

此函数适用于一些需要填写时间参数的接口,用于实时获取当前时间。时间参数如果写死的话,过段时间接口就会报错啦~

下面说一下时间偏移如何打印。

说到时间偏移,就是说我不光想打印当前时间,我还想打印明天,后台,甚至是明年的时间,那么我们要怎么去处理?这里就需要用到 BeanShell Sampler

在Parameters中传递变量,执行并查看结果树,发现成功打印了跨度为一年的时间戳

附:beanshell打印时间的代码

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

try{
Date date =new Date(); //获取当前时间
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowDate = sf.format(date);
Calendar cal = Calendar.getInstance();
cal.setTime(sf.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR,+0);
String orderDate = sf.format(cal.getTime());
cal.add(Calendar.DAY_OF_YEAR,+365);
String senderDate = sf.format(cal.getTime());
vars.put("orderDate",orderDate);
vars.put("senderDate",senderDate);

}
catch(Exception e){

}

JMeter的高阶使用方法包括以下几个方面: - **使用外部jar包**:从开发处获取jar包,在JMeter测试计划中添加该jar包,通过BeanShell Sampler进行调用并保存结果,之后可在其他地方直接使用转化后的变量,如 `${sha}` [^1]。 - **了解核心模块与技术细节**:JMeter采用模块化架构设计,核心模块有测试计划、线程模型和请求处理引擎。测试计划是测试逻辑的容器,线程模型基于Java线程池实现虚拟用户并发,通过Ramp - Up参数控制线程启动梯度,请求处理引擎采用事件驱动模型,每个Sampler由独立线程执行,通过Timer控制执行节奏。技术上,JMeter默认使用 `java.util.concurrent.ThreadPoolExecutor` 管理线程,当线程数超过CPU核心数时,可通过 `ulimit -n` 优化系统文件句柄限制;在高并发场景下,需调整JVM参数(如 `-Xmx` 设置堆内存)避免OOM错误 [^2]。 - **打印时间戳与年月时分秒**:可使用Beanshell代码实现。以下是示例代码: ```java import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; try{ Date date = new Date(); //获取当前时间 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowDate = sf.format(date); Calendar cal = Calendar.getInstance(); cal.setTime(sf.parse(nowDate)); cal.add(Calendar.DAY_OF_YEAR, +0); String orderDate = sf.format(cal.getTime()); cal.add(Calendar.DAY_OF_YEAR, +365); String senderDate = sf.format(cal.getTime()); vars.put("orderDate", orderDate); vars.put("senderDate", senderDate); } catch(Exception e){ } ``` 该代码能获取当前时间,并计算当前时间和一年后的时间,将结果保存为变量 [^3]。 - **使用JDBC协议获取数据**:使用JDBC协议从数据库获取数据后,返回的Jmeter变量有特定规则。变量值的前缀为JDBC请求中填写的内容,通过数字下标标识不同的值,如 `materialFidQ1_1` 为第一个值, `materialFidQ1_1000` 为第1000个值 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值