序文
Jmeter を使用するプロセスでは、ID の抽出や配列の結合、時刻と日付の処理など、処理する必要があるさまざまな必須パラメーターが発生する場合があります。
それでは、私が日々の個人的な使用中に遭遇した多くのシナリオを記録します! 行け!行け!行け!
1. 接続要求データ
1. チェック: 連結変数 (suffix_ALL) を計算する
Team_ids=id1,id2,id3,idx が得られます。これは通常、URL クエリ入力パラメーターに適しています。
2. BeanShell ポストプロセッサ
次のように、一般に json 本体の入力パラメータに使用される numList="id1"、"id2"、"idx" を取得します。
{
"data":[1,2,3,4,5]
}
配列内の参照: [${numList}]、またはヘッド スプライシング [テール スプライシング] を変更して numList=["id1","id2","idx"] を取得します。
int num = Integer.valueOf("${p_projectIds_matchNr}");
String numList = "";
for (i=1; i<=num; i++){
String str = vars.get("p_projectIds_" + i);
numList += "\"" + str;
if(i < num){
numList += "\",";
}else{
numList += "\"";
}
}
vars.put("numList", numList);
2. 日付と時刻のオフセット
1.タイムシフト機能の利用
公式ドキュメント: Apache JMeter - ユーザーズマニュアル: 関数と変数
現在時刻 + 1 時間、例: 2022-06-21 09:41:58
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT1H,,)}
2. ミリ秒のタイムスタンプを秒に変換します: ${__time(/1000,)}
オフセットしたい場合はどうすればよいですか?
オフセット + 1 日、ミリ秒を取得: ${__timeShift(,,P1D,,)}
1661129954599
オフセット -1 時間、秒を取得: 1661129954
String time = "${__timeShift(,,PT1H,,)}";
time = time.substring(0, 10);
vars.put("time",time);
3. 月の最初と最後の日を取得します。
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
String yesterday="${__timeShift(yyyy-MM-dd,,-P1d,,)}"; //昨天, 所属月份的整月20211201-20211231
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //格式化为年月日
//月头
Calendar beginCalendar = Calendar.getInstance();
beginCalendar.setTime(sdf.parse(yesterday));
beginCalendar.set(Calendar.DAY_OF_MONTH, beginCalendar.getActualMinimum(Calendar.DAY_OF_MONTH));
String begin = sdf.format(beginCalendar.getTime());
//月尾
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(yesterday));
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
String end =sdf.format(calendar.getTime());
vars.put("date_begin",begin);
vars.put("date_end",end);
他の人はどうですか?
当日:${__time(yyyy-MM-dd 00:00:00)}、${__time(yyyy-MM-dd 23:59:59)}
当月至今:${__time(yyyy-MM-01 00:00:00)} 、${__time(yyyy-MM-dd 23:59:59)}
年初から現在まで: ${__time(yyyy-01-01 00:00:00)}、${__time(yyyy-MM-dd 23:59:59)}