1
1

More than 5 years have passed since last update.

Apache JMeterで任意のタイムゾーンの現在時刻文字列変数を設定する

Posted at

JMeterのBSF Pre Processorでjavascriptを用いてゴリゴリする。

環境

  • Mac OS/X 10.7.5
  • JMeter 2.9

設定

BSF Pre Processorをこんな感じで
kobito.1381554878.157791.png

BSF Pre Processor Script の中身をこんな感じでゴリゴリ

// Parameters 第一引数 (変換後 のタイムゾーンオフセット [時])
var tzHoursOffset = args[0];
// Parameters 第二引数 (変換後 のタイムゾーンオフセット [分])
var tzMinutesOffset = args[1];

// 引数のタイムゾーンオフセットをミリ秒単位に変換
var tzOffset = tzHoursOffset*60*60*1000 + tzMinutesOffset*60*1000;

var localDate = new Date();
var localOffset = localDate.getTimezoneOffset() * 60000;
var utc = localDate.getTime() + localOffset;

var targetTime = utc + tzOffset;

var now = new Date(targetTime);
var year = now.getFullYear();
var month = zeroPadding(now.getMonth() + 1);
var date = zeroPadding(now.getDate());
var hour = zeroPadding(now.getHours());
var minutes = zeroPadding(now.getMinutes());
var seconds = zeroPadding(now.getSeconds());

// 変数'utcDate'に "YYYY-MM-DD'T'HH:mm;ss +HH:mm"な文字列を設定する
vars.put('utcDate', year + "-" + month + "-" + date + 'T' + hour + ":" + minutes + ":" + seconds + getTimeZoneString(tzHoursOffset, tzMinutesOffset));

/**
   * 時、分を"+HH:MM" フォーマットに変換
   * @param hourOffset {Number} 時
   * @param minutesOffset {Number} 分
   * @return {String} "+HH:MM"
   */
function getTimeZoneString(hourOffset, minutesOffset){
  var sign = hourOffset >= 0 ? "+" : "-";
  var hours = zeroPadding(""+hourOffset);
  var minutes = zeroPadding(""+minutesOffset);
  return sign + hours + ":" + minutes;
}

/**
   * 1桁の数値を 0埋め
   */
function zeroPadding(target){
    return ('00'+target).slice(-2);
}

出力イメージ

HTTP Requestの設定
kobito.1381555050.585914.png

出力結果

Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 124
User-Agent: Java/1.7.0_09
Host: localhost:8000
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

<RequestBody>
  <element sequence="3">
     <timestamp>2013-10-12T05:06:41+00:00</timestamp>
  </element>
</RequestBody>POST / HTTP/1.1
Connection: close
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1