<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MilamberSpace - JMeter &#187; test distribué</title>
	<atom:link href="http://blog.milamberspace.net/index.php/tag/test-distribue/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.milamberspace.net</link>
	<description>Apache JMeter (surtout) mais aussi GNU/Linux, OpenSource, l&#039;Informatique, etc.</description>
	<lastBuildDate>Sun, 05 Feb 2012 09:51:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JMeter : Déterminer automatiquement le chemin d&#8217;un fichier Source de données CSV en fonction de son système d&#8217;exploitation</title>
		<link>http://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</link>
		<comments>http://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#comments</comments>
		<pubDate>Sat, 12 Nov 2011 18:26:52 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Test fonctionnel]]></category>
		<category><![CDATA[Tests de charges]]></category>
		<category><![CDATA[test distribué]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=1009</guid>
		<description><![CDATA[Ce billet est inspiré ce commentaire de Vincent D. Merci à lui pour son commentaire et son autorisation d&#8217;utilisation dans ce billet. Imaginez que vous devez faire un test de charge distribué avec un poste contrôleur et deux postes injecteurs. Malheureusement, vos injecteurs n&#8217;ont pas le même système d&#8217;exploitation que votre poste contrôleur. Ce dernier [...]]]></description>
			<content:encoded><![CDATA[<p><em>Ce billet est inspiré <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 à lui pour son commentaire et son autorisation d&#8217;utilisation dans ce billet.</em></p>
<p>Imaginez que vous devez faire un test de charge distribué avec un poste contrôleur et deux postes injecteurs. Malheureusement, vos injecteurs n&#8217;ont pas le même système d&#8217;exploitation que votre poste contrôleur. Ce dernier est sous Windows, et les injecteurs sont sous Linux.</p>
<p>Dans votre script JMeter, il y a un élément <strong>Source de données CSV</strong> qui vous permet (par exemple) d&#8217;avoir une liste d&#8217;identifiants/mot de passe de connexion.</p>
<p>Lors de la mise au point de votre script JMeter, vous utilisez seulement votre poste contrôleur, et la valeur du champ <strong>Nom de fichier</strong> dans votre <strong>Source de données CSV</strong> est :</p>
<pre>c:/Temp/liste_login.csv</pre>
<p>Ce chemin est valable sous Windows, mais bien entendu, ne sera pas valable sur vos injecteurs lorsque vous allez lancer le test distribué.</p>
<p>Juste avant ce test, il faut modifier le script JMeter pour changer la valeur du Nom de fichier par :</p>
<pre>/tmp/liste_login.csv</pre>
<p>Facile à faire, mais aussi facile à oublier de faire&#8230;</p>
<p>Voici un moyen de le faire automatiquement.<span id="more-1009"></span></p>
<p>Ci-dessous un plan de test d&#8217;exemple :</p>
<p style="text-align: center;"><img 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>
<p>Par rapport au commentaire de Vincent D. j&#8217;ajoute un élément<a title="JMeter Manuel Groupes d'unités de début" href="http://jmeter.apache.org/usermanual/component_reference.html#setUp_Thread_Group"><strong> Groupe d&#8217;unités de début</strong></a>. Ce dernier permet de réaliser l&#8217;opération de définition du chemin de fichier <strong><span style="text-decoration: underline;">avant</span></strong> n&#8217;importe quel autre <strong>Groupe d&#8217;unités</strong>.</p>
<p style="text-align: center;"><img class="aligncenter" style="border: 1px solid black;" title="Groupe d'unités de début" src="/wp-content/images/jmeter-39-chemin-os/jmeter_chemin_os_018.png" alt="" width="390" height="266" /></p>
<p>Donc, dans le Groupe d&#8217;unités de début, on place un Échantillon BeanShell qui va contenir un simple bout de code (Java) pour :</p>
<ol>
<li>Récupérer le nom du système d&#8217;exploitation (depuis les Propriétés Java)</li>
<li>Faire un test sur le nom « windows », si oui on créé une propriété JMeter « CHEMIN » qui aura la valeur du chemin dans le poste Windows</li>
<li>Sinon, ce sera le chemin Linux / Unix et Mac</li>
</ol>
<p style="text-align: center;"><img class="aligncenter" style="border: 1px solid black;" title="BeanShell de détermination du système d'exploitation et définition du chemin en propriétés JMeter" src="/wp-content/images/jmeter-39-chemin-os/jmeter_chemin_os_019.png" alt="" width="407" height="281" /></p>
<p>Le code :</p>
<pre>String sOs = System.getProperty("os.name").toLowerCase();
 if (sOs.contains("windows")) {
 props.setProperty("CHEMIN", "c:/Temp/");
 } else {
 // couvre Linux/Unix/Mac
 props.setProperty("CHEMIN", "/tmp/");
 }</pre>
<p>On notera que le chemin est déposé dans une propriété JMeter (et non une variable JMeter), car la propriété JMeter se propage à travers les Groupes d&#8217;unités, ce qui n&#8217;est pas le cas de la variable JMeter.</p>
<p>Ensuite, on peut donc utiliser notre propriété CHEMIN dans l&#8217;élément Source de données CSV pour avoir un chemin adapté en fonction du système d&#8217;exploitation.</p>
<p>On utilisera la fonction JMeter __P() pour récupérer la valeur de la propriété CHEMIN :</p>
<pre>${__P(CHEMIN)}</pre>
<p style="text-align: center;"><img class="aligncenter" style="border: 1px solid black;" title="Utilisation de la propriété du chemin" src="/wp-content/images/jmeter-39-chemin-os/jmeter_chemin_os_020.png" alt="" width="525" height="289" /></p>
]]></content:encoded>
			<wfw:commentRss>http://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/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Petite mise à jour du tutoriel JMeter : Test de charge distribué</title>
		<link>http://blog.milamberspace.net/index.php/2010/04/19/petite-mise-a-jour-du-tutoriel-jmeter-test-de-charge-distribue-658.html</link>
		<comments>http://blog.milamberspace.net/index.php/2010/04/19/petite-mise-a-jour-du-tutoriel-jmeter-test-de-charge-distribue-658.html#comments</comments>
		<pubDate>Mon, 19 Apr 2010 23:55:40 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Tests de charges]]></category>
		<category><![CDATA[distributed tests]]></category>
		<category><![CDATA[test distribué]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=658</guid>
		<description><![CDATA[Je viens d&#8217;effectuer une mise à jour du tutoriel JMeter sur la réalisation d&#8217;un test de charge distribué. Il s&#8217;agissait principalement de mettre des captures d&#8217;écrans d&#8217;un JMeter « français », d&#8217;adapter le texte associé, mais également de corriger des fautes de style ou d&#8217;orthographes&#8230; On notera que depuis 2008, la date d&#8217;écriture de la première version [...]]]></description>
			<content:encoded><![CDATA[<p>Je viens d&#8217;effectuer une mise à jour du <a href="http://blog.milamberspace.net/index.php/jmeter-pages/jmeter-test-de-charges-a-distance-distributed-testing">tutoriel JMeter sur la réalisation d&#8217;un test de charge distribué</a>.</p>
<p>Il s&#8217;agissait principalement de mettre des captures d&#8217;écrans d&#8217;un JMeter « français », d&#8217;adapter le texte associé, mais également de corriger des fautes de style ou d&#8217;orthographes&#8230;</p>
<p>On notera que depuis 2008, la date d&#8217;écriture de la première version de ce tutoriel, il n&#8217;y a pas eu de changement au niveau JMeter sur la configuration d&#8217;un test distribué.</p>
<p>./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2010/04/19/petite-mise-a-jour-du-tutoriel-jmeter-test-de-charge-distribue-658.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JMeter : faire un test distribué avec des injecteurs à deux cartes réseaux</title>
		<link>http://blog.milamberspace.net/index.php/2009/03/26/jmeter-faire-un-test-distribue-avec-des-injecteurs-a-deux-cartes-reseaux-247.html</link>
		<comments>http://blog.milamberspace.net/index.php/2009/03/26/jmeter-faire-un-test-distribue-avec-des-injecteurs-a-deux-cartes-reseaux-247.html#comments</comments>
		<pubDate>Thu, 26 Mar 2009 00:04:52 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Tests de charges]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[test distribué]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=247</guid>
		<description><![CDATA[Suite à une discussion avec Eudes (merci) sur le groupe JMeter en français, voici une architecture possible (et testée) pour un test distribué avec des injecteurs qui possèdent deux cartes réseaux. Une carte réseaux est tournée vers le contrôleur, et une autre carte réseaux est tournée vers le serveur à tester. L&#8217;avantage de ne pas [...]]]></description>
			<content:encoded><![CDATA[<p style="">Suite à une <a href="http://groups.google.com/group/jmeter-fr/browse_thread/thread/94805be053860b7b">discussion</a> avec Eudes <em>(merci)</em> sur le groupe <a href="http://groups.google.com/group/jmeter-fr">JMeter en français</a>, voici une architecture possible (et testée) pour un test distribué avec des injecteurs qui possèdent deux cartes réseaux.</p>
<p style=" text-align: center;"><img class="aligncenter" title="Schéma de test Jmeter distribué" src="/wp-content/images/jmeter15-img/Graphique_Tests_de_Charges_Remote_testing_special.png" alt="" width="518" height="405" /></p>
<p style="">Une carte réseaux est tournée vers le contrôleur, et une autre carte réseaux est tournée vers le serveur à tester. L&#8217;avantage de ne pas mélanger les trafics réseaux : celui des requêtes (vers le serveur) et celui de résultats du test (vers le contrôleur).</p>
<p style="">Donc voici la recette :<span id="more-247"></span></p>
<p style=""><strong><span style="text-decoration: underline;">Ingrédients :</span></strong></p>
<ul>
<li>Un poste contrôleur avec une carte réseau sur le même réseau que les injecteurs</li>
<li>Un ou plusieurs poste injecteurs avec une carte réseau tournée vers le poste contrôleur et une carte réseau tournée vers le serveur à tester.</li>
</ul>
<p style=""><strong><span style="text-decoration: underline;">Préparation :</span></strong></p>
<p style="">1/ Modification du script de lancement de JMeter sur les injecteurs, afin d&#8217;ajouter dans la ligne d&#8217;appel, la section surlignée ci-dessous, au niveau du fichier bin\jmeter-server.bat (windows) ou bin/jmeter-server (unix/linux)</p>
<p style=""><em>[Windows]</em></p>
<pre style="">call jmeter -Dserver_port=%SERVER_PORT% <span style="background: #ffff00 none repeat scroll 0% 0%;">-Djava.rmi.server.hostname=192.168.1.XX</span> -s -j jmeter-server.log %JMETER_CMD_LINE_ARGS%</pre>
<p style=""><em>[Linux/Unix]</em></p>
<pre style="">${DIRNAME}/jmeter -Dserver_port=${SERVER_PORT:-1099} <span style="background: #ffff00 none repeat scroll 0% 0%;">-Djava.rmi.server.hostname=192.168.1.XX </span>-s -j jmeter-server.log "$@"</pre>
<p style="">où <em>192.168.1.XX</em> est l&#8217;adresse de la carte réseaux coté de l&#8217;injecteur se trouvant coté contrôleur.</p>
<p style="">2/ Modification au niveau des injecteurs de l&#8217;adresse IP à utiliser pour émettre les requêtes du test. Pour cela, on modifie (ou ajoute dans) le fichier jmeter.properties, avec le paramètre suivant :</p>
<pre style="">httpclient.localaddress=10.10.20.XX</pre>
<p style="">où <em>10.10.20.XX</em> est l&#8217;adresse IP de la carte réseau de l&#8217;injecter se trouvant coté serveur</p>
<p style=""><em>On notera que cela fonctionnera pour les échantillons HTTP mais aussi pour les échantillons SOAP.</em></p>
<p style=""><strong><span style="text-decoration: underline;">Réalisation :</span></strong></p>
<p style="">Voir ce <a href="http://blog.milamberspace.net/index.php/jmeter-test-de-charges-a-distance-distributed-testing">tutoriel</a> si besoin, sinon, il ne reste plus qu&#8217;à lancer le tir distribué depuis le contrôleur.</p>
<p style="">
<p style="">./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2009/03/26/jmeter-faire-un-test-distribue-avec-des-injecteurs-a-deux-cartes-reseaux-247.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

