{"id":1340,"date":"2013-08-02T17:44:50","date_gmt":"2013-08-02T17:44:50","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=1340"},"modified":"2013-08-05T10:45:04","modified_gmt":"2013-08-05T10:45:04","slug":"les-10-choses-a-verifier-avant-de-lancer-son-test-de-charge-avec-jmeter","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2013\/08\/02\/les-10-choses-a-verifier-avant-de-lancer-son-test-de-charge-avec-jmeter-1340.html","title":{"rendered":"Les 10 choses \u00e0 v\u00e9rifier avant de lancer son test de charge avec JMeter"},"content":{"rendered":"<style type=\"text\/css\"><!--\n@page { margin: 2cm }\n\t\tP { margin-bottom: 0.21cm }\n--><\/style>\n<p>Voici une check-list qui pourrait vous \u00e9viter quelques d\u00e9convenues (genre test de charge rat\u00e9) si vous la d\u00e9roulez juste avant de lancer votre test de charge.<\/p>\n<ol>\n<li>V\u00e9rifier que les \u00e9l\u00e9ments <strong>Groupe d&rsquo;unit\u00e9s<\/strong> sont corrects, \u00e0 savoir le bon nombre d&rsquo;unit\u00e9s, la bonne mont\u00e9e en charge, le nombre d&rsquo;it\u00e9rations ou la bonne dur\u00e9e.<\/li>\n<li>V\u00e9rifier les \u00e9l\u00e9ments <strong>Compteurs de temps :<\/strong> est-ce que c&rsquo;est la bonne valeur de temps de pause, ou de d\u00e9bit constant ?<\/li>\n<li>V\u00e9rifier que vous n&rsquo;avez pas oubli\u00e9 de mettre un <strong>R\u00e9cepteur<\/strong> pour enregistrer au format CSV un fichier de vos temps de r\u00e9ponses (ou bien ne pas oublier le \u00ab\u00a0-l\u00a0\u00bb dans la ligne de commande).<!--more--><\/li>\n<li>V\u00e9rifier que les fichiers CSV servants de<strong> sources de donn\u00e9es<\/strong> sont corrects et ont bien les valeurs n\u00e9cessaires pour le test<\/li>\n<li>V\u00e9rifier les <strong>Variables pr\u00e9-d\u00e9finies :<\/strong> est-ce les bonnes pour votre test de charges ?<\/li>\n<li>V\u00e9rifier que les<strong> \u00e9l\u00e9ments de configuration<\/strong> \u00ab\u00a0Par d\u00e9faut\u00a0\u00bb, genre celui du http\u00a0: \u00ab\u00a0<strong>Param\u00e8tres HTTP par d\u00e9faut<\/strong>\u00a0\u00bb a bien la bonne valeur pour le site web, le port, s\u2019il faut r\u00e9cup\u00e9rer les ressources incluses, etc.<\/li>\n<li>V\u00e9rifier que vous avez pens\u00e9 \u00e0 mettre des \u00e9l\u00e9ments <strong>Assertion<\/strong> dans votre sc\u00e9nario afin de v\u00e9rifier que le r\u00e9sultat attendu sera bien celui re\u00e7u.<\/li>\n<li>V\u00e9rifier que la petite case \u00e0 cocher \u00ab\u00a0<em>Inclure la dur\u00e9e des compteurs de temps dans le calcul du temps<\/em>\u00a0\u00bb dans les <strong>Contr\u00f4leurs de Transaction<\/strong> est bien d\u00e9coch\u00e9e. Malheureusement par d\u00e9faut, elle est coch\u00e9e et donc les temps de r\u00e9ponses peuvent \u00eatre fauss\u00e9s si vous avez plac\u00e9 des \u00e9l\u00e9ments <strong>Compteurs<\/strong> de temps en fils.<\/li>\n<li>V\u00e9rifier que vous avez plac\u00e9 un <strong>R\u00e9cepteur<\/strong> configur\u00e9 pour enregister un fichier en mode JTL (XML) avec toutes les cases \u00e0 cocher du bouton <strong>Configurer<\/strong> : coch\u00e9es, et avec la case \u00ab\u00a0Uniquement les erreurs\u00a0\u00bb de cocher. Cela vous permettra d&rsquo;avoir un fichier de r\u00e9sultats uniquement pour les erreurs capt\u00e9es avec tous les d\u00e9tails (requ\u00eate, donn\u00e9es de r\u00e9ponses) afin de mieux comprendre ensuite les probl\u00e8mes survenues.<\/li>\n<li>V\u00e9rifier que la machine de test qui ex\u00e9cutera <strong>JMeter<\/strong> n&rsquo;est pas d\u00e9j\u00e0 surcharg\u00e9e (CPU d\u00e9j\u00e0 utilis\u00e9e, pas assez de m\u00e9moire, disque dur quasiment plein, r\u00e9seau satur\u00e9, etc.) avant lancer votre tir.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>En bonus, 7 autres points de v\u00e9rification \u00ab\u00a0conditionnels\u00a0\u00bb\u00a0:<\/p>\n<ol>\n<li>Si vous avez plusieurs <strong>Groupes d&rsquo;unit\u00e9s<\/strong> dans votre arbre, v\u00e9rifier s\u2019ils doivent \u00eatre lanc\u00e9s en <em>s\u00e9rie<\/em> ou en <em>parall\u00e8le<\/em>. Configurable via l&rsquo;option \u00ab\u00a0<em>Lancer les groups d&rsquo;unit\u00e9s en s\u00e9rie<\/em>\u00a0\u00bb dans l&rsquo;\u00e9l\u00e9ment <strong>Plan de test<\/strong>.<\/li>\n<li>Si vous lancez votre tir en mode graphique (pas vraiment recommand\u00e9), d\u00e9sactivez les R\u00e9cepteurs <strong>Arbre de r\u00e9sultats<\/strong>. Ils sont bien trop gourmands en m\u00e9moire.<\/li>\n<li>Si c&rsquo;est un \u00ab\u00a0gros\u00a0\u00bb test de charges, avez-vous pens\u00e9 \u00e0 <a title=\"Notes JMeter\" href=\"http:\/\/blog.milamberspace.net\/index.php\/notes-techniques\/notes-jmeter\">augmenter la m\u00e9moire Java allou\u00e9e \u00e0 JMeter\u00a0<\/a>? Plus il y a d&rsquo;utilisateurs virtuels, plus il faudra de m\u00e9moire Java (et aussi d&rsquo;injecteurs puissants)<\/li>\n<li>Si votre JMeter op\u00e8re sous Unix\/Linux, v\u00e9rifiez les valeurs de \u00ab\u00a0max open files\u00a0\u00bb (via ulimit -n). G\u00e9n\u00e9ralement la valeur par d\u00e9faut est bien trop petite et va limiter JMeter dans la cr\u00e9ation de fichiers (pour rappel, sous Unix\/Linux, tout est un fichier y compris les connexions tcp\/ip)<\/li>\n<li>Si vous lancez le tir en mode<em> non-gui<\/em> (le bon choix), <a title=\"JMeter : suivre un tir de charge en mode non-gui avec le r\u00e9sum\u00e9 statistique\" href=\"http:\/\/blog.milamberspace.net\/index.php\/2009\/02\/01\/jmeter-suivre-un-tir-de-charge-en-mode-non-gui-avec-le-resume-statistique-200.html\">activez le \u00ab r\u00e9sum\u00e9 statistiques \u00bb<\/a>, c&rsquo;est toujours sympa de suivre un peu ce qui se passe.<\/li>\n<li>Si vous avez con\u00e7u un test de charge en utilisant l&rsquo;option<em> IP Source<\/em> dans les <strong>requ\u00eates HTTP<\/strong> afin d&rsquo;avoir plusieurs flux IP diff\u00e9rents, v\u00e9rifier que les adresses IP sont bien configur\u00e9es sur l&rsquo;injecteur JMeter (via la technique de l&rsquo;IP aliasing), et aussi que le fichier CSV contenant les IP est correct.<\/li>\n<li>Si vous effectuez un tir de charge de longue dur\u00e9e lanc\u00e9 \u00e0 distance via SSH (ou Telnet!), ne pas oublier de mettre le fameux \u00ab\u00a0<em>nohup<\/em>\u00a0\u00bb devant la commande de lancement\u00a0: exemple\u00a0: <strong>nohup .\/jmeter -t \/home\/user\/monscript.jmx -l \/home\/user\/resultats.csv &amp;<\/strong> Le nohup permettra au tir de continuer m\u00eame si la connexion r\u00e9seau est coup\u00e9e.<\/li>\n<\/ol>\n<p>La liste n&rsquo;est pas exhaustive, mais devrait \u00e9viter quelques \u00e9cueils.<\/p>\n<p>Vous pouvez aussi partager vos points de v\u00e9rification sur le groupe <a title=\"JMeter\" href=\"http:\/\/groups.google.com\/group\/jmeter-fr\">JMeter en fran\u00e7ais<\/a>.<\/p>\n<p><em>Bon courage dans vos tests de charge.<\/em><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici une check-list qui pourrait vous \u00e9viter quelques d\u00e9convenues (genre test de charge rat\u00e9) si vous la d\u00e9roulez juste avant de lancer votre test de charge. V\u00e9rifier que les \u00e9l\u00e9ments Groupe d&rsquo;unit\u00e9s sont corrects, \u00e0 savoir le bon nombre d&rsquo;unit\u00e9s, la bonne mont\u00e9e en charge, le nombre d&rsquo;it\u00e9rations ou la bonne dur\u00e9e. V\u00e9rifier les \u00e9l\u00e9ments &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2013\/08\/02\/les-10-choses-a-verifier-avant-de-lancer-son-test-de-charge-avec-jmeter-1340.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Les 10 choses \u00e0 v\u00e9rifier avant de lancer son test de charge avec JMeter<\/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,33,34],"tags":[300,330],"class_list":["post-1340","post","type-post","status-publish","format-standard","hentry","category-apache","category-jmeter","category-tests-de-charges","tag-checklist","tag-jmeter"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1340","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=1340"}],"version-history":[{"count":6,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1340\/revisions"}],"predecessor-version":[{"id":1346,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1340\/revisions\/1346"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=1340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=1340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=1340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}