2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Les paramètres utilisateur d'expression régulière (RegEx User Parameters) sont un pré-processeur (Pre-Processor) qui permet aux utilisateurs d'extraire des valeurs des données de réponse en fonction d'expressions régulières et de les appliquer, et de transmettre ces valeurs en tant que paramètres aux paramètres suivants.Requête HTTP ou d'autres endroits nécessaires. Cette fonctionnalité est très flexible pour gérer le contenu dynamique, les identifiants de session, les jetons, etc. et constitue un élément clé pour la mise en œuvre de scripts de test automatisés.
Nous utilisons SpringBoot pour écrire le code d'interface suivant
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
Ensuite, nous écrivons le script suivant
Groupe de discussions : Conserver la valeur par défaut
Requête HTTP 1 : protocole http, nom du serveur ou IP127.0.0.1, numéro de port 8091, méthode POST, chemin/login, encodage du contenu utf-8, données du corps du message
{
"username": "admin",
"password": "password"
}
Extraction d'expressions régulières器:设置的参数为引用名称var,正则表达式"id"😦.?),"nom":"(.?)", "email" (peut être connu grâce au contenu de l'exemple de code), et notre objectif est d'extraire l'identifiant et le nom, le numéro correspondant est défini sur -1 et la valeur par défaut est NotFound
À ce stade, nous pouvons d'abord désactiver la requête HTTP 2 et les paramètres utilisateur de l'expression régulière, puis exécuter le script et afficher l'échantillonneur de débogage de l'arborescence des résultats. Vous pouvez voir les résultats suivants dans le corps de réponse des données de réponse.
Variables JMeter :
JMeterThread.last_sample_ok=false
JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@4fa1cf1
DÉMARRER.HMS=165132
DÉMARRER.MS=1720515092259
DÉBUT.YMD=20240709
TESTSTART.MS=1720578466746
_jm__threadgroup__idx=0
_jmeter.U_T=groupe de threads 1-1
var=Introuvable
var_1=
var_1_g=2
var_1_g0=“id”:123,“nom”:“John Doe”,“email”
var_1_g1=123
var_1_g2=Jean Dupont
var_2=
var_2_g=2
var_2_g0=“id”:456,“nom”:“Jane Smith”,“email”
var_2_g1=456
var_2_g2=Jane Smith
var_matchNr=2
À partir du contenu ci-dessus, nous pouvons voir la valeur de la variable var extraite par l'expression régulière correspondante. À ce stade, nous pouvons continuer à vérifier l'application du préprocesseur de paramètres utilisateur de l'expression régulière et continuer à définir d'autres paramètres de composant.
Requête HTTP 2 : protocole http, nom du serveur ou IP127.0.0.1, numéro de port 8091, méthode POST, chemin/login, encodage du contenu utf-8, puis ajoutez deux paramètres aux paramètres, renseignez respectivement les noms 123, 456, ne les utilisez pas maintenant. Quelle que soit la signification spécifique, essayons d'abord.
Paramètres utilisateur de l'expression régulière : le nom de référence de l'expression régulière est défini sur var, le nom du paramètre ici doit être cohérent avec le nom du paramètre dans l'expression régulière ci-dessus, le numéro de groupe d'expression régulière des noms de paramètres est défini sur 1, le numéro de groupe d'expression régulière des valeurs des paramètres est défini à 2, pourquoi Comment le configurer comme ça ? Nous pouvons le comprendre de cette façon. N'avons-nous pas défini 123 et 456 dans la requête HTTP 2 ? Définir le numéro de groupe d'expressions régulières des noms de paramètres sur 1 peut être compris comme prendre les paramètres de var_1_g1 et var_2_g1 dans les paramètres var. dans la requête HTTP 2 Une fois que les paramètres sont cohérents avec les paramètres ici, nous correspondrons à la relation entre les paramètres et les données, ouvrant la voie à ce que le numéro de groupe regex des valeurs des paramètres soit défini sur 2. Nous pouvons bien comprendre que lorsque les valeurs des paramètres le numéro de groupe regex est défini sur 2, ce qui est obtenu Les paramètres deviennent var_1_g2 et var_2_g2.
L'étape suivante consiste à vérifier nos résultats. Exécutez le script pour afficher les données de publication du corps de la requête dans la requête HTTP 2 dans l'arborescence des résultats. Dans l'ensemble, notre requête a échoué, mais cela n'a pas d'importance. à vérifier. Le résultat n'est pas pertinent
POSTER http://127.0.0.1:8091/login
Données POST :
123=John+Doe et 456=Jane+Smith
[pas de cookies]
À partir des données POST ci-dessus, vous pouvez voir que les données correspondantes ont été reflétées dans la demande.
● Portée : les paramètres utilisateur d'expression régulière ne prennent effet que sur la requête HTTP ou l'échantillonneur suivant. Si vous devez les appliquer globalement, pensez à utiliser "l'extracteur d'expression régulière" en conjonction avec les variables.
● Débogage : utilisez l'écouteur "Afficher l'arborescence des résultats" pour vérifier la correspondance des expressions régulières afin de garantir une extraction correcte des données.
Les paramètres utilisateur des expressions régulières sont une fonctionnalité puissante de JMeter, qui simplifie le traitement des données dynamiques et améliore la flexibilité et l'automatisation des scripts de test. Correctement configurée et utilisée, cette fonction peut répondre efficacement aux besoins de tests de performances des systèmes complexes.