comment envoyer des données uniques pour chaque thread dans jmeter
Je suis en utilisant jmeter pour tester mon API REST pour 10000 frapper pour qui chaque http coup stocker des données dans la DB. J'ai suivi le ci-dessous le plan de test
Je suis en cours d'exécution 10 threads en parallèle avec la rampe jusqu'à temps de 20 secondes chacun et boucle de 1000 à atteindre le même.
Mais le problème c'est que mon fils ne prennent pas de jeu de données unique. Alors que mon backend URL HTTP attend à chaîne unique pour chaque http frappé.
Maintenant, j'ai essayé avec le ci-dessous approches.
-
CSV ensemble de données de configuration avec 10000 valeurs uniques et tous les threads thread groupes de lecture sont les mêmes données.
-
Différents CSV ensemble de Données pour chaque fils et de répartir le fichier csv avec le thread à l'aide de nom de fichier${__threadNum}.csv
-
À l'aide de jmeter _RandomString méthode pour générer des chaînes de l'exécution pour chaque http frapper, http post corps je suis de passage comme
{"tenantName":"${__RandomString(15,abcdefghijklmnofqrst1234567#@#%^&*,)}"}
- À l'aide de BeanShell préprocesseur pour appeler une méthode en java et de générer de modèle unique, tout le temps gagner de Requête HTTP de l'échantillonneur.
Maintenant, aucune des méthodes ci-dessus fonctionne pour moi. Lors de l'exécution du plan de test après un certain point dans le temps, 2 threads tentent d'utiliser les mêmes données, et a frappé mon url HTTP. Et je suis de conflit d'erreur à partir de la réponse http. Mon erreur de comptage ne cesse d'augmenter.
Maintenant, je ne comprends vraiment pas comment ces 2 bandes de roulement en essayant de frapper http avec les mêmes données?
Peut quelques un s'il vous plaît expliquer le problème et m'aider à définir le bon plan de test de configuration.
EDIT:
CSV ensemble de données de config pour tous les thread:
De la Requête HTTP :
L'ajout de plan de test avec CSV dataset:
sharing mode = all threads
doit fournir des valeurs uniques par itération. Par exemple, si il y a eu deux fils, puis le thread 1 va lire la première entrée, le thread 2 la deuxième entrée, puis sur la prochaine itération 1 thread va lire le troisième entrée, le thread 2 la quatrième entrée et ainsi de suite.
OriginalL'auteur bagui | 2015-08-27
Vous devez vous connecter pour publier un commentaire.
À côté de toutes les suggestion de Ubik et DmitrT, je mettrais le CSV de configuration de l'élément en DEHORS du groupe de thread.
Laissez-moi savoir.
OriginalL'auteur sbos61
Si vous avez besoin d'envoyer de données unique qui peut être aléatoire je crois que __UUID() fonction peut vous aider.
Il génère aléatoirement exclusif GUID structures à chaque fois quand elles sont appelées et semble être exactement ce que vous cherchez.
Pour l'explication et la démonstration de cette et plus JMeter Fonctions voir Comment Utiliser JMeter Fonctions postes de la série
OriginalL'auteur Dmitri T
Le CSV approche est Ok, mais comment avez-vous configuré dataset csv et le mettre dans le plan ?
Vous assurer que vous réglez "Recycler sur les expressions du FOLKLORE" à false afin de garantir l'absence de données sont réutilisées.
Pouvez-vous montrer ?
Vous pouvez également afficher la Requête HTTP du contenu ?
Edition 01 septembre 2015:
Également de l'ib nom de fichier champ chemin d'accès de remplacer \ par \ ou /
vous pouvez également afficher votre plan de test avec dataset csv
ajoutée le plan de test avec dataset CSV. Veuillez vérifier.
J'ai défini la variable dans la requête http, et le même nom de variable est le csv en-tête, donc c'est qu'il remplace. Aussi je ne pense pas que c'est un problème avec le fichier séparateur de chemin que le contenu de ce fichier sont traitées.
OriginalL'auteur UBIK LOAD PACK
Si je suis trop en retard pour la question, je pensais que quelqu'un pourrait trouver utile.
Espère que cela aide.
Reportez-vous à http://blog.developer.bazaarvoice.com/2016/05/19/quick-and-easy-web-service-load-testing-with-jmeter/
OriginalL'auteur sa3036
J'ai également eu le même problème avec des Variables Définies par l'Utilisateur de l'élément. Pour cela, j'ai créé un UUID et l'affecter à une variable. Je m'attendais à chaque thread pour générer un autre UUID, mais ce n'était pas le cas.
Solution (qui a travaillé pour moi)
Ajouter un Beanshell de l'Échantillonneur. En elle, générer de la valeur unique de ces avec un UUID et l'utilisation de la méthode put pour stocker la valeur dans "vars". Chaque thread s'exécute le code et d'avoir sa propre valeur unique.
Exemple: Pour générer et stocker un unique accountId pour chaque thread utilise
J'espère que cela aide!
OriginalL'auteur Rich