<?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 &#187; résultats</title>
	<atom:link href="http://blog.milamberspace.net/index.php/tag/resultats/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.milamberspace.net</link>
	<description>JMeter (surtout) mais aussi l&#039;Informatique, Internet, etc.</description>
	<lastBuildDate>Sun, 29 Aug 2010 21:29:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Faire des graphiques de résultats JMeter avec Gnuplot</title>
		<link>http://blog.milamberspace.net/index.php/2008/10/26/faire-des-graphiques-de-resultats-jmeter-avec-gnuplot-100.html</link>
		<comments>http://blog.milamberspace.net/index.php/2008/10/26/faire-des-graphiques-de-resultats-jmeter-avec-gnuplot-100.html#comments</comments>
		<pubDate>Sun, 26 Oct 2008 22:24:57 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Tests de charges]]></category>
		<category><![CDATA[Gnuplot]]></category>
		<category><![CDATA[graphiques]]></category>
		<category><![CDATA[résultats]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=100</guid>
		<description><![CDATA[JMeter est un bon outil de test de charges, mais la restitution des résultats sous forme de graphique est parfois indigeste en utilisant JMeter.
Je vous propose un moyen rapide et fiable pour générer un graphique des temps de réponses pour une transaction (soit un échantillon unitaire, soit un contrôleur de transaction qui regrouperait plusieurs échantillons [...]]]></description>
			<content:encoded><![CDATA[<p style="">JMeter est un bon outil de test de charges, mais la restitution des résultats sous forme de graphique est parfois indigeste en utilisant JMeter.</p>
<p style="">Je vous propose un moyen rapide et fiable pour générer un graphique des temps de réponses pour une transaction (soit un échantillon unitaire, soit un contrôleur de transaction qui regrouperait plusieurs échantillons (samplers))</p>
<p style="">Pour cela, j&#8217;utilise le programme de traçage de dessin/graphique <a title="GNUPLOT" href="http://www.gnuplot.info" target="_blank">GNUPLOT</a>. Il est disponible sur les environnements Unix/Linux, également sous Windows (via Cygwin ou en natif) et même Mac.</p>
<p style="">Je ne vais pas expliquer comment l&#8217;installer, c&#8217;est simple. <em>(avec Ubuntu, c&#8217;est juste « sudo apt-get install gnuplot »)</em></p>
<p style="">Tout d&#8217;abord, commençons par la transformation du fichier de résultats JMeter CSV en un fichier qui sera lisible par Gnuplot. Ce dernier voulant un fichier contenant des colonnes séparées par des tabulations.<span id="more-100"></span></p>
<p style="">Donc, voici la transformation à faire, ci-dessous, la ligne de mon fichier de résultat JMeter au format CSV :</p>
<pre><strong>"2008-07-23;11:19:30";5187;MON_TRANSACTION_CONTROLLER;200;"TG1;2-1";true;;144896;0</strong></pre>
<p style="">Nous allons garder seulement l&#8217;heure <em>(2eme colonne)</em> et le temps de réponse <em>(3eme colonne)</em>, cela va donner :</p>
<pre><strong>11:19:30&lt;tab&gt; 5187</strong></pre>
<p style="">Pour faire cette transformation, plusieurs possibilités :</p>
<ul>
<li>A la main, pour tous les résultats <em>(je rigole)</em></li>
<li>En utilisant Excel ou Calc (ouverture du CSV, suppression des colonnes non voulues, enregistrement en TXT (texte séparé par des tabulations))</li>
<li>En programmant une petite moulinette (en Perl, etc..)</li>
<li>Ou en utilisant les commandes shell Unix</li>
</ul>
<p style="">Pour ma part, j&#8217;ai choisi la commande shell Unix (en une seule ligne) :</p>
<pre><strong>grep "MON_TRANSACTION_CONTROLLER" jmeter-resultats.csv |  sed "s/\"//g" | awk -F ";" '{print $2,"\t",$3}' &gt; DATA_MON_TRANSACTION_CONTROLLER.csv</strong></pre>
<p style=""><em>C&#8217;est beau, une petite ligne. (Si vous avez Windows, utilisez l&#8217;environnement Cygwin) (explications : le <strong>grep</strong> extrait seulement les résultats de MON_TRANSACTION_CONTROLLER, le <strong>sed</strong> va remplacer les guillements ["] par rien (il les enlèvent),  puis le <strong>awk</strong> retrouve les colonnes du CSV avec le séparateur &laquo;&nbsp;;&nbsp;&raquo; et <strong>awk</strong> imprime la colonne 2 et 3 avec une tabulation au milieu vers un fichier de sortie (<strong>via le &gt;</strong>))<br />
</em></p>
<p style="">Bon, maintenant que le fichier de données est préparé pour Gnuplot, y-a-pu-qu&#8217;a&#8230;.</p>
<p style="">Voici les commandes :</p>
<p style="">milamber:~/jmeter-data/GNUPLOT$ gnuplot</p>
<p style="">[...]</p>
<p style="">gnuplot&gt; set xdata time</p>
<p style="">gnuplot&gt; set timefmt &laquo;&nbsp;%H:%M:%S&nbsp;&raquo;</p>
<p style="">gnuplot&gt; set format x &laquo;&nbsp;%H:%M&nbsp;&raquo;</p>
<p style="">gnuplot&gt; plot &#8216;DATA_MON_TRANSACTION_CONTROLLER.csv&#8217; using 1:2 with points pt 1 ps 0.5</p>
<p style="">Et hop, voici le résultat :</p>
<p style=""><img style="border: 1px solid black;" src="/wp-content/images/jmeter10-img-gnuplot/01-jmeter-gnuplot.png" alt="Graphique Résultats JMeter avec Gnuplot" width="640" height="423" /></p>
<p style="">On ajoute quelques lignes pour les légendes et titre, puis on re-dessine.</p>
<p style="">gnuplot&gt; set title &laquo;&nbsp;Graphique des temps de réponses unitaire pour la Transaction&nbsp;&raquo;</p>
<p style="">gnuplot&gt; set xlabel &laquo;&nbsp;Heure&nbsp;&raquo;</p>
<p style="">gnuplot&gt; set ylabel &laquo;&nbsp;Temps de réponse (ms)&nbsp;&raquo;</p>
<p style="">gnuplot&gt; replot</p>
<p style="">Et revoilà :</p>
<p style=""><img style="border: 1px solid black;" src="/wp-content/images/jmeter10-img-gnuplot/02-jmeter-gnuplot.png" alt="Graphique Résultats JMeter avec Gnuplot" width="640" height="423" /></p>
<p style="">Je n&#8217;explique pas le fonctionnement de Gnuplot (désolé), vous pouvez retrouver le rôle des commandes dans la <a title="Documentation Gnuplot" href="http://www.gnuplot.info/docs/gnuplot.html" target="_blank">documentation</a>.</p>
<p style="">Pourquoi utiliser Gnuplot ?, notamment par rapport à Access (cf. <a href="http://blog.milamberspace.net/index.php/jmeter-tir-de-charges-par-paliers-et-exploitation-des-resultats/insertion-des-resultats-dans-access-2007-et-generation-dun-graphique">ce tutorial</a>) ou Excel ou Calc. Tout simplement, le jour où vous avez plus de 65535 lignes de résultats, ces outils de bureautiques ne savent plus faire de graphiques&#8230;</p>
<p style="">Bien entendu, ce billet n&#8217;est qu&#8217;un début sur le potentiel de Gnuplot pour aider à la restitution de résultats JMeter. Mais cela demande de préparer un peu plus les données. Par exemple, via une moulinette Perl, on peut facilement transformer ces temps &#8216;unitaires&#8217; en temps moyen par minute, et générer le graphique sous forme de courbe.</p>
<p style=""><img style="border: 1px solid black;" src="/wp-content/images/jmeter10-img-gnuplot/03-jmeter-gnuplot.png" alt="Courbe de résultats JMeter avec Gnuplot" width="640" height="423" /></p>
<p>Via la commande gnuplot :</p>
<pre>plot 'Sortie_DATA_MON_TRANSACTION_CONTROLLER.csv' using 1:2 with linespoints pt 1 ps 0.5</pre>
<p style="">A vous de jouez un peu, bon courage</p>
<p style=""><em>Mise à jour (27/10/2008) : J&#8217;ai oublié de donner ce lien vers cet <a title="Visualize your data with gnuplot" href="http://www.ibm.com/developerworks/library/l-gnuplot/" target="_blank">article d&#8217;IBM developerWorks</a>, ce dernier m&#8217;ayant inspiré ce billet&#8230;</em></p>
<p style="">
<p style="">./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2008/10/26/faire-des-graphiques-de-resultats-jmeter-avec-gnuplot-100.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
