3

API 応答の日付を使用しています。API からの日付は EST です。EST (技術的には EDT) の日付を UTC に変換し、値が UTC 形式の別の API 応答からの日付と比較する必要があります。

JMeterのJavascriptでこれをやろうとしています。「HTTP Request」サンプラーの子として「BSF PostProcessor」があります。

私の入力: endDate=2014-01-31T23:59:59

いくつかのオプションを試しましたが、どれも期待どおりの値を得ることができませんでした。それらはすべて私のデバッグサンプラーに戻ってきます..

myNewDate=無効な日付

dt1=無効な日付

vars.put("myendDate", vars.get("endDate"));
var dt = new Date('myendDate');
vars.put("dt1", dt.toUTCString());

var myDate = new Date('${endDate}');
vars.put("myNewDate", myDate.toUTCString());


var myDate = new Date('${endDate}');
myDate.toISOString();
vars.put("myDate1", myDate);

言語として Javascript を使用する BSF PostProcessor で、Date オブジェクトの作成に問題があると思います。

入力してください。

4

1 に答える 1

4

groovy-all.jar を jmeter/lib フォルダーに追加します

そして、Groovy および Compilation Cache キーと次のコードで JSR223Sampler を使用します。

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

SimpleDateFormat estFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
TimeZone gmtTime = TimeZone.getTimeZone("GMT");
TimeZone estTime = TimeZone.getTimeZone("EST"); 
estFormat.setTimeZone(estTime);
gmtFormat.setTimeZone(gmtTime); 
String endDate = vars.get("endDate");
Date endDateAsDate= estFormat.parse(endDate);
vars.put("dt1", gmtFormat.format(endDateAsDate));

その後、 ${dt1} を使用できます

于 2013-08-02T21:22:16.333 に答える