{"id":549,"date":"2009-12-03T22:53:16","date_gmt":"2009-12-03T22:53:16","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=549"},"modified":"2011-12-08T10:04:13","modified_gmt":"2011-12-08T10:04:13","slug":"changer-ladresse-ip-source-dune-requete-http-lors-dun-test-avec-jmeter","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2009\/12\/03\/changer-ladresse-ip-source-dune-requete-http-lors-dun-test-avec-jmeter-549.html","title":{"rendered":"Changer l&rsquo;adresse IP source d&rsquo;une requ\u00eate HTTP lors d&rsquo;un test avec JMeter"},"content":{"rendered":"<p><em>[Article mis \u00e0 jour le 08 d\u00e9cembre 2011, pour prise en compte de la version 2.5.1]<\/em><\/p>\n<p>Depuis la version 2.4 de JMeter, une nouvelle fonctionnalit\u00e9 permet le changement d&rsquo;adresse IP source pour les requ\u00eates HTTP transmises par JMeter.<\/p>\n<p>L&rsquo;int\u00e9r\u00eat de cette possibilit\u00e9 est (par exemple) de permettre de faire des tests de charges sur des architectures techniques comportant un suivi de session par adresse IP (typiquement au niveau des r\u00e9partiteurs de charges).<\/p>\n<p>Voici un petit mode d&#8217;emploi.<!--more--><\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Pr\u00e9paration<\/strong><\/span><\/p>\n<p><em>\u00c9tape 1 <\/em>: r\u00e9cup\u00e9rer JMeter (au moins la version 2.5) (ici c&rsquo;est la 2.5.1 qui est pr\u00e9sent\u00e9e)<\/p>\n<p><em>\u00c9tape 2<\/em> : d\u00e9finir et configurer sur sa machine JMeter les adresses IP que l&rsquo;on veut utiliser dans son test. Pour cela, il faut utiliser la fonctionnalit\u00e9 d&rsquo;adressage IP secondaire sur la machine JMeter. Il est en effet possible sur un ordinateur de d\u00e9finir plusieurs adresses IP pour une seule carte r\u00e9seau (appel\u00e9 IP alias). La machine r\u00e9pondra donc \u00e0 plusieurs adresses IP sur le r\u00e9seau (elle sera \u00ab\u00a0pingable\u00a0\u00bb sur plusieurs adresses IP).<\/p>\n<ul>\n<li>Sous Windows (XP), c&rsquo;est dans les options avanc\u00e9es de la configuration r\u00e9seau, au niveau du protocole TCP\/IP, param\u00e8tres avanc\u00e9es, Adresse IP.<\/li>\n<li>Sous Linux, soit avec le gestionnaire de connexion (network manager), soit dans les fichiers textes de configuration (ifcfg-ethx:x avec RedHat\/CentOS\/Fedora ou interfaces dans Debian\/Ubuntu).<\/li>\n<\/ul>\n<p><em>\u00c9tape 3<\/em> : cr\u00e9er un fichier texte contenant la liste des adresses IP que vous avez d\u00e9finie. Une adresse IP par ligne.<\/p>\n<ul>\n<li>192.168.7.80<\/li>\n<li>192.168.7.81<\/li>\n<li>192.168.7.82<\/li>\n<li>192.168.7.83<\/li>\n<li>192.168.7.84<\/li>\n<li>etc&#8230;<\/li>\n<\/ul>\n<p><span style=\"text-decoration: underline;\"><strong>R\u00e9alisation avec JMeter<\/strong><\/span><\/p>\n<p>Bon, maintenant que les pr\u00e9parations sont termin\u00e9es, on peut passer \u00e0 JMeter. Voici le plan de test simple pour mettre en \u0153uvre un exemple simple (une seule requ\u00eate HTTP).<\/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\/jmeter25-addr-ip-src\/jmeter-adresse-ip-source-01.png\" alt=\"\" width=\"244\" height=\"148\" \/><\/p>\n<p>On note, l&rsquo;\u00e9l\u00e9ment de configuration <strong>Source de donn\u00e9es CSV<\/strong>, qui va permettre de r\u00e9cup\u00e9rer les adresses IP provenant la liste.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Source de donn\u00e9es CSV JMeter\" src=\"\/wp-content\/images\/jmeter25-addr-ip-src\/jmeter-adresse-ip-source-02.png\" alt=\"\" width=\"514\" height=\"281\" \/><\/p>\n<p>La variable JMeter <strong>ADR_IP<\/strong> recevra donc une adresse IP \u00e0 chaque it\u00e9ration de JMeter. Cette variable sera utilis\u00e9e dans l&rsquo;\u00e9chantillon <strong>Requ\u00eate HTTP<\/strong> dans le champ \u00ab\u00a0<strong>Adresse IP source<\/strong>\u00a0\u00bb.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong><span style=\"color: #ff0000; text-decoration: underline;\">Attention :<\/span><\/strong> pour que la fonctionnalit\u00e9 de changement d&rsquo;adresse IP fonctionne, il faut choisir une <strong>Impl\u00e9mentation<\/strong> compatible : soit <strong>HttpClient 3.1<\/strong> ou soit <strong>HttpClient 4<\/strong>.<\/span> Cf. capture ci-dessous.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Champ Adresse IP source\" src=\"\/wp-content\/images\/jmeter25-addr-ip-src\/jmeter-adresse-ip-source-03.png\" alt=\"\" width=\"962\" height=\"675\" \/><\/p>\n<p>Voil\u00e0, ensuite c&rsquo;est presque pr\u00eat, on ajoute un r\u00e9cepteur de r\u00e9sultats, on configure par exemple le <strong>Groupe d&rsquo;unit\u00e9s<\/strong> \u00e0 1-1-10 et on lance.<\/p>\n<p>Dans les logs du serveur Apache (qui est ici test\u00e9), on voit le changement d&rsquo;adresse IP source (la premi\u00e8re colonne). Et hop.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"R\u00e9sultat\" src=\"\/wp-content\/images\/jmeter25-addr-ip-src\/jmeter-adresse-ip-source-04.png\" alt=\"\" width=\"642\" height=\"172\" \/><\/p>\n<p>Le petit b\u00e9mol, c&rsquo;est qu&rsquo;il n&rsquo;est pas possible (pour l&rsquo;instant) de le d\u00e9finir globalement dans un \u00e9l\u00e9ment <strong>Param\u00e8tres HTTP par d\u00e9faut<\/strong>. Il est donc n\u00e9cessaire de poser la variable qui va faire changer l&rsquo;adresse IP source dans chaque <strong>Requ\u00eate HTTP<\/strong>. (Un \u00e9dition\/remplacer global dans le fichier JMX avec un editeur de texte le fera en une seule fois.)<\/p>\n<p>.\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Article mis \u00e0 jour le 08 d\u00e9cembre 2011, pour prise en compte de la version 2.5.1] Depuis la version 2.4 de JMeter, une nouvelle fonctionnalit\u00e9 permet le changement d&rsquo;adresse IP source pour les requ\u00eates HTTP transmises par JMeter. L&rsquo;int\u00e9r\u00eat de cette possibilit\u00e9 est (par exemple) de permettre de faire des tests de charges sur des &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2009\/12\/03\/changer-ladresse-ip-source-dune-requete-http-lors-dun-test-avec-jmeter-549.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Changer l&rsquo;adresse IP source d&rsquo;une requ\u00eate HTTP lors d&rsquo;un test avec JMeter<\/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,34],"tags":[200,330,201],"class_list":["post-549","post","type-post","status-publish","format-standard","hentry","category-apache","category-jmeter","category-tests-de-charges","tag-adresse-ip","tag-jmeter","tag-source"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/549","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=549"}],"version-history":[{"count":4,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/549\/revisions"}],"predecessor-version":[{"id":1022,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/549\/revisions\/1022"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}