Préface
Lors de l'utilisation de Jmeter, vous pouvez rencontrer divers paramètres requis qui doivent être traités, tels que l'extraction d'identifiants et l'épissage de tableaux, l'heure et la date de traitement, etc.
Ensuite, j'enregistrerai de nombreux scénarios que je rencontre lors d'une utilisation personnelle quotidienne ! Allez! Allez! Allez!
1. Données de demande d'épissage
1. Vérifiez : Calculer la concaténation var (suffix_ALL)
Vous obtiendrez team_ids=id1,id2,id3,idx, ce qui convient généralement aux paramètres d'entrée de requête d'URL.
2. Post-processeur BeanShell
Vous obtiendrez numList="id1", "id2", "idx", qui est généralement utilisé pour les paramètres d'entrée du corps json, comme suit
{
"data":[1,2,3,4,5]
}
Référence dans le tableau : [${numList}], ou modifiez l'épissage de la tête [épissage de la queue] pour obtenir 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. Décalage date/heure
1. Utilisation de la fonction timeShift
Documentation officielle : Apache JMeter - Manuel de l'utilisateur : Fonctions et variables
Heure actuelle + 1 heure, par exemple : 2022-06-21 09:41:58
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT1H,,)}
2. Convertissez l'horodatage en millisecondes en secondes : ${__time(/1000,)}
Et si vous souhaitez compenser ?
Décalage + 1 jour, obtenez des millisecondes : ${__timeShift(,,P1D,,)}
1661129954599
Décalage -1 heure, obtenir les secondes : 1661129954
String time = "${__timeShift(,,PT1H,,)}";
time = time.substring(0, 10);
vars.put("time",time);
3. Obtenez le premier et le dernier jour du mois :
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);
Et les autres ?
Nom : ${__time(aaaa-MM-jj 00:00:00)} 、${__time(aaaa-MM-jj 23:59:59)}
Mois en cours : ${__time(aaaa-MM-01 00:00:00)}, ${__time(aaaa-MM-jj 23:59:59)}
Année cumulée : ${__time(aaaa-01-01 00:00:00)}, ${__time(aaaa-MM-jj 23:59:59)}