{"id":1485,"date":"2016-08-30T14:24:27","date_gmt":"2016-08-30T13:24:27","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=1485"},"modified":"2016-08-30T14:24:27","modified_gmt":"2016-08-30T13:24:27","slug":"jmeter-exemple-de-script-java-dans-un-element-post-processeur-jsr223-pour-enregistrer-des-donnees-dans-un-fichier","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2016\/08\/30\/jmeter-exemple-de-script-java-dans-un-element-post-processeur-jsr223-pour-enregistrer-des-donnees-dans-un-fichier-1485.html","title":{"rendered":"JMeter : Exemple de script Java dans un \u00e9l\u00e9ment Post-Processeur JSR223 pour enregistrer des donn\u00e9es dans un fichier"},"content":{"rendered":"<p>Ce billet est une suite ou mise \u00e0 jour de ce <a href=\"http:\/\/blog.milamberspace.net\/index.php\/2009\/03\/13\/jmeter-exemple-de-script-beanshell-pour-enregistrer-des-donnees-dans-un-fichier-241.html\">premier billet<\/a> parlant d&rsquo;un script BeanShell pour enregistrer des donn\u00e9es dans un fichier texte.<\/p>\n<p>Cette fois-ci, ce sera en utilisant un \u00e9l\u00e9ment <a href=\"http:\/\/jmeter.apache.org\/usermanual\/component_reference.html#JSR223_PostProcessor\">Post-Processeur JSR223<\/a>, et surtout la derni\u00e8re version de <a href=\"http:\/\/jmeter.apache.org\/download_jmeter.cgi\">JMeter<\/a> 3.0 avec ses nouvelles ic\u00f4nes et autres am\u00e9liorations depuis l&rsquo;\u00e9poque du premier billet (2009!)<\/p>\n<p>Soit le plan de test suivant :<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_288.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1489\" src=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_288.png\" alt=\"Arbre JMeter\" width=\"336\" height=\"183\" \/><\/a>\u00a0\u00a0 <!--more--><\/p>\n<p>Dans ce plan de test, on extrait avec l&rsquo;Extracteur Expression R\u00e9guli\u00e8re des donn\u00e9es de la page re\u00e7ue, (ici un NOMBRE).<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_285.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1486\" src=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_285.png\" alt=\"Extracteur RegExp\" width=\"619\" height=\"282\" \/><\/a><\/p>\n<p>On ajoute <em>au passage (car non-obligatoire)<\/em> un \u00e9l\u00e9ment <a href=\"http:\/\/jmeter.apache.org\/usermanual\/component_reference.html#Response_Assertion\">Assertion R\u00e9ponse<\/a> pour s&rsquo;assurer que l&rsquo;expression r\u00e9guli\u00e8re aura bien r\u00e9ussie (on v\u00e9rifie si on (re)trouve le NOMBRE pr\u00e9c\u00e9demment cherch\u00e9 dans la page).<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_286.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1487\" src=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_286.png\" alt=\"Assertion R\u00e9ponse JMeter\" width=\"725\" height=\"333\" \/><\/a><\/p>\n<p>Et pour finir, on a un \u00e9l\u00e9ment <a href=\"http:\/\/jmeter.apache.org\/usermanual\/component_reference.html#JSR223_PostProcessor\">Post-Processeur JSR223<\/a> qui ex\u00e9cute un bout de code Java pour faire l&rsquo;enregistrement de la variable NOMBRE dans un fichier.<\/p>\n<p><em>Attention<\/em> \u00e0 bien s\u00e9lectionner le langage Java dans le champ \u00e9ponyme.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_287.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1488\" src=\"http:\/\/blog.milamberspace.net\/wp-content\/uploads\/2016\/08\/Selection_287.png\" alt=\"Post-Processeur JSR223 dans JMeter\" width=\"728\" height=\"438\" \/><\/a><\/p>\n<p><!--more-->Le code source Java est le suivant :<\/p>\n<pre>if (prev.isSuccessful()) {\r\n    String nombre = vars.get(\"NOMBRE\");\r\n    try {\r\n        BufferedWriter out = new BufferedWriter(new FileWriter(\"\/tmp\/nombre.csv\",true));\r\n        out.write(nombre +\"\\n\");\r\n        out.close();\r\n    } catch (IOException e) {}\r\n}<\/pre>\n<p>Quelques commentaires :<\/p>\n<ul>\n<li>Le test sur le <em>prev.isSuccessful() <\/em>afin d&rsquo;enregistrer seulement la requ\u00eate HTTP rattach\u00e9e a r\u00e9ussi,<\/li>\n<li>Le <em>vars.get(\u00ab\u00a0NOMBRE\u00a0\u00bb);<\/em> permet de r\u00e9cup\u00e9rer dans une variable Java (nombre) le contenu de la variable JMeter ${NOMBRE},<\/li>\n<li>Le reste du code permet d&rsquo;\u00e9crire dans le fichier \/tmp\/nombre.csv (chemin et nom \u00e0 adapter en fonction de votre contexte).<\/li>\n<\/ul>\n<p>Et voil\u00e0.<\/p>\n<p>&nbsp;<\/p>\n<p><em><span style=\"text-decoration: underline;\">Nota<\/span><\/em> : Cette mani\u00e8re d&rsquo;op\u00e9rer est une fa\u00e7on de faire.<\/p>\n<p>Apache JMeter propose nativement :<\/p>\n<ul>\n<li>La possibilit\u00e9 d&rsquo;enregistrer le contenu de variable(s) JMeter directement dans un fichier CSV ou JTL de r\u00e9sultats via la fonctionnalit\u00e9s des \u00ab <a href=\"http:\/\/jmeter.apache.org\/usermanual\/listeners.html#sample_variables\">samples_variables<\/a> \u00bb.<\/li>\n<li>Ou bien, deuxi\u00e8me fa\u00e7on de faire : d&rsquo;enregistrer l&rsquo;ensemble des donn\u00e9es de r\u00e9ponses d&rsquo;une requ\u00eate via le r\u00e9cepteur \u00ab <a href=\"http:\/\/jmeter.apache.org\/usermanual\/component_reference.html#Save_Responses_to_a_file\">Sauvegarder les r\u00e9ponses vers un fichier<\/a> \u00bb.<\/li>\n<\/ul>\n<p>N\u00e9anmois, il est parfois int\u00e9ressant de pouvoir r\u00e9cup\u00e9rer des variables JMeter durant un test, de faire des op\u00e9rations dessus afin ensuite de cr\u00e9er un fichier de donn\u00e9es pr\u00e9-format\u00e9 \u00e0 la vol\u00e9e.<\/p>\n<p>.\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ce billet est une suite ou mise \u00e0 jour de ce premier billet parlant d&rsquo;un script BeanShell pour enregistrer des donn\u00e9es dans un fichier texte. Cette fois-ci, ce sera en utilisant un \u00e9l\u00e9ment Post-Processeur JSR223, et surtout la derni\u00e8re version de JMeter 3.0 avec ses nouvelles ic\u00f4nes et autres am\u00e9liorations depuis l&rsquo;\u00e9poque du premier billet &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2016\/08\/30\/jmeter-exemple-de-script-java-dans-un-element-post-processeur-jsr223-pour-enregistrer-des-donnees-dans-un-fichier-1485.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">JMeter : Exemple de script Java dans un \u00e9l\u00e9ment Post-Processeur JSR223 pour enregistrer des donn\u00e9es dans un fichier<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,17,33],"tags":[374,324,330,373],"class_list":["post-1485","post","type-post","status-publish","format-standard","hentry","category-apache","category-java","category-jmeter","tag-file","tag-java","tag-jmeter","tag-jsr223"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1485","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=1485"}],"version-history":[{"count":4,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1485\/revisions"}],"predecessor-version":[{"id":1493,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1485\/revisions\/1493"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=1485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=1485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=1485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}