{"id":1009,"date":"2011-11-12T18:26:52","date_gmt":"2011-11-12T18:26:52","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=1009"},"modified":"2011-11-12T18:29:30","modified_gmt":"2011-11-12T18:29:30","slug":"jmeter-determiner-automatiquement-le-chemin-dun-fichier-source-de-donnees-csv-en-fonction-de-son-systeme-dexploitation","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2011\/11\/12\/jmeter-determiner-automatiquement-le-chemin-dun-fichier-source-de-donnees-csv-en-fonction-de-son-systeme-dexploitation-1009.html","title":{"rendered":"JMeter : D\u00e9terminer automatiquement le chemin d&rsquo;un fichier Source de donn\u00e9es CSV en fonction de son syst\u00e8me d&rsquo;exploitation"},"content":{"rendered":"<p><em>Ce billet est inspir\u00e9 <a href=\"http:\/\/blog.milamberspace.net\/index.php\/jmeter-pages\/jmeter-variabilisation-de-donnees\/comment-page-1#comment-1444\">ce commentaire de Vincent D<\/a>. Merci \u00e0 lui pour son commentaire et son autorisation d&rsquo;utilisation dans ce billet.<\/em><\/p>\n<p>Imaginez que vous devez faire un test de charge distribu\u00e9 avec un poste contr\u00f4leur et deux postes injecteurs. Malheureusement, vos injecteurs n&rsquo;ont pas le m\u00eame syst\u00e8me d&rsquo;exploitation que votre poste contr\u00f4leur. Ce dernier est sous Windows, et les injecteurs sont sous Linux.<\/p>\n<p>Dans votre script JMeter, il y a un \u00e9l\u00e9ment <strong>Source de donn\u00e9es CSV<\/strong> qui vous permet (par exemple) d&rsquo;avoir une liste d&rsquo;identifiants\/mot de passe de connexion.<\/p>\n<p>Lors de la mise au point de votre script JMeter, vous utilisez seulement votre poste contr\u00f4leur, et la valeur du champ <strong>Nom de fichier<\/strong> dans votre <strong>Source de donn\u00e9es CSV<\/strong> est\u00a0:<\/p>\n<pre>c:\/Temp\/liste_login.csv<\/pre>\n<p>Ce chemin est valable sous Windows, mais bien entendu, ne sera pas valable sur vos injecteurs lorsque vous allez lancer le test distribu\u00e9.<\/p>\n<p>Juste avant ce test, il faut modifier le script JMeter pour changer la valeur du Nom de fichier par\u00a0:<\/p>\n<pre>\/tmp\/liste_login.csv<\/pre>\n<p>Facile \u00e0 faire, mais aussi facile \u00e0 oublier de faire&#8230;<\/p>\n<p>Voici un moyen de le faire automatiquement.<!--more--><\/p>\n<p>Ci-dessous un plan de test d&rsquo;exemple\u00a0:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Plan de test\" src=\"\/wp-content\/images\/jmeter-39-chemin-os\/jmeter_chemin_os_017.png\" alt=\"\" width=\"259\" height=\"188\" \/><\/p>\n<p>Par rapport au commentaire de Vincent D. j&rsquo;ajoute un \u00e9l\u00e9ment<a title=\"JMeter Manuel Groupes d'unit\u00e9s de d\u00e9but\" href=\"http:\/\/jmeter.apache.org\/usermanual\/component_reference.html#setUp_Thread_Group\"><strong> Groupe d&rsquo;unit\u00e9s de d\u00e9but<\/strong><\/a>. Ce dernier permet de r\u00e9aliser l&rsquo;op\u00e9ration de d\u00e9finition du chemin de fichier <strong><span style=\"text-decoration: underline;\">avant<\/span><\/strong> n&rsquo;importe quel autre <strong>Groupe d&rsquo;unit\u00e9s<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Groupe d'unit\u00e9s de d\u00e9but\" src=\"\/wp-content\/images\/jmeter-39-chemin-os\/jmeter_chemin_os_018.png\" alt=\"\" width=\"390\" height=\"266\" \/><\/p>\n<p>Donc, dans le Groupe d&rsquo;unit\u00e9s de d\u00e9but, on place un \u00c9chantillon BeanShell qui va contenir un simple bout de code (Java) pour\u00a0:<\/p>\n<ol>\n<li>R\u00e9cup\u00e9rer le nom du syst\u00e8me d&rsquo;exploitation (depuis les Propri\u00e9t\u00e9s Java)<\/li>\n<li>Faire un test sur le nom \u00ab\u00a0windows\u00a0\u00bb, si oui on cr\u00e9\u00e9 une propri\u00e9t\u00e9 JMeter \u00ab\u00a0CHEMIN\u00a0\u00bb qui aura la valeur du chemin dans le poste Windows<\/li>\n<li>Sinon, ce sera le chemin Linux \/ Unix et Mac<\/li>\n<\/ol>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"BeanShell de d\u00e9termination du syst\u00e8me d'exploitation et d\u00e9finition du chemin en propri\u00e9t\u00e9s JMeter\" src=\"\/wp-content\/images\/jmeter-39-chemin-os\/jmeter_chemin_os_019.png\" alt=\"\" width=\"407\" height=\"281\" \/><\/p>\n<p>Le code\u00a0:<\/p>\n<pre>String sOs = System.getProperty(\"os.name\").toLowerCase();\r\n if (sOs.contains(\"windows\")) {\r\n props.setProperty(\"CHEMIN\", \"c:\/Temp\/\");\r\n } else {\r\n \/\/ couvre Linux\/Unix\/Mac\r\n props.setProperty(\"CHEMIN\", \"\/tmp\/\");\r\n }<\/pre>\n<p>On notera que le chemin est d\u00e9pos\u00e9 dans une propri\u00e9t\u00e9 JMeter (et non une variable JMeter), car la propri\u00e9t\u00e9 JMeter se propage \u00e0 travers les Groupes d&rsquo;unit\u00e9s, ce qui n&rsquo;est pas le cas de la variable JMeter.<\/p>\n<p>Ensuite, on peut donc utiliser notre propri\u00e9t\u00e9 CHEMIN dans l&rsquo;\u00e9l\u00e9ment Source de donn\u00e9es CSV pour avoir un chemin adapt\u00e9 en fonction du syst\u00e8me d&rsquo;exploitation.<\/p>\n<p>On utilisera la fonction JMeter __P() pour r\u00e9cup\u00e9rer la valeur de la propri\u00e9t\u00e9 CHEMIN :<\/p>\n<pre>${__P(CHEMIN)}<\/pre>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Utilisation de la propri\u00e9t\u00e9 du chemin\" src=\"\/wp-content\/images\/jmeter-39-chemin-os\/jmeter_chemin_os_020.png\" alt=\"\" width=\"525\" height=\"289\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ce billet est inspir\u00e9 ce commentaire de Vincent D. Merci \u00e0 lui pour son commentaire et son autorisation d&rsquo;utilisation dans ce billet. Imaginez que vous devez faire un test de charge distribu\u00e9 avec un poste contr\u00f4leur et deux postes injecteurs. Malheureusement, vos injecteurs n&rsquo;ont pas le m\u00eame syst\u00e8me d&rsquo;exploitation que votre poste contr\u00f4leur. Ce dernier &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2011\/11\/12\/jmeter-determiner-automatiquement-le-chemin-dun-fichier-source-de-donnees-csv-en-fonction-de-son-systeme-dexploitation-1009.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">JMeter : D\u00e9terminer automatiquement le chemin d&rsquo;un fichier Source de donn\u00e9es CSV en fonction de son syst\u00e8me d&rsquo;exploitation<\/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,34],"tags":[330,170],"class_list":["post-1009","post","type-post","status-publish","format-standard","hentry","category-apache","category-jmeter","category-test-fonctionnel","category-tests-de-charges","tag-jmeter","tag-test-distribue"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1009","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=1009"}],"version-history":[{"count":8,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1009\/revisions"}],"predecessor-version":[{"id":1016,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1009\/revisions\/1016"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=1009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=1009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=1009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}