JMeter:将提取的时间戳值转换为日期格式

时间:2017-01-04 10:37:40

标签: jmeter jmeter-plugins

我必须从响应中提取时间戳值,并且必须将其作为参数传递给下一个请求。 我从ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE:MAILTO:abc@xyz.com ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM="MAILTO:abc@xyz.com";CN=Henry Cabot:MAILTO:defghi@xyz.com ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO="MAILTO:abc@xyz.com";CN=The Big Cheese:MAILTO:cdef@xyz.com 中提取了时间戳值。 时间戳值为Regular Expression Extractor 要传递的值采用格式(1481086800000) - Month/Date/Year HH:mm

请提供有关如何将提取的时间戳值转换为上述日期格式的宝贵建议。

First JSR223 Sampler

First JSR223 Sampler

Debug Sampler

1 个答案:

答案 0 :(得分:4)

以下代码已将epoch timestamp直接转换为AKST timezone。不需要评论中建议的两个采样器。

添加JSR223 Sampler,选择Groovy并添加以下代码:

import java.text.*;
//long timeStamp =  Long.parseLong(vars.get("time"));
Date date = new Date(1481086800000); //replace the long value with timeStamp you captured.
DateFormat formatter = new SimpleDateFormat("MM/dd/YYYY HH:mm");

TimeZone tzInAmerica = TimeZone.getTimeZone("America/Anchorage");
formatter.setTimeZone(tzInAmerica);
String dateFormatted = formatter.format(date);
vars.put("newDate", dateFormatted); //access new value using ${newDate}, in your script.
log.info(dateFormatted);

截图参考:

enter image description here