web-dev-qa-db-fra.com

Variables dans le corps du message de requête http

J'essaie de générer un script jmeter où un dossier unique est créé à chaque exécution du script - l'ajout d'une variable quelconque au nom du dossier, comme un nom d'utilisateur + un horodatage, devrait suffire à garantir l'unicité. Cependant, jmeter ne résout pas la variable à sa valeur - bien que ce soit lorsque la variable est lue dans un fichier csv (ce qui n'est pas approprié).

Fondamentalement, je modifie le PostBody dans la demande http, comme suit:

{"alf_destination": "workspace: // SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6", "prop_cm_name": "Test Folder - $ {variable}", "prop_cm_title": "Test Folder", "prop_cm_description": "Dossier de test"}

variable est essentiellement une variable que j'ai essayée jusqu'à présent (comme une chaîne aléatoire, un horodatage, etc.)

Quelqu'un peut-il suggérer comment résoudre la variable?

17
user2237424

Vous pouvez utiliser la fonction uuid de jmeter (depuis la version 2.9) -> http://jmeter.Apache.org/usermanual/functions.html#__UUID

${__UUID}

et

1) Si vous ne voulez qu'une seule valeur pour l'ensemble du test, ajoutez un élément de configuration "Variables définies par l'utilisateur" à votre test. Cela sera évalué lors du premier chargement du script de test.

2) Si vous souhaitez que la valeur change pour chaque exécution de thread, mais reste la même pendant chaque instance de thread: sous votre "groupe de threads", ajoutez un "préprocesseurs -> paramètres utilisateur" à votre groupe de threads - et ajoutez la variable Là.

De plus, si vous souhaitez que la valeur change à chaque fois que le thread recommence (chaque "itération" du script dans le groupe de threads), vous pouvez cocher la case "Mettre à jour une fois par itération" dans les paramètres utilisateur - et il obtiendra un nouvelle valeur chaque fois qu'il recommence le thread au début du script de test (dans ce groupe de threads).

http://mail-archives.Apache.org/mod_mbox/jmeter-user/201208.mbox/%[email protected]%3E

25
z2z

Avec JMeter 2.9, les opérations suivantes fonctionnent:

Dans HTTP Request Sampler, l'onglet "Post Body" ajoute par exemple vos données JSON et y inclut les variables:

{"uuid":"${new-uuid}"}

new-uuid est une variable définie par l'utilisateur. Cela enverra (à partir de l'arborescence des résultats, onglet "Demande"/"Brut"):

POST data:
{"uuid":"a1b2c3d4e5f6"}
13
Risadinha

Je l'ai fait en référençant une variable dans le corps du message de demande http - ${formvalues} - créé à l'aide d'un préprocesseur beanshell qui est ajouté à l'échantillonneur de requête http.
Contenu de la fève:

double random = Math.random();    
String formvalues ="{\"alf_destination\":\"workspace://SpacesStore/90368635-78a1-4dc5-be9e-33458f09c3f6\",\"prop_cm_name\":\"Test Folder - ${uname}_" + random + "\",\"prop_cm_title\":\"Test Folder\",\"prop_cm_description\":\"Test Folder\"}";         
vars.put("formvalues",formvalues);

Cela crée donc un dossier avec le nom d'utilisateur (${uname}, tiré de la csv) plus un nombre aléatoire - c'est grossier car il pourrait potentiellement encore y avoir des cas où le script essaie de créer un dossier avec le même nom qu'un dossier existant, mais cela fonctionnera pour mon cas.

5
user2237424