jmeter-10-Extraire les données de demande d'épissage d'ID multiples et le décalage de date et d'heure, pouvez-vous le faire ?

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)}

Je suppose que tu aimes

Origine blog.csdn.net/qq_42675140/article/details/126451537
conseillé
Classement