{"id":784,"date":"2010-12-18T20:36:48","date_gmt":"2010-12-18T20:36:48","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=784"},"modified":"2010-12-18T20:38:16","modified_gmt":"2010-12-18T20:38:16","slug":"jmeter-le-testeur-dexpression-reguliere","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2010\/12\/18\/jmeter-le-testeur-dexpression-reguliere-784.html","title":{"rendered":"JMeter\u00a0: le testeur d&rsquo;expression r\u00e9guli\u00e8re"},"content":{"rendered":"<p>Depuis la version 2.4 de JMeter, un nouvel sous-\u00e9l\u00e9ment du r\u00e9cepteur <strong>Arbre de r\u00e9sultats<\/strong> est apparu, il s&rsquo;agit du <strong>Testeur de RegExp<\/strong>.<\/p>\n<p>Avant de vous montrer comment le trouver et l&rsquo;utiliser, parlons-en un peu.<\/p>\n<p>Comme vous le savez peut-\u00eatre, JMeter dispose d&rsquo;un \u00e9l\u00e9ment <strong>Extracteur Expression r\u00e9guli\u00e8re<\/strong> dans la cat\u00e9gorie <strong>Post-processeurs<\/strong>. La vocation de cet \u00e9l\u00e9ment <strong>Extracteur Expression r\u00e9guli\u00e8re<\/strong> est d&rsquo;extraire \u00e0 partir d&rsquo;une expression r\u00e9guli\u00e8re une ou plusieurs cha\u00eenes de caract\u00e8res depuis la r\u00e9ponse re\u00e7ue d&rsquo;un \u00e9chantillon de test. La puissance en termes d&rsquo;extraction de donn\u00e9es de cet \u00e9l\u00e9ment est tr\u00e8s forte, cependant, il est parfois peu ais\u00e9e de trouver du premier coup la bonne expression r\u00e9guli\u00e8re qui fera ce que vous voulez. En effet, vous devez jouer et rejouer le sc\u00e9nario pour tester votre expression r\u00e9guli\u00e8re tant qu&rsquo;elle n&rsquo;est pas au point.<\/p>\n<p>C&rsquo;est l\u00e0 qu&rsquo;intervient le <strong>Testeur de RegExp<\/strong>.<!--more--><\/p>\n<p>Vous l&rsquo;avez d\u00e9j\u00e0 compris avec son nom, cet \u00e9l\u00e9ment est un testeur d&rsquo;expression r\u00e9guli\u00e8re \u00ab\u00a0au format JMeter\u00a0\u00bb. Ce testeur ne se branche pas sur un \u00e9chantillon, mais est un type de visualiseur du r\u00e9cepteur <strong>Arbre de r\u00e9sultats<\/strong>, ce qui signifie que vous allez pouvoir effectuer des tests d&rsquo;expression r\u00e9guli\u00e8re directement sur les r\u00e9sultats d&rsquo;\u00e9chantillons se trouvant dans un <strong>Arbre de r\u00e9sultats<\/strong>.<\/p>\n<p>Par exemple, si vous avez suivi ce petit billet sur <a href=\"http:\/\/blog.milamberspace.net\/index.php\/2010\/12\/01\/jmeter%C2%A0-sauvegarder-dans-un-fichier-votre-session-de-navigation-lors-de-lenregistrement-de-vos-scenarios-fonctionnels-778.html\">l&rsquo;enregistrement de votre sc\u00e9nario fonctionnel pour une r\u00e9utilisation \u00e0 froid<\/a>, ou bien que vous avez ex\u00e9cut\u00e9 une fois votre sc\u00e9nario de test et qu&rsquo;il y a un probl\u00e8me sur une expression r\u00e9guli\u00e8re, le tout avec un <strong>Arbre de r\u00e9sultats<\/strong>, vous pourrez utiliser le<strong> Testeur d&rsquo;expression r\u00e9guli\u00e8re (de RegExp)<\/strong> pour cr\u00e9er ou valider votre expression r\u00e9guli\u00e8re.<\/p>\n<p>La capture d&rsquo;\u00e9cran ci-dessous montre le menu permettant d&rsquo;acc\u00e9der au testeur depuis un <strong>Arbre de r\u00e9sultats<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Testeur de RegExp JMeter\" src=\"\/wp-content\/images\/jmeter30-tips\/jmeter-tips04.png\" alt=\"\" width=\"450\" height=\"653\" \/><\/p>\n<p>Ensuite dans le champ <em>Expression r\u00e9guli\u00e8re,<\/em> il suffit de saisir son expression r\u00e9guli\u00e8re (en suivant le format de JMeter, \u00e0 savoir <a href=\"http:\/\/jakarta.apache.org\/oro\/\">Jakarta ORO<\/a>).<\/p>\n<p>Dans l&rsquo;exemple ci-dessous, l&rsquo;expression r\u00e9guli\u00e8re est \u00ab\u00a0debian(.+?).html\u00a0\u00bb, signifiant\u00a0: tout ce qui commence par debian et se termine par .html avec au milieu n&rsquo;importe quoi. Les parenth\u00e8ses indiquant que l&rsquo;on souhaite r\u00e9cup\u00e9rer ce \u00ab\u00a0n&rsquo;importe quoi\u00a0\u00bb (dans une variable JMeter dans le cas d&rsquo;un Extracteur RegExp)<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Utilisation de Testeur de RegExp JMeter\" src=\"\/wp-content\/images\/jmeter30-tips\/jmeter-tips05.png\" alt=\"\" width=\"592\" height=\"520\" \/><\/p>\n<p>Dans le champ texte de la r\u00e9ponse du <strong>Testeur de RegExp<\/strong>, on trouve les \u00e9l\u00e9ments de r\u00e9ponses suivants\u00a0:<\/p>\n<pre>Match count: 6\r\nMatch[1][0]=debian-squeeze-772.html\r\nMatch[1][1]=-squeeze-772.\r\nMatch[2][0]=debian-squeeze-772.html\r\nMatch[2][1]=-squeeze-772.\r\nMatch[3][0]=debian-squeeze-6-0-762.html\r\nMatch[3][1]=-squeeze-6-0-762.\r\nMatch[4][0]=debian.org\/releases\/testing\/index.fr.html\r\nMatch[4][1]=.org\/releases\/testing\/index.fr.\r\nMatch[5][0]=debian-squeeze-6-0-762.html\r\nMatch[5][1]=-squeeze-6-0-762.\r\nMatch[6][0]=debian-squeeze-6-0-762.html\r\nMatch[6][1]=-squeeze-6-0-762.<\/pre>\n<p>La premi\u00e8re ligne signifie qu&rsquo;il y a eu 6 correspondances trouv\u00e9es pour l&rsquo;expression r\u00e9guli\u00e8re.<\/p>\n<p>Ensuite, on a des groupements \u00ab\u00a0matrice\u00a0\u00bb, les correspondances sont indiqu\u00e9es sur deux lignes (ou plus, c&rsquo;est en fonction du nombre de parenth\u00e8ses indiquant les sections \u00e0 r\u00e9cup\u00e9rer). Pour les lignes 2 et 3 :<\/p>\n<ul>\n<li>la premi\u00e8re donne la cha\u00eene \tcompl\u00e8te de correspondance de l&rsquo;expression r\u00e9guli\u00e8re<\/li>\n<li>la deuxi\u00e8me donnant la valeur \tvoulant \u00eatre r\u00e9cup\u00e9r\u00e9e (le n&rsquo;importe quoi des parenth\u00e8ses)<\/li>\n<\/ul>\n<p>Les lignes suivantes indiquant les autres correspondances en suivant le m\u00eame mod\u00e8le.<\/p>\n<p>Si l&rsquo;\u00e9l\u00e9ment <strong>Testeur de RegExp<\/strong> ne vous donne pas de r\u00e9ponse (\u00e9cran blanc), c&rsquo;est qu&rsquo;il y a un probl\u00e8me dans le format de votre expression r\u00e9guli\u00e8re.<\/p>\n<p>Si vous \u00eates satisfait de votre expression r\u00e9guli\u00e8re, il ne vous reste plus qu&rsquo;\u00e0 la copier\/coller dans un \u00e9l\u00e9ment <strong>Extracteur Expression r\u00e9guli\u00e8re<\/strong>.<\/p>\n<p>Pour plus d&rsquo;aide sur les expressions r\u00e9guli\u00e8res, j&rsquo;ai fait les quelques billets suivants\u00a0:<\/p>\n<ul>\n<li><a href=\"http:\/\/blog.milamberspace.net\/index.php\/2009\/12\/31\/quelques-cas-dutilisation-de-lextracteur-dexpression-reguliere-dans-jmeter-554.html\">Quelques cas d\u2019utilisation de l\u2019extracteur d\u2019expression r\u00e9guli\u00e8re dans JMeter<\/a><\/li>\n<li><a href=\"http:\/\/blog.milamberspace.net\/index.php\/2009\/03\/08\/jmeter-trouver-le-bon-element-dans-une-liste-avec-les-expressions-regulieres-et-en-mode-ligne-unique-227.html\">Trouver le bon \u00e9l\u00e9ment dans une liste avec les expressions r\u00e9guli\u00e8res et en mode ligne unique<\/a><\/li>\n<\/ul>\n<p><strong><em>Je profite de ce billet, pour remercier Jean-Louis et Jean-Luc, deux m\u00e9trologues, qui m&rsquo;ont sugg\u00e9r\u00e9 l&rsquo;id\u00e9e d&rsquo;ajouter ce tester d&rsquo;expression r\u00e9guli\u00e8re dans JMeter. Et Jean-Louis, de nouveau, pour m&rsquo;avoir fourni un exemple de code Java avec le moteur d&rsquo;expression r\u00e9guli\u00e8re du JDK.<\/em><\/strong><\/p>\n<p>.\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depuis la version 2.4 de JMeter, un nouvel sous-\u00e9l\u00e9ment du r\u00e9cepteur Arbre de r\u00e9sultats est apparu, il s&rsquo;agit du Testeur de RegExp. Avant de vous montrer comment le trouver et l&rsquo;utiliser, parlons-en un peu. Comme vous le savez peut-\u00eatre, JMeter dispose d&rsquo;un \u00e9l\u00e9ment Extracteur Expression r\u00e9guli\u00e8re dans la cat\u00e9gorie Post-processeurs. La vocation de cet \u00e9l\u00e9ment &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2010\/12\/18\/jmeter-le-testeur-dexpression-reguliere-784.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">JMeter\u00a0: le testeur d&rsquo;expression r\u00e9guli\u00e8re<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,33,169],"tags":[330,164,245],"class_list":["post-784","post","type-post","status-publish","format-standard","hentry","category-apache","category-jmeter","category-test-fonctionnel","tag-jmeter","tag-regexp","tag-testeur"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/comments?post=784"}],"version-history":[{"count":5,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/784\/revisions"}],"predecessor-version":[{"id":789,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/784\/revisions\/789"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}