<?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; SQLite</title>
	<atom:link href="http://blog.milamberspace.net/index.php/tag/sqlite/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>Wed, 14 Jul 2010 06:34:50 +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>JMeter : utiliser SQLite pour traiter les résultats d&#8217;un test de charges par palier</title>
		<link>http://blog.milamberspace.net/index.php/2009/05/02/jmeter-utiliser-sqlite-pour-traiter-les-resultats-dun-test-de-charges-par-palier-281.html</link>
		<comments>http://blog.milamberspace.net/index.php/2009/05/02/jmeter-utiliser-sqlite-pour-traiter-les-resultats-dun-test-de-charges-par-palier-281.html#comments</comments>
		<pubDate>Sat, 02 May 2009 22:12:19 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Tests de charges]]></category>
		<category><![CDATA[rapport]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Tir de charges]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=281</guid>
		<description><![CDATA[Dans ce billet, j&#8217;indique qu&#8217;il est possible d&#8217;utiliser SQLite pour traiter les données d&#8217;un tir de charges par palier (tutoriel ici).
Voici maintenant le mode d&#8217;emploi pour utiliser SQLite afin de traiter ses résultats de tir JMeter. Tout d&#8217;abord, pour une meilleur compréhension voici le plan de test dans JMeter. Veuillez noter les noms des contrôleurs [...]]]></description>
			<content:encoded><![CDATA[<p style=""><a href="http://blog.milamberspace.net/index.php/2009/05/02/jmeter-et-la-creation-du-rapport-de-tir-de-charges-278.html" target="_self">Dans ce billet</a>, j&#8217;indique qu&#8217;il est possible d&#8217;utiliser SQLite pour traiter les données d&#8217;un <a href="http://blog.milamberspace.net/index.php/jmeter-tir-de-charges-par-paliers-et-exploitation-des-resultats" target="_blank">tir de charges par palier (tutoriel ici)</a>.</p>
<p style="">Voici maintenant le mode d&#8217;emploi pour utiliser SQLite afin de traiter ses résultats de tir JMeter.<span id="more-281"></span> Tout d&#8217;abord, pour une meilleur compréhension voici le plan de test dans JMeter. <em>Veuillez noter les noms des contrôleurs et requêtes.</em></p>
<p style=""><img class="alignnone" title="Plan de test de charges par palier" src="/wp-content/images/jmeter17-img/jmeter-plan-de-test-palier.png" alt="" width="366" height="633" /></p>
<p style="">Pour une insertion future des données du fichier CSV dans une base de données SQLite, il est préférable de configurer un peu le format d&#8217;enregistrement des données CSV par JMeter.</p>
<p style="">Dans le fichier <em>JMETER_HOME/bin/user.properties</em>, voici le format utilisé pour cet article. Cette configuration est &#8216;arbitraire&#8217;, il est bien entendu possible de la personnaliser en fonction de ce que vous voulez faire (ou voir).</p>
<pre style="">jmeter.save.saveservice.output_format=csv</pre>
<pre style="">jmeter.save.saveservice.data_type=false</pre>
<pre style="">jmeter.save.saveservice.label=true</pre>
<pre style="">jmeter.save.saveservice.response_code=true</pre>
<pre style="">jmeter.save.saveservice.response_data=false</pre>
<pre style="">jmeter.save.saveservice.response_message=false</pre>
<pre style="">jmeter.save.saveservice.successful=true</pre>
<pre style="">jmeter.save.saveservice.thread_name=true</pre>
<pre style="">jmeter.save.saveservice.time=true</pre>
<pre style="">jmeter.save.saveservice.bytes=true</pre>
<pre style="">jmeter.save.saveservice.url=false</pre>
<pre style="">jmeter.save.saveservice.timestamp_format=yyyy-MM-dd;HH:mm:ss</pre>
<pre style="">jmeter.save.saveservice.default_delimiter=;</pre>
<pre style="">jmeter.save.saveservice.print_field_names=false</pre>
<pre style="">jmeter.save.saveservice.hostname=true</pre>
<pre style="">jmeter.save.saveservice.thread_counts=true</pre>
<p style="">Après son test de charge, le fichiers de résultats à cette forme :</p>
<pre style="">"2009-04-28;22:01:47";146;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-1";true;7347;11;11;130;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:47";38;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-2";true;7347;11;11;34;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:47";16;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-3";true;7347;12;12;13;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:48";12;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-4";true;7347;13;13;7;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:48";11;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-5";true;7347;15;15;7;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:49";11;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-6";true;7347;15;15;8;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:49";12;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-7";true;7347;17;17;8;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:49";11;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-8";true;7347;17;17;9;ubuntusvr</pre>
<pre style="">"2009-04-28;22:01:50";13;Requête HTTP 01_Accueil;200;"Groupe d'unités 1; 1-9";true;7347;18;18;7;ubuntusvr</pre>
<p style=""><em><span style="text-decoration: underline;">On notera les points suivants :</span></em></p>
<p style="">La date et l&#8217;heure sont entre guillemets à cause du point-virgule ajouté dans le format du timestamp dans user.properties : <strong>&laquo;&nbsp;2009-04-28;22:01:47&#8243;</strong>. Ce point-virgule va nous permettre de sectionner la date et l&#8217;heure <em>(même si en réalité, SQLite3 n&#8217;en pas vraiment besoin, mais bon&#8230;)</em></p>
<p style="">Le nom du groupe d&#8217;unités (thread name) est aussi entre guillemets et avec un point-virgule qui sépare le nom (celui dans l&#8217;arbre JMeter) et le numéro du thread exécutant. Car j&#8217;ai pris soin de mettre un point-virgule en fin de nom.</p>
<p style=""><img class="alignnone" title="Nom du groupe dunités avec point-virgule à la fin" src="/wp-content/images/jmeter17-img/jmeter-nom-gu.png" alt="" width="210" height="91" /></p>
<p style="">Dans ces deux champs, les guillemets « nous gênent », il faut donc les supprimer. Pour cela, soit on édite le fichier et on fait un &#8216;remplacé global&#8217; (&nbsp;&raquo; par vide), soit on passe par la commande SED disponible sous Unix ou Windows.</p>
<pre style="">cat Resultats.csv | sed "s/\"//g" &gt; PourInsertion.csv</pre>
<p style="">Voilà le fichier CSV est prêt pour insertion dans la base SQLite.</p>
<p style="">La création de la base de données se fait simplement dans le lancement de SQLite.</p>
<pre style="">$ sqlite3 mabase.db</pre>
<p style="">Ensuite au prompt <strong>&#8217;sqlite&gt;&#8217;</strong> on peut créer la table qui va recevoir les données.</p>
<pre style="">sqlite&gt; CREATE TABLE resultats (date TEXT,heure TEXT,temps REAL,libelle TEXT,code TEXT,nomTG TEXT,
numTG TEXT,succes TEXT,octets INTEGER, actifTG INTEGER, nbTG INTEGER,latence REAL,hostname TEXT);</pre>
<p style="">Il ne reste plus qu&#8217;à indiquer à SQLite le séparateur à utiliser (ici le point-virgule), puis faire l&#8217;import.</p>
<pre style="">sqlite&gt; .separator ;</pre>
<pre style="">sqlite&gt; .import PourInsert.csv resultats</pre>
<p style=""><strong><em>Et voilà, les données sont importées.</em></strong></p>
<p style=""><span style="text-decoration: underline;">On peut commencer à jouer avec des requêtes SQL :</span></p>
<p style=""><em>(je n&#8217;explique pas comment faire des requêtes SQL, si besoin, voir <a title="Documentation SQLite" href="http://www.sqlite.org/docs.html" target="_blank">la documentation de SQLite</a>)</em></p>
<p style=""><strong><span style="text-decoration: underline;">Compter le nombre de résultats (lignes) :</span></strong></p>
<pre style="">sqlite&gt; <strong><span style="color: #000080;">SELECT COUNT(*) FROM resultats;</span></strong></pre>
<pre style="">400249</pre>
<p style=""><em>On se mets en mode headers ON et column sur SQLite pour faciliter la présentation des résultats de requêtes.</em></p>
<pre style="">sqlite&gt; .headers on</pre>
<pre style="">sqlite&gt; .mode column</pre>
<p style=""><strong><span style="text-decoration: underline;">Moyenne des temps de réponses par libellés :</span></strong></p>
<pre style="">sqlite&gt; <strong><span style="color: #000080;">SELECT libelle, COUNT(libelle), AVG(temps) FROM resultats GROUP BY libelle ORDER BY libelle;</span></strong></pre>
<pre style="">libelle                          COUNT(libelle)  AVG(temps)</pre>
<pre style="">-------------------------------  --------------  ----------------</pre>
<pre style="">Contrôleur Transaction (Login)  1500            8049.02333333333</pre>
<pre style="">Contrôleur Transaction Créati   20725           60324.5965741858</pre>
<pre style="">Contrôleur Transaction Recherc  21130           120353.20241363</pre>
<pre style="">Requête HTTP 01_Accueil         1500            11.66</pre>
<pre style="">Requête HTTP 02_Connexion       1500            11.7486666666667</pre>
<pre style="">Requête HTTP 03_Accueil Recher  22008           10.4412940748819</pre>
<pre style="">Requête HTTP 04_Liste Resultat  21150           12.8220330969267</pre>
<pre style="">Requête HTTP 05_Fiche Client    21140           13.4635288552507</pre>
<pre style="">Requête HTTP 06_Creation Nouve  21030           10.5896338563956</pre>
<pre style="">Requête HTTP 07_Saisie Adresse  20952           11.125190912562</pre>
<pre style="">Requête HTTP 08_Verification i  20878           11.4587125203564</pre>
<pre style="">Requête HTTP 09_Validation con  20799           11.729265830088</pre>
<pre style="">Requête HTTP 12_Ping            205937          13.7524776994906</pre>
<p style="">
<p style=""><strong><span style="text-decoration: underline;">Moyenne des temps de réponses pour seulement les libellés avec « Requête », à partir de 300 secondes (fin de ma période de montée en charge) et jusqu&#8217;à 2100 secondes (fin du palier 1) :<br />
</span></strong></p>
<pre style="">sqlite&gt; <strong><span style="color: #000080;">SELECT nomTG, libelle, avg(temps), count(temps) FROM resultats WHERE libelle LIKE 'Requête%' AND</span></strong></pre>
<pre style=""><strong><span style="color: #000080;"> strftime("%H:%M:%S", heure) &gt;= (select min(strftime("%H:%M:%S", heure, '+300 seconds')) from resultats) AND </span></strong></pre>
<pre style=""><strong><span style="color: #000080;">strftime("%H:%M:%S", heure) &lt; (select min(strftime("%H:%M:%S", heure, '+2100 seconds')) from resultats) </span></strong></pre>
<pre style=""><strong><span style="color: #000080;">GROUP BY libelle, nomTG ORDER BY nomTG, heure ASC LIMIT 100;</span></strong></pre>
<pre style="">nomTG               libelle                   avg(temps)        count(temps)</pre>
<pre style="">------------------  ------------------------  ----------------  ------------</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 01_Accueil  8.61538461538461  13</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 02_Connexi  9.04347826086956  23</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 03_Accueil  9.0597121023636   5627</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 04_Liste R  10.1990411931818  5632</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 05_Fiche C  10.3475252794039  5637</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 06_Creatio  9.18982456140351  5700</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 07_Saisie   9.10892825820032  5701</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 08_Verific  8.85002631117348  5701</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 09_Validat  9.96772496053324  5701</pre>
<pre style="">Groupe d'unités 1  Requête HTTP 12_Ping     10.6768418636677  56641</pre>
<p style=""><strong><span style="text-decoration: underline;">Moyenne des temps de réponses par minute (pour seulement les requêtes) :</span></strong></p>
<pre style="">sqlite&gt; <strong><span style="color: #000080;">SELECT strftime("%H:%M",heure) AS Heure, AVG(temps) AS Temps FROM resultats WHERE libelle LIKE 'Requête%' </span></strong></pre>
<pre style=""><strong><span style="color: #000080;">GROUP BY strftime("%H:%M",heure) ORDER BY heure ASC;</span></strong></pre>
<pre style="">Heure       Temps</pre>
<pre style="">----------  ----------------</pre>
<pre style="">22:01       14.8518518518519</pre>
<pre style="">22:02       11.0076452599388</pre>
<pre style="">22:03       10.2652274479568</pre>
<pre style="">22:04       12.0887068044175</pre>
<pre style="">22:05       9.68851303735025</pre>
<pre style="">[...]</pre>
<pre style="">23:21       10.9501897533207</pre>
<pre style="">23:22       8.98496240601504</pre>
<pre style="">23:23       8.85897435897436</pre>
<p style=""><strong>Passons aux choses un peu plus sérieuses : les tables pivots :</strong></p>
<p style=""><strong><span style="text-decoration: underline;">Moyenne des temps de réponses par palier et par requête : </span></strong></p>
<pre style="">sqlite&gt; <strong><span style="color: #000080;">SELECT libelle, COUNT(temps) AS 'Nb Test', AVG(CASE WHEN nbTG = 750 THEN temps END) AS 'Palier 1', </span></strong></pre>
<pre style=""><strong><span style="color: #000080;">AVG(CASE WHEN nbTG = 1500 THEN temps END) AS 'Palier 2', AVG(temps) as 'Moy. Temps' FROM resultats </span></strong></pre>
<pre style=""><strong><span style="color: #000080;">WHERE libelle LIKE 'Requête%' GROUP BY libelle ORDER BY libelle ASC LIMIT 100;</span></strong></pre>
<pre style="">libelle                   Nb Test     Palier 1    Palier 2    Moy. Temps</pre>
<pre style="">------------------------  ----------  ----------  ----------  ----------</pre>
<pre style="">Requête HTTP 01_Accueil  1500        8.6         9.0         11.66</pre>
<pre style="">Requête HTTP 02_Connexi  1500        9.14285714  11.9047619  11.7486666</pre>
<pre style="">Requête HTTP 03_Accueil  22008       8.95963999  11.5854606  10.4412940</pre>
<pre style="">Requête HTTP 04_Liste R  21150       10.3961495  14.6102772  12.8220330</pre>
<pre style="">Requête HTTP 05_Fiche C  21140       10.6435393  15.6499867  13.4635288</pre>
<pre style="">Requête HTTP 06_Creatio  21030       9.09737098  11.5930713  10.5896338</pre>
<pre style="">Requête HTTP 07_Saisie   20952       9.12340011  12.4782992  11.1251909</pre>
<pre style="">Requête HTTP 08_Verific  20878       8.98065683  13.1458794  11.4587125</pre>
<pre style="">Requête HTTP 09_Validat  20799       9.85591098  13.1065624  11.7292658</pre>
<pre style="">Requête HTTP 12_Ping     205937      11.0057996  15.6917482  13.7524776</pre>
<p style="">Sans entrer dans les détails, la notion de tables pivot avec SQLite se fait avec l&#8217;instruction (CASE WHEN &#8230; THEN .. END). Pour plus d&#8217;infos,<a href="http://softwaresalariman.blogspot.com/2008/05/pivot-table-hack-in-sqlite3-and-mysql.html" target="_blank"> voir ce billet de blog.</a></p>
<p style="">Pour revenir à mon billet (celui que vous lisez actuellement), les tableaux sont affichés directement par SQLite, mais comment faire ? pour les avoir dans son tableur préféré : pour cela, il suffit d&#8217;exporter les tableaux dans un fichier au format CSV.</p>
<p style="">Pour cela, on utilise les commandes SQLite suivantes :</p>
<pre style="">sqlite&gt; .mode tabs</pre>
<pre style="">sqlite&gt; .header off</pre>
<pre style="">sqlite&gt; .output mareq.csv</pre>
<pre style="">sqlite&gt; SELECT strftime("%H:%M",heure) AS Heure, AVG(temps) AS Temps FROM resultats WHERE libelle LIKE 'Requête%'</pre>
<pre style="">GROUP BY strftime("%H:%M",heure) ORDER BY heure ASC;</pre>
<p style="">Le fichier mareq.csv peut être directement ouvert par son tableur. Ce qui donnera ce graphique.</p>
<p style=""><img class="alignnone" title="Exemple de graphique de résultats dun tir par palier" src="/wp-content/images/jmeter17-img/jmeter-graph-results.png" alt="" width="589" height="369" /></p>
<p style="">Si on reprend la requête &#8216;pivot&#8217;, on obtient rapidement le tableau suivant et son graphique associé.</p>
<p style=""><img class="alignnone" title="Tableau de résultats" src="/wp-content/images/jmeter17-img/jmeter-tableau-resultats.png" alt="" width="486" height="178" /></p>
<p style=""><img class="alignnone" title="Graphique du tableau pivot" src="/wp-content/images/jmeter17-img/jmeter-autre-graphique-resultats.png" alt="" width="608" height="355" /></p>
<p style=""><em>Pour conclure, merci à SQLite. Même si c&#8217;est pas du « clic-next », c&#8217;est rapide pour faire le &#8216;tri&#8217; dans ses résultats à condition d&#8217;avoir quelques bonnes notions de SQL.</em></p>
<p style="">./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2009/05/02/jmeter-utiliser-sqlite-pour-traiter-les-resultats-dun-test-de-charges-par-palier-281.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JMeter et la création du rapport de tir de charges</title>
		<link>http://blog.milamberspace.net/index.php/2009/05/02/jmeter-et-la-creation-du-rapport-de-tir-de-charges-278.html</link>
		<comments>http://blog.milamberspace.net/index.php/2009/05/02/jmeter-et-la-creation-du-rapport-de-tir-de-charges-278.html#comments</comments>
		<pubDate>Sat, 02 May 2009 21:18:37 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Tests de charges]]></category>
		<category><![CDATA[rapport]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Tir de charges]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=278</guid>
		<description><![CDATA[Après l&#8217;exécution d&#8217;un tir de charges, il faut faire le rapport de tir avec si possible de beaux tableaux et/ou graphiques. Si vous avez déjà utilisé JMeter (ce que je présuppose) vous savez que les récepteurs de JMeter sont bien pour avoir des tableaux de résultats (en particulier celui du rapport consolidé), mais ils montrent [...]]]></description>
			<content:encoded><![CDATA[<p style="">Après l&#8217;exécution d&#8217;un tir de charges, il faut faire le rapport de tir avec si possible de beaux tableaux et/ou graphiques. Si vous avez déjà utilisé JMeter <em>(ce que je présuppose)</em> vous savez que les récepteurs de JMeter sont bien pour avoir des tableaux de résultats (en particulier celui du rapport consolidé), mais ils montrent des limites pour faire des tableaux personnalisés ou bien de beaux graphiques « parlants ».</p>
<p style="">Il se pose aussi la problématique de l&#8217;insertion des résultats affichés par les récepteurs de JMeter dans le document Word ou la présentation PowerPoint (ou OpenOffice). La capture d&#8217;écran fait un peu trop &#8216;bricolage&#8217;.</p>
<p style="">En général, il est préférable de récupérer les résultats au format CSV, puis de les traiter dans un tableur comme Excel ou Calc pour faire des tableaux et des graphiques (<a href="http://blog.milamberspace.net/index.php/jmeter-generation-de-graphiques-de-resultats-avec-openofficeorg-calc" target="_blank">voir ce tutoriel</a>).</p>
<p style="">Mais là aussi, on trouve des limites, notamment pour les « gros » tests de charges avec plus de 100 000 lignes de résultats. Les graphiques étant limités à 32 000 points (Excel/Calc) et les feuilles de tableur à 65 000 lignes (Calc / Excel 2000/2003) et 1 million (Excel 2007).</p>
<p style="">Une solution possible est de développer un programme « moulinette » qui va effectuer un premier traitement sur les données CSV pour réduire ou agréger les données, par exemple en calculant le temps moyen par intervalle de temps (i.e. par minute, par heure, etc.).</p>
<p style="">Une autre solution est d&#8217;utiliser un logiciel de base de données bureautiques comme Access ou Base pour gérer le grand nombre de lignes, <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" target="_blank">voir cet article</a>.</p>
<p style="">Une autre solution, que je trouve &#8217;sympa&#8217;, pratique et finalement assez simple pour un informaticien, c&#8217;est d&#8217;utiliser la petite base de données <a href="http://www.sqlite.org" target="_self">SQLite</a>.<span id="more-278"></span></p>
<p style="">SQLite est conçue pour être légère, plus efficace qu&#8217;un fichier texte, et permettre d&#8217;exécuter des requêtes SQL sur des données <em>(&#8216;normal&#8217; vous me direz)</em>. Il tient en un seul exécutable, et fonctionne sur <a title="Télécharger SQLite" href="http://www.sqlite.org/download.html" target="_blank">Windows, Unix/Linux ou Mac</a>, simple donc.</p>
<p style="">Que peut-on faire avec SQLite et son fichier de résultats CSV provenant du tir de charges JMeter :</p>
<ul>
<li>Importer pratiquement directement le fichier de résultats CSV JMeter dans la base SQLite.</li>
<li>Trier ses résultats dans l&#8217;ordre, en effet les données dans le fichier CSV ne sont pas toujours (souvent) dans l&#8217;ordre chronologique (car la date donnée est celle du début de la requête, mais son écriture dans le fichier CSV dépend de la fin d&#8217;exécution –<em> le temps de réponse</em> – de la requête)</li>
<li>Agréger ses résultats par intervalle de temps, par échantillons, par contrôleurs, etc.</li>
<li>Sélectionner simplement des données par intervalle de temps ou nombre d&#8217;utilisateurs virtuels (exclure les périodes de montée en charges, par exemple)</li>
<li>Croiser ses données (faire des « tableaux croisés dynamiques » ou pivot)</li>
</ul>
<p style="">Pour résumer, il est possible de faire beaucoup de choses, à cause et grâce aux requêtes SQL avec SQLite, ceci de manière simple par rapport à une base de données &#8216;plus grosse&#8217; (disons relationnelle) ou bien même par rapport à Access ou Base qui se révelent bien lentes avec 400 000 lignes dans une même table.</p>
<p style="">Dans le <a href="http://blog.milamberspace.net/index.php/2009/05/02/jmeter-utiliser-sqlite-pour-traiter-les-resultats-dun-test-de-charges-par-palier-281.html" target="_self">billet suivant, je vous propose un mode d&#8217;emploi</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2009/05/02/jmeter-et-la-creation-du-rapport-de-tir-de-charges-278.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
