1. Introduction
Tous les articles partagés auparavant n'ont qu'un seul groupe de threads, et les paramètres ne sont transmis que dans un seul groupe de threads. Donc, si nous devons transmettre des paramètres dans deux groupes de threads, comment procéder ? Aujourd'hui, je vais expliquer à mes amis ou à mes enfants comment transférer des paramètres entre groupes de threads.
2. Qu'est-ce que la transmission de paramètres entre groupes de threads dans jmeter ?
Comme son nom l'indique : utilisez l'outil jmeter pour transmettre des paramètres entre deux ou plusieurs groupes de threads.
3. Pourquoi les paramètres sont-ils transmis entre les groupes de threads ?
Tout d'abord, lorsque nous recevons une tâche de test de performances et devons tester une interface, nous n'avons pas besoin de nous connecter à chaque fois (si vous vous connectez à chaque fois, cela affectera les résultats du test), puis lorsque nous rencontrons cette situation, nous devons nous connecter. L'interface obtient le jeton (session, cookie), puis utilise un autre groupe de threads pour effectuer des tests de résistance.
Deuxièmement, vous pouvez imaginer un scénario. Supposons que nous testions un programme de panier d'achat. Avant d'ajouter quelque chose au panier, nous devons d'abord nous connecter (une telle conception logique est incorrecte. Chaque fois que vous sélectionnez un article à ajouter au panier panier, vous devez vous reconnecter. Connectez-vous, qui utilisera votre application avec un tel design ?). Dans un scénario normal, notre statut de connexion peut être conservé pendant un certain temps et il n'est pas nécessaire de se connecter à chaque fois avant d'ajouter un panier. Dans ce cas, lorsque nous testons, nous devons écrire le login et ajouter le panier à deux groupes de threads. , et alors le problème se pose. Les deux groupes de threads ne peuvent pas partager directement les paramètres.
Les deux situations ci-dessus sont des problèmes pratiques souvent rencontrés dans le travail, les paramètres doivent donc être transmis entre les groupes de threads.
Si vous souhaitez apprendre les tests automatisés, je vous recommande une série de vidéos. Cette vidéo peut être considérée comme le didacticiel de tests automatisés numéro un sur l'ensemble du réseau joué par Bilibili. Le nombre de personnes en ligne en même temps a atteint 1 000 , et il existe également des notes qui peuvent être collectées et communiquées par différents canaux.Maître de communication technique : 798478386
4. Comment transmettre des paramètres entre les groupes de threads ?
La portée des variables JMeter est limitée au thread auquel elles appartiennent. Cette conception est soigneusement étudiée pour permettre au fil de test de fonctionner de manière indépendante. Parfois, les utilisateurs peuvent avoir besoin de transmettre des variables entre différents threads (qui peuvent ou non appartenir au même groupe de threads). Dans Jmeter, en plus des variables de base, il existe un autre type de propriété, qui est sa propre propriété.Nous pouvons utiliser des propriétés pour effectuer le transfert de variables entre les groupes de threads. Les propriétés sont partagées par tous les threads JMeter, donc lorsqu'un thread définit une propriété, les autres threads peuvent lire la valeur mise à jour.
5. Combats réels
Sans plus tarder, frère Hong aimerait le pratiquer rapidement. Les étapes spécifiques sont les suivantes :
1. Créez un plan de test et renommez-le en "JMeter Passing Parameters Across Thread Groups", puis ajoutez un groupe de threads et renommez-le en "Connexion". Comme indiqué ci-dessous:
2. Sélectionnez le groupe de threads, cliquez avec le bouton droit pour ajouter l'échantillonneur « HTTP Request », renommez-le en « Get Token », puis configurez l'échantillonneur. Comme indiqué ci-dessous:
3. Sélectionnez le groupe de threads, cliquez avec le bouton droit pour ajouter un écouteur et "Afficher l'arborescence des résultats", enregistrez le script, exécutez jmeter et affichez l'arborescence des résultats (testez si vous pouvez obtenir le jeton avec succès, Brother Hong l'a déjà obtenu ici , puis attendez d'autres threads) définis pour une utilisation ultérieure). Comme indiqué ci-dessous:
À partir de la troisième étape, vous pouvez voir que frère Hong a réussi à obtenir le jeton. L'étape suivante consiste à extraire le jeton, puis à définir le jeton sur l'attribut afin que d'autres groupes de threads puissent l'appeler.
4. Extrayez le jeton. L'extracteur standard est utilisé ici. Vous pouvez utiliser d'autres extracteurs, à condition qu'il soit extrait. Tout d’abord, sélectionnez « Regular Tester » dans l’arborescence des résultats, puis entrez l’expression régulière pour extraire le jeton. Comme indiqué ci-dessous:
5. Comme le montre ce qui précède, l'expression régulière remplie peut être extraite avec succès vers le jeton, puis sélectionnez Obtenir le jeton, cliquez avec le bouton droit pour ajouter l'extracteur d'expression régulière, puis copiez l'expression régulière testée ici dans l'extracteur d'expression régulière. pour une configuration pertinente. Comme indiqué ci-dessous:
6. Selon l'idée ci-dessus, si vous l'extrayez, vous devez l'ajouter à l'attribut. Brother Hong utilise ici le post-processeur - le post-processeur BeanShell. Sélectionnez Obtenir le jeton, cliquez avec le bouton droit pour ajouter le post-processeur BeanShell. , puis configurez-le. Ajoutez un script. Comme indiqué ci-dessous:
Script de référence :
String token = bsh.args[0];
${__setProperty(newtoken,${token},)};
log.info("token:" + token);
7. Ajoutez " log.info("token:" + token); " au script du post-processeur BeanShell ci-dessus. Vérifiez ensuite dans le journal si la valeur du jeton est obtenue. Après avoir exécuté le script du plan de test, vérifiez Journal (cliquez sur l'icône jaune avec un point d'exclamation dans le coin supérieur droit), comme indiqué ci-dessous :
8. À partir du journal ci-dessus, nous avons clairement constaté que la valeur du jeton n'a pas été extraite. La vérification de l'extracteur d'expression régulière a révélé que le nombre correspondant était -1. Il y a un problème ici. Remplacez-le par 1, exécutez le plan de test et vérifiez le journal à nouveau, comme suit Comme le montre la figure :
9. À partir de la figure ci-dessus, nous constatons que la valeur du jeton a été extraite dans l'attribut, puis le jeton peut être transmis à d'autres groupes de threads pour l'appeler. Continuez ensuite à créer un groupe de threads, faites un clic droit pour ajouter l'élément de configuration « HTTP Cookie Manager » et configurez-le, comme le montre la figure suivante :
10. Cliquez avec le bouton droit pour ajouter l'échantillonneur « HTTP Request » et renommez-le en « View Role » pour le configurer, comme indiqué dans la figure ci-dessous :
11. Ajoutez l'écouteur « View Result Tree », comme indiqué dans la figure ci-dessous :
12. Enregistrez le script du plan de test et après avoir exécuté jmeter, affichez l'arborescence des résultats (vous pouvez voir la liste des rôles obtenus), comme le montre la figure suivante :
D'accord, les paramètres de passage des groupes inter-threads de jmeter ont maintenant été entièrement implémentés.
6. Résumé
Voici une explication sur la façon de transmettre des jetons entre les fils de discussion, tels que les cookies, les sessions et d'autres paramètres. Vous pouvez simplement copier le chat et le tigre. Eh bien, c'est tout pour aujourd'hui, merci pour votre patience dans la lecture.