Envoyer du pseudo XML avec JMeter

77 views
Skip to first unread message

Emi38

unread,
Oct 5, 2009, 10:40:49 AM10/5/09
to JMeter en français
Bonjour,

Je souhaite effectuer des tests de perf avec JMeter sur une appli
client serveur. Niveau protocol de communication nous sommes en http
avec du pseudo XML envoyé en POST.
Je n'arrive pas à comprendre (malgré les tutos scrutés encore et
encore) comment configurer mon JMeter.
Pour l'instant, j'ai créé dans "WorkBench" une "Requete HTTP HTTP
Client", j'ai spécifié que j'étais en méthode post et je me dis que je
dois certainement ajouter le fichier contenant mon "pseudo xml" (avec
des balises comprises que par mon serveur). Or, dans l interface on me
dde également "nom du parametre" et "type Mime" faut il remplir cela ?

Merci d avance, je suis perdu !

Milamber

unread,
Oct 5, 2009, 5:33:32 PM10/5/09
to jmet...@googlegroups.com
Bonjour,

Le mieux serait de suivre le tutoriel sur l'enregistrement d'une session
de navigation HTTP de ton application, en espérant que cette dernière
sache fonctionner à travers un proxy http. (certainement oui si elle
utilise les fonctions natives de Windows, dans ce cas, il suffira de
configurer le proxy dans les propriétés de Internet Explorer).
Avec cet enregistrement de session, tu auras le "modèle" des requêtes HTTP.
(voir en particulier :
http://blog.milamberspace.net/index.php/jmeter-pages/jmeter-test-de-charges-dun-site-web-mode-demploi/jmeteriser-son-scenario-fonctionnel
)

Sinon, si ton appli ne connait pas la notion de proxy, tu peux tout
simplement utiliser un sniffer réseau (typiquement wireshark) pour
enregistrer (sniffer) les paquets http que ton application produit. Tu
trouveras dedans le type Mime utilisé, le nom et la valeur des
paramètres en méthode POST (et GET aussi).
Mais à mon avis, c'est plutôt un paramètre "standard" correspond à la
section "Envoyer les paramètres avec la requête:" dans l'élément HTTP
qui doit être utilisé, avec les 'trucs' suivants :
Nom : (vide)
Valeur : <ton fichier xml> (sans les retours à la ligne)
Encodage : non coché
Inclure égale ? : coché

(une autre solution consiste aussi à mettre en place un proxy
transparent avec JMeter, mais cela risque d'être plus complexe à mettre
en oeuvre)

A+
Milamber

Le 05/10/2009 14:40, Emi38 a ecrit :

Emi38

unread,
Oct 12, 2009, 11:56:43 AM10/12/09
to JMeter en français
J'avais déjà regardé ce tuto. Mon souci c'est que je n'ai pas vraiment
un site à tester mais simplement un serveur, enfin une appli qui
tourne sur un serveur, je sors donc de tous les tuto et autres cas
d'école (même si y a pas trop d'école qui traitent le sujet !!).
Donc j'ai pas vraiment de la navigation dans mon site ...
En gros ce que je fais c'est que je dois lui envoyer des données via
un ficher de type "quasi xml" (xml modifié) et que le serveur me
renvoit lui aussi un fichier de ce type.

Du coup, je pensais me servir de JMeter mais je ne suis pas sur que
cette utilisation est réellement possible.

On 5 oct, 23:33, Milamber <milambersp...@gmail.com> wrote:
> Bonjour,
>
> Le mieux serait de suivre le tutoriel sur l'enregistrement d'une session
> de navigation HTTP de ton application, en espérant que cette dernière
> sache fonctionner à travers un proxy http. (certainement oui si elle
> utilise les fonctions natives de Windows, dans ce cas, il suffira de
> configurer le proxy dans les propriétés de Internet Explorer).
> Avec cet enregistrement de session, tu auras le "modèle" des requêtes HTTP.
> (voir en particulier :http://blog.milamberspace.net/index.php/jmeter-pages/jmeter-test-de-c...

Milamber

unread,
Oct 12, 2009, 5:18:59 PM10/12/09
to jmet...@googlegroups.com
Bonjour,

ci-dessous,

Le 12/10/2009 15:56, Emi38 a ecrit :
J'avais déjà regardé ce tuto. Mon souci c'est que je n'ai pas vraiment
un site à tester mais simplement un serveur, enfin une appli qui
tourne sur un serveur, je sors donc de tous les tuto et autres cas
d'école (même si y a pas trop d'école qui traitent le sujet !!).
Donc j'ai pas vraiment de la navigation dans mon site ...
  
En gros ce que je fais c'est que je dois lui envoyer des données via
un ficher de type "quasi xml" (xml modifié) et que le serveur me
  

Avec quel protocole de transport réseau ? http, ftp, spécifique ?
C'est un protocole genre "monétique", etc?


renvoit lui aussi un fichier de ce type.
  

Comment ?



Du coup, je pensais me servir de JMeter mais je ne suis pas sur que
cette utilisation est réellement possible.
  

C'est peut être possible, mais il faut indiquer un peu plus d'éléments pour te répondre, puisque cela sort de l'utilisation habituelle de JMeter.

A+
Milamber

Emi38

unread,
Oct 13, 2009, 2:51:34 AM10/13/09
to JMeter en français
Ben en fait c'est du http ... Les données de "pseudo xml" sont passées
en POST.
De quelles genres d'info aurais tu besoin ?
L'équipe de dév a déceloppé une page php pour faire une petite
automatisation des tests mais perso je trouve pas que ce serait très
logique de passer par cette page pour mes tests de charges (car il
peut y avoir des bugs ds la page et des ralentissements dûs à des
erreurs ds son dev).

Milamber

unread,
Oct 13, 2009, 3:26:28 AM10/13/09
to jmet...@googlegroups.com
Bonjour,

Ah, du HTTP! donc tu peux le faire avec JMeter. Le HTTP c'est son protocole (on va dire) 'principal'.

Donc si je comprends bien, tu as un serveur Web qui reçoit une requête HTTP avec la méthode POST.

Ce qui veut dire que tu dois avoir un "client" web qui envoie cette requête à ton serveur. Ton client c'est quoi ? un navigateur web, un développement spécifique (en quoi ?) ?

A+
Milamber

Le 13/10/2009 06:51, Emi38 a ecrit :

Emi38

unread,
Oct 13, 2009, 4:15:04 AM10/13/09
to JMeter en français
En fait, plusieurs appli différentes pourront accéder à ce serveur
mais pour l'instant les dév ne sont pas engagés. En gros le service à
tester c'est le travail que réalise le serveur. Dans un second temps,
les tests concerneront les appli appelantes.
En gros, moi je veux juste essayer de balancer des requêtes http en
pagaille afin de tester le comportement du serveur.
C'est une configuration pas classique ... Je sais et c'est pour ça que
je suis bien embêtée car trouver des outils open source vraiment
adaptés n'est pas évident car tous les dev sont orientés web !

Si t'as des idées je prends ;o)
Merci en tout cas

Milamber

unread,
Oct 13, 2009, 4:52:53 AM10/13/09
to jmet...@googlegroups.com
Bonjour,

Avec JMeter tu peux faire des requêtes HTTP en méthode POST (c'est la fonction de base). Donc normalement tu ne devrais pas avoir de soucis pour faire ton test.
Est-ce que tu as essayé ce que je t'indiquais dans le message du 5 octobre ?

(je précise que je trouve ta configuration au contraire, assez classique. J'aurais même tendance à appeler cela un webservice (de type SOAP). En tout cas, ce que tu me décris ressemble à un client Flex qui fait du WS en SOAP. Et JMeter sait très bien faire des tirs de charges pour cela)

A+
Milamber

Le 13/10/2009 08:15, Emi38 a ecrit :

Emi38

unread,
Oct 13, 2009, 9:47:16 AM10/13/09
to JMeter en français
Désolé, grippe oblige j'ai pas pu trop bosser dessus, je m'y mets
d'ici quelques jours et je te tiens au courant ...
Message has been deleted
Message has been deleted

Emi38

unread,
Oct 19, 2009, 10:43:39 AM10/19/09
to JMeter en français
Bon alors, j'ai jeté un oeil sur ton message datant du 5 oct et je me
pose des questions à ce sujet.
Qu entends tu par "fonctionner à travers un proxy http" ? JMeter fait
office de proxy ?
Moi je pensais que créer les requetes http suffisait ?
Quel est l interet de définir un proxy ?

J'ai tenté de configurer et de lancer JMeter tel que décrit dans le
tuto. J'ai dc
- Un test plan avec comme groupe d'unité un contrôleur enregistreur et
un composant "parametre HTTP par defaut" (ce qui m ennuie ds celui ci
c est que je ne peux définir de POST)
- Un serveur proxy Http avec un "arbre des resultats"

Par contre qd j appuie sur "lancer" dans le proxy rien ne se passe ...
Je pense que je ne suis pas au point sur la config de Jmeter ...
En même temps, par rapport au tuto, je n'ai pas de site à visiter ...
Donc j'imagine que je devrais faire autre chose pour que je puisse
injecter des données mais je ne sais pas quoi !

Parallèlement, j ai regardé wireshark mais le souci c est que ce
dernier ne me permet
pas d injecter des paquets ... Dc ça ne me semble pas coller avec mon
utilisation.

Peux tu m aider pour l'utilisation de JMeter ou suis je un cas
desespéré ???

Merci d avance

Milamber

unread,
Oct 19, 2009, 7:34:14 PM10/19/09
to jmet...@googlegroups.com
Bonjour,

Bon, je vois qu'il y a eu de la progression dans tes recherches (trois mails d'avancement aujourd'hui :-))
Ci-dessous,

Le 19/10/2009 14:43, Emi38 a ecrit :
Bon alors, j'ai jeté un oeil sur ton message datant du 5 oct et je me
pose des questions à ce sujet.
Qu entends tu par "fonctionner à travers un proxy http" ? JMeter fait
office de proxy ?
  

Oui JMeter sait faire office de proxy, cela lui permet de voir ce que demande ton navigateur (les requêtes) et ce qu'on retourne à ton navigateur (les réponses). A partir de là, JMeter sait très facilement créer automatique la requête HTTP (au sens "échantillon JMeter") correspondant à la requête qui a été demandée par le navigateur


Moi je pensais que créer les requetes http suffisait ?
  

Oui cela peut suffire, mais si tu as (par exemple) une application avec une cinquantaine de requêtes HTTP, tu es bien content que JMeter fasse le gros-oeuvre pour toi ;)


Quel est l interet de définir un proxy ?
  

Pour demander à JMeter d'enregistrer tes requêtes (http) et les convertir en requêtes http (jmeter) afin de faire plus tard un test de charges ou fonctionnels.


J'ai tenté de configurer et de lancer JMeter tel que décrit dans le
tuto. J'ai dc
- Un test plan avec comme groupe d'unité un contrôleur enregistreur et
un composant "parametre HTTP par defaut" (ce qui m ennuie ds celui ci
c est que je ne peux définir de POST)
-  Un serveur proxy Http avec un "arbre des resultats"
  
Ok bien.


Par contre qd j appuie sur "lancer" dans le proxy rien ne se passe ...
  

Oui c'est bien normal, puisque tu ne fais de pas de requêtes en utilisant un navigateur Internet paramétré avec le proxy JMeter comme serveur "mandataire"


Je pense que je ne suis pas au point sur la config de Jmeter ...
En même temps, par rapport au tuto, je n'ai pas de site à visiter ...
  
Oui en effet.


Donc j'imagine que je devrais faire autre chose pour que je puisse
injecter des données mais je ne sais pas quoi !
  

Et bien la réponse est dans le premier paragraphe de mon message du 5 octobre.
Je clarifie (en espérant que mes hypothèses sont bonnes) :
Ton application est une application Windows (?), si elle utilise les apis "standard" de Microsoft pour ses requêtes http/post, elle devrait utiliser la configuration Internet pour connaitre le moyen de communiquer vers le serveur.
Donc si tu configure ton poste de travail Windows, au niveau de Internet Explorer, pour utiliser le proxy de JMeter, on peut supposer que lorsque tu vas lancer ton application (qui, tu me l'as dis, fait des requêtes http), JMeter pourra capter (et enregistrer) la communication HTTP entre ton application (windows?) et le serveur web.
(Et ainsi JMeter pourra ensuite rejouer les requêtes dans un prochain tir.)

Donc pour résumer, une fois que JMeter est OK pour l'enregistrement de la "session de navigateur", il faut lancer ton application qui a été configurée pour utiliser le proxy JMeter. Tu verras ensuite apparaitre des requêtes http qui seront créées dans le contrôleur enregistreur.


Parallèlement, j ai regardé wireshark mais le souci c est que ce
dernier ne me permet
pas d injecter des paquets ... Dc ça ne me semble pas coller avec mon
utilisation.
  

Oui Wireshark ne permet pas l'injection, mais d'autres programmes le font. Il y par exemple tcpreplay http://tcpreplay.synfin.net/trac/
mais bon, cela serait plutôt dans le cadre d'une application que tu dois tester qui n'utilisent pas le protocole http.
Dans ce cas, on peut demander à JMeter de faire des requêtes TCP (la couche dessous le HTTP) pour simuler une utilisation lors d'un tir de charges.

Mais pour ton cas il n'y en a pas besoin, JMeter devrait (normalement) comprendre les requêtes http qui sont envoyées par ton application vers le serveur.


Peux tu m aider pour l'utilisation de JMeter ou suis je un cas
desespéré ???
  

Non, tu n'es pas un cas désespéré ;-)

Je te conseillerai toutefois de lire la page Wikipédia consacrée au protocole HTTP
http://fr.wikipedia.org/wiki/Http
(n'y vois pas une insulte, c'est vraiment pour que tu es une meilleure compréhension de ce protocole de transport qui fait que Internet est ce qu'il est. J'ajouterai que bien souvent les cours réseaux dans les écoles d'informatiques ou facs sont insuffisants, et à moins d'être développeur d'un serveur Web, on ne le connait pas trop)
Pourtant le http est une des clés de JMeter (et des tests de perfs des applis Web)

A+
Milamber

Emi38

unread,
Oct 20, 2009, 3:53:15 AM10/20/09
to JMeter en français
En fait, le problème c'est que l'appli qui va utiliser ce serveur
n'existe pas encore ...
Il y aura plusieurs appli mais pour le moment, je dois tester juste le
serveur (et surtout le service rendu) pour être sur que ce dernier
fait ce qu'on lui demande. Ensuite si ses perf sont bonnes et les
tests fonctionnels Ok, ils développeront les appli dédiées.

Suis je obligée d'avoir l'appli pour tester avec JMeter ?
Si oui je vais demander au dev de faire un petit truc rapide. Je vais
leur dder une appli web avec un champ d entrée (ds lequel on copiera
le xml) et un bouton "go" qui enverra le tout ...
Qu en penses tu ?
> font. Il y par exemple tcpreplayhttp://tcpreplay.synfin.net/trac/
> mais bon, cela serait plutôt dans le cadre d'une application que tu dois
> tester qui n'utilisent pas le protocole http.
> Dans ce cas, on peut demander à JMeter de faire des requêtes TCP (la
> couche dessous le HTTP) pour simuler une utilisation lors d'un tir de
> charges.
>
> Mais pour ton cas il n'y en a pas besoin, JMeter devrait (normalement)
> comprendre les requêtes http qui sont envoyées par ton application vers
> le serveur.
>
> > Peux tu m aider pour l'utilisation de JMeter ou suis je un cas
> > desespéré ???
>
> Non, tu n'es pas un cas désespéré ;-)
>
> Je te conseillerai toutefois de lire la page Wikipédia consacrée au
> protocole HTTPhttp://fr.wikipedia.org/wiki/Http
> ...
>
> plus de détails »

Nicolas

unread,
Oct 20, 2009, 4:28:33 AM10/20/09
to JMeter en français
Je me permet d'intervenir :-)

Emi, a priori, Milamber est disposé à t'aider un maximum, comme
d'habitude, mais j'ai bien l'impression que dans ton cas tu vas aussi
avoir besoin d'un peu d'implication de ton équipe de dev.
Le serveur existe mais pas les clients ? ce n'est pas un problème,
demande à tes développeurs une liste d'urls à appeler pour charger le
serveur en question... je suis certain qu'ils pourront te les donner
aisément. Dis leurs même que dans cette liste tu pourra "variabiliser
tes requêtes", c'est-à-dire créer de la diversité à partir d'un
template d'url (tu vois l'idée ?).
Il sera alors beaucoup plus simple à Milamber (ou aux autres) de
t'expliquer comment mettre en œuvre tes tirs, tu devrais même pouvoir
t'en sortir avec les différents tuto.

Nicolas.
> ...
>
> plus de détails »- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

Emi38

unread,
Oct 20, 2009, 10:05:53 AM10/20/09
to JMeter en français
Hello Nico ...
pas de souci pour ton intervention au contraire même !
J'ai bien lu vos deux interventions et un pb réside. Qd j'ai demandé
au dev une adresse pour mes tests, ils m'on donné un truc du style :
monweb.adresse.fr/monserver/service.fcgi
Mais ça c'est l'adresse à laquelle je dois envoyer mon xml ...
Quelque soit l url qu ils me donnent je ne vois pas comment elles
pourraient contenir mes param (mes données xml) qui sont dans un POST.
Ou alors je ne comprends pas ce que tu veux dire Nico ..

Sinon Milamber, je ne suis pas du tt vexé par ton lien ... il m en
faut plus ! ;)
> ...
>
> plus de détails »

Nicolas

unread,
Oct 20, 2009, 11:18:23 AM10/20/09
to JMeter en français

Soit je me trompe complètement, soit ton problème est assez simple (et
résolu par Milamber dans son message du 5 oct).

Essaie la chose suivante pour voir :
• Créer un nouveau plan de test
• Ajouter un groupe d'unité
• Sur ce groupe d'unité, ajouter un "échantillons/Requête HTTP"
• Sur cette requête, configurer le serveur - ip et port (dans ton
exemple monweb.adresse.fr sur le port 80 :-P )
• Sur cette requête, configurer la méthode (sélectionner POST en face
de méthode)
• Sur cette requête, définir le chemin (/monserver/service.fcgi dans
ton exemple)
• Sur cette requête, ajouter le XML en donnée à poster (c’est la
partie que tu n’a pas vue je pense)
o L’encadré « envoyer les paramètres avec la requête » contient les
params envoyés…
o Cliquer sur « ajouter », une nouvelle ligne apparait.
o Dans cette ligne, coller le XML à envoyer (un xml sur une seule
ligne, sans retour chariot) dans la valeur
o Ne rien mettre dans nom
o Décocher « encodage » et « inclure égal »

Tu y es !

Ensuite, tu ajoutes un arbre de résultat ("ajouter/recepteur/arbre de
resultat") et tu lances ton tir ("lancer/lancer")
Normalement, dans l’arbre de résultat, tu as une requête a ton
serveur, avec du détail sur celle-ci.

Milamber

unread,
Oct 20, 2009, 5:02:27 PM10/20/09
to jmet...@googlegroups.com
Bonjour,

Ci-dessous,

Le 20/10/2009 07:53, Emi38 a ecrit :
En fait, le problème c'est que l'appli qui va utiliser ce serveur
n'existe pas encore ...
  

Intéressant...


Il y aura plusieurs appli mais pour le moment, je dois tester juste le
serveur (et surtout le service rendu) pour être sur que ce dernier
fait ce qu'on lui demande. Ensuite si ses perf sont bonnes et les
tests fonctionnels Ok, ils développeront les appli dédiées.
  

Ouais...


Suis je obligée d'avoir l'appli pour tester avec JMeter ?
  
Non.


Si oui je vais demander au dev de faire un petit truc rapide. Je vais
leur dder une appli web avec un champ d entrée (ds lequel on copiera
le xml) et un bouton "go" qui enverra le tout ...
Qu en penses tu ?
  
J'en pense que je me demande comment ils ont fait les développeurs pour tester le développement du serveur ? ils ont utilisé quoi ? une appli "bidouille" ?
(ne me dit pas que l'appli serveur est déjà en production ! parce que il va falloir que je révise ma façon de voir un projet informatique ;-) à moins bien entendu que cela soit une nouvelle méthode "agile" ? (j'espère que tu sens le petit pic que je te lance...) ;-)

Je vois qu'il doit y avoir des tests fonctionnels ? comment et avec quelle appli ?

Est ce que les développeurs ont fait un document décrivant "la communication" ou "l'interface de communication" de leur application ? une sorte de "document protocole de discussion avec leur appli serveur" ?

A+
Milamber

Milamber

unread,
Oct 20, 2009, 5:12:32 PM10/20/09
to jmet...@googlegroups.com
Bonjour,

Nicolas, dans ta procédure on envoie deux fois le fichier XML : 1/ une fois en tant que "pièce jointe" (l'équivalent du champ Upload dans un formulaire Web) et 2/ en tant que paramètre HTTP (en méthode POST) sans clé (juste la valeur).
Je ne crois pas que cela soit nécessaire (on attends le document qui décrit l'interface de communication pour confirmer?)

Emi, pose la question suivante à tes développeurs :

"Est-ce que le fichier pseudo-xml est envoyé en tant que pièce attachée (flux application/octet-stream) ou en tant que paramètre 'standard' http/post (type cle=<contenu de mon fichier xml>) ?"

Cela devrait permettre de t'affiner la procédure de Nicolas.

Dans tous les cas, JMeter sait faire ;-) (c'est rassurant)

A+
Milamber



Le 20/10/2009 15:18, Nicolas a ecrit :

Nicolas

unread,
Oct 21, 2009, 3:44:50 AM10/21/09
to JMeter en français
Je n'ai pas l'impression de faire cela, mais ok si tu le dis ;-)

Juste pour precision, dans la procedure j'ecris "Sur cette requête,
ajouter le XML en donnée à poster" puis en dessous je detaille comment
faire ce point en 5 étapes (ce que tu avais deja répondu le 5
octobre). Cette phrase n'etait pas pour dire à Emi d'ajouter le XML
dans la partie "Envoyer un fichier avec la requete" (que j'aurais
aussi detailler en 5 étapes :-P).
de ttes les facons, tu as raison, si le serveur attend le XML sous
forme de fichier, mon petit test ne fonctionnera pas et il faudra
plutot utiliser la seconde partie de la requete ("Envoyer un
ficher...").

Nicolas.

Emi38

unread,
Oct 26, 2009, 5:34:25 AM10/26/09
to JMeter en français
Bonjour,

Bon et bien, j'avais fait ce que tu as noté Nicolas pour inclure mon
XML. Car effectivement quand j'ai lu le message de Milamber j'ai quand
même tenté de m'en sortir avec ;o)
Je viens par contre de comprendre pourquoi je n'avais aucun résultat :
j'avais pas mis mon arbre dans le groupe d'unité.
Maintenant que c'est correctement placé j'ai deux soucis :
- je n'arrive pas à décocher : "inclure égal"
- j'ai une erreur : "Code HTTP de réponse : 500"

C'est bien en post que mes données sont passées normalement, donc je
pense que la config des données XML sont bonnes.
Admettons que mon erreur 500 disparaisse (j ai un dev qui devrait
venir voir le pb), est il possible de faire un jeu de test avec des
XML différents. Lancer disons 10 utilisateurs virtuels mais que ces
utilisateurs n'envoyent pas tous les mêmes données ?

Merci de votre aide en tout cas !!!
> ...
>
> plus de détails »
Message has been deleted
Message has been deleted

Emi38

unread,
Oct 26, 2009, 12:35:15 PM10/26/09
to JMeter en français
Je n'ai plus l'erreur 500 du coup je peux avancer !
J'ai un petit souci par contre, même deux :
- Le fichier xml que me renvoit le serveur est trop long et je ne peux
dc le comparer ds "Réponse Assertion"... Y a t il un autre moyen de
vérifier l'intégrité de ma réponse via JMeter ou suis je obligée de
faire ça en dehors ?
- Lorsque le serveur me renvoit l'erreur 400, j aimerai que le rapport
JMeter ne me mette pas une erreur ... Ds certains cas c'est normal. J
aimerai pouvoir le paramétrer ... Selon le type de fichier envoyé il
doit etre possible d avoir une erreur 400 qui est un comportement
normal de l'appli. Est ce possible ?

Merci en tt cas de votre aide ... Je commence à y voir plus clair !!!
Et maintenant que j ai le pied dedans les tuto m'aident plus ... Je
sais plus où je vais dc je les comprends mieux ! Merci
> ...
>
> plus de détails »

Milamber

unread,
Oct 26, 2009, 8:12:30 PM10/26/09
to jmet...@googlegroups.com
Bonjour,

Ci-dessous,

Le 26/10/2009 16:35, Emi38 a ecrit :
> Je n'ai plus l'erreur 500 du coup je peux avancer !
> J'ai un petit souci par contre, même deux :
> - Le fichier xml que me renvoit le serveur est trop long et je ne peux
> dc le comparer ds "Réponse Assertion"... Y a t il un autre moyen de
> vérifier l'intégrité de ma réponse via JMeter ou suis je obligée de
> faire ça en dehors ?
>

Dans ta requête HTTP, tu peux cocher en bas "Réponse en empreinte MD5",
et faire une assertion sur la valeur MD5 retournée.

Mais pour résoudre ton problème, je pense que tu devrais sélectionner
"Commence par" dans ton assertion au lieu de "contient".
Malheureusement il s'agit d'une mauvaise traduction (qui sera corrigée
dans la prochaine version). Le "Commence par" correspond plutôt à
"Contient pour du texte brut" et le "Contient" correspond à "Contient
pour une expression régulière". Peut-être donc, tu as une erreur, car
ton assertion est un texte qui est interprété comme une expression
régulière.


> - Lorsque le serveur me renvoit l'erreur 400, j aimerai que le rapport
> JMeter ne me mette pas une erreur ... Ds certains cas c'est normal. J
> aimerai pouvoir le paramétrer ... Selon le type de fichier envoyé il
> doit etre possible d avoir une erreur 400 qui est un comportement
> normal de l'appli. Est ce possible ?
>

Oui, dans ton assertion, il faut cocher la case "Ignorer le statut"

A+
Milamber
Message has been deleted

Emi38

unread,
Oct 27, 2009, 6:02:59 AM10/27/09
to JMeter en français
Bonjour,

Merci Milamber ...
Bon ça fonctionne correctement mais je suis confrontée à un nouveau pb
lors de ma variablisation ...
En effet, je reçois du serveur comme réponse un fichier xml avec des
retours chariots entre chaque balise xml.
Du coup, ça fonctionne correctement qd je tape en directe ds ma
fenetre de vérification du résultat mes données avec les retours
chariots mais qd je crée un fichiers de jeu de données (csv) avec une
colonne entree et une sortie je suis embeté.
Forcement csv comprend le retour chariot comme la creation d une
nouvelle ligne donc il le prend pour une nouvelle entree au lieu de le
prendre pour la fin de mon fichier de sortie !!!

Vous comprenez mon pb où je ne suis pas clair ?
> ...
>
> plus de détails »

Milamber

unread,
Oct 27, 2009, 6:45:31 PM10/27/09
to jmet...@googlegroups.com
Ci-dessous,

Le 27/10/2009 09:48, Emi38 a ecrit :
> Ok merci Milamber ...
> En fait pour mon pb de comparaison "too long" était un pb seulement d
> affichage ... Il peut faire la comparaison mais peut pas m afficher
> les résultats sur la console ... Qd je crée un fichier de résultat je
> m en sors.
> Par contre, je suis en train de variabiliser et j'ai un souci de
> retour chariot !
>
> Je m explique :
> - en entrée j'ai un xml : je le rentre sous forme d un xml sur une
> seule ligne sans retour chariot.
> - en sortie : le serveur me renvoie un xml avec des retours chariot.
> Le souci c'est que je suis en train de mettre mes données ds un csv.
> pour le xml d entrée pas de pb. Mais pour celui de sortie si je le
> mets avec les retour chariots il pense que c'est une nouvelle entrée
> (logique un retour à la ligne ds un fichier csv c'est une nouvelle
> ligne) et si je les supprime y a pas de matching possible entre ce que
> me renvoie le serveur et ce que j ai ds la base ...
> Vous voyez ce que je veux dire ?
>

Oui je crois.
Ma question est : es-tu vraiment certain qu'il te faille vérifier la
totalité de ton fichier xml de réponse ? quelques chaines à des endroits
clés ne te suffirai pas ?

Sinon, pour répondre à ton besoin, voici une solution possible :
Il faut ajouter un élément Post-processeur > Post-processeur BeanShell
(en fils de ta requête HTTP, au même niveau que ton assertion). Dedans
mettre ce code java :
===
String echantillon = prev.getResponseDataAsString();
echantillon = echantillon.replaceAll("\n","");
prev.setResponseData(echantillon);
===
Il va servir à remplacer les retours à la ligne (\n) par "rien",
ensuite, l'assertion va passer et faire son travail de vérification.
(j'ai testé ici, cela fonctionne, avec un fichier XML en réponse, et ce
même fichier XML sans les \n en vérification)
(Attention, dans ton assertion, il faut utiliser le champ "Commence par")

A+
Milamber
>> ...
>>
>> plus de détails »
>>
> >
>
>

Emi38

unread,
Oct 29, 2009, 4:28:36 AM10/29/09
to JMeter en français
Effectivement, j'ai vu avec les dev et je peux me contenter de
vérifier juste certains item.
Je croyais avoir changé mon message mais a priori non ... Faut dire qu
en ce moment je ne touche pas terre !!

En tt cas quand j'aurai un peu de temps je testerai ta solution de mon
côté car ça peut toujours servir ! Merci bien !
Là je regarde la présentation des résultats des tirs de charge ... Je
lis tes tutos !
> ...
>
> plus de détails »

Emi38

unread,
Oct 29, 2009, 11:17:17 AM10/29/09
to JMeter en français
Me revoici avec mes questions ... Au rythme d une question minimum par
jour c'est pas mal !
Alors mon serveur me renvoit :
- fichier entrée OK : ** un code http :200 + un fichier XML -- sans
mot "error" et mot "action" dedans le test est OK
** un code http :200 + un fichier XML --
avec mot "error" dedans le test est KO
- fichier entrée erroné : un code http: 400 + un fichier HTML -> le
test est OK
- un code http: 500 -> le test est KO

Que pensez vous etre la meilleur solution ?
Je crée plusieurs csv :
- un d entrée OK et je fais des tests sur la sortie (présence/absence
des mots "error" et "action")
- un d'entrée erronée et ds ce cas j' ignore le code http et je
cherche "Invalid" ds mon html
Dans ces 2 cas les codes 500 apparaitront comme KO (il me semble)

Ou alors j'ai un moyen de faire des tests melant les deux ? Mais là je
ne vois aps comment gérer mes "assertions Réponses" ...
Par contre ça me parait bizarre de faire des tests séparés pour ce
genre de choses. Moi je préfère la solution où je pourrais mixer les
deux mais je ne vois vraiment pas comment tester le tout !!!

Merci d avance
> ...
>
> plus de détails »
Reply all
Reply to author
Forward
0 new messages