{"id":241,"date":"2009-03-13T23:07:51","date_gmt":"2009-03-13T23:07:51","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=241"},"modified":"2009-07-11T22:01:00","modified_gmt":"2009-07-11T21:01:00","slug":"jmeter-exemple-de-script-beanshell-pour-enregistrer-des-donnees-dans-un-fichier","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2009\/03\/13\/jmeter-exemple-de-script-beanshell-pour-enregistrer-des-donnees-dans-un-fichier-241.html","title":{"rendered":"JMeter : Exemple de script BeanShell pour enregistrer des donn\u00e9es dans un fichier"},"content":{"rendered":"<p style=\"\">Un petit billet dans un but p\u00e9dagogique, pour montrer un exemple de script BeanShell pour enregistrer des donn\u00e9es dans un fichier texte.<\/p>\n<p style=\"\">Soit le plan de test suivant :<\/p>\n<p style=\" text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Plan de test Beanshell exemple\" src=\"\/wp-content\/images\/jmeter14-img\/01-jmeter-beanshell-plan-de-test.png\" alt=\"\" width=\"278\" height=\"154\" \/><\/p>\n<p style=\"\">Dans ce plan de test, on extrait avec l&rsquo;extracteur d&rsquo;expressions r\u00e9guli\u00e8res des donn\u00e9es de la page re\u00e7ue, (ici un NOMBRE).<\/p>\n<p style=\" text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Jmeter RegExp\" src=\"\/wp-content\/images\/jmeter14-img\/02-jmeter-regexp.png\" alt=\"\" width=\"464\" height=\"228\" \/><\/p>\n<p style=\"\">On ajoute &lsquo;au passage&rsquo; une assertion de r\u00e9ponse qui est l\u00e0 pour s&rsquo;assurer que l&rsquo;expression regexp a r\u00e9ussie (on v\u00e9rifier si on (re)trouve le NOMBRE pr\u00e9c\u00e9demment cherch\u00e9 dans la page).<\/p>\n<p style=\" text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Assertion\" src=\"\/wp-content\/images\/jmeter14-img\/03-jmeter-beanshell-assertion.png\" alt=\"\" width=\"382\" height=\"314\" \/><\/p>\n<p style=\"\">Et pour finir, on a un \u00e9l\u00e9ment post-processeur BeanShell qui ex\u00e9cuter un bout de code Java pour faire l&rsquo;enregistrement de la variable NOMBRE dans un fichier.<\/p>\n<p style=\" text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Exemple de scripts BeanShell pour JMeter\" src=\"\/wp-content\/images\/jmeter14-img\/04-jmeter-beanshell-script.png\" alt=\"\" width=\"524\" height=\"370\" \/><\/p>\n<p style=\"\">\n<p style=\"\"><!--more-->Le code du BeanShell (du Java donc) est le suivant :<\/p>\n<pre style=\"\">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 les \u00e9chantillons r\u00e9ussis,<\/li>\n<li>Le <em>vars.get(\u00ab\u00a0NOMBRE\u00a0\u00bb);<\/em> pour r\u00e9cup\u00e9rer dans une variable Java le contenu de la varialbe JMeter NOMBRE,<\/li>\n<li>Le reste pour \u00e9crire dans un fichier.<\/li>\n<\/ul>\n<p style=\"\">Et voil\u00e0.<\/p>\n<p style=\"\"><span style=\"text-decoration: underline;\"><em>Pr\u00e9-requis :<\/em><\/span> pour ex\u00e9cuter des scripts <a href=\"http:\/\/beanshell.org\/\">BeanShell<\/a> avec JMeter, il faut r\u00e9cup\u00e9rer le <a href=\"http:\/\/beanshell.org\/bsh-2.0b4.jar\">fichier JAR du BeanShell<\/a>, et le d\u00e9poser dans le r\u00e9pertoire jmeter_home\/lib (ou dans le classpath)<\/p>\n<p style=\"\"><em><span style=\"text-decoration: underline;\">Nota<\/span><\/em> : JMeter propose d&rsquo;une part la possibilit\u00e9 d&rsquo;enregistrer directement dans le fichier CSV ou JTL de r\u00e9sultats (via la fonctionnalit\u00e9s des \u00ab <a href=\"http:\/\/jakarta.apache.org\/jmeter\/usermanual\/listeners.html#sample_variables\">samples_variables<\/a> \u00bb), et d&rsquo;autre part d&rsquo;enregistrer l&rsquo;ensemble des donn\u00e9es de r\u00e9ponses (via le r\u00e9cepteur \u00ab <a href=\"http:\/\/jakarta.apache.org\/jmeter\/usermanual\/component_reference.html#Save_Responses_to_a_file\">Sauvegarder les r\u00e9ponses vers un fichier<\/a> \u00bb), cependant, il est parfois int\u00e9ressant de pouvoir r\u00e9cup\u00e9rer quelques variables durant un test JMeter, faire des op\u00e9rations dessus et\/ou cr\u00e9er un fichier de donn\u00e9es pr\u00e9-format\u00e9 \u00e0 la vol\u00e9e.<\/p>\n<p style=\"\">.\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un petit billet dans un but p\u00e9dagogique, pour montrer un exemple de script BeanShell pour enregistrer des donn\u00e9es dans un fichier texte. Soit le plan de test suivant : Dans ce plan de test, on extrait avec l&rsquo;extracteur d&rsquo;expressions r\u00e9guli\u00e8res des donn\u00e9es de la page re\u00e7ue, (ici un NOMBRE). On ajoute &lsquo;au passage&rsquo; une assertion &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2009\/03\/13\/jmeter-exemple-de-script-beanshell-pour-enregistrer-des-donnees-dans-un-fichier-241.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">JMeter : Exemple de script BeanShell pour enregistrer des donn\u00e9es dans un fichier<\/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":[167,166,330,168],"class_list":["post-241","post","type-post","status-publish","format-standard","hentry","category-apache","category-jmeter","category-test-fonctionnel","tag-beanshell","tag-fonctionnel","tag-jmeter","tag-scripts"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/241","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=241"}],"version-history":[{"count":5,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/241\/revisions"}],"predecessor-version":[{"id":387,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/241\/revisions\/387"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}