{"id":49,"date":"2007-11-07T00:13:06","date_gmt":"2007-11-07T00:13:06","guid":{"rendered":"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"},"modified":"2012-09-28T07:00:54","modified_gmt":"2012-09-28T06:00:54","slug":"insertion-des-resultats-dans-access-2007-et-generation-dun-graphique","status":"publish","type":"page","link":"https:\/\/blog.milamberspace.net\/index.php\/jmeter-pages\/jmeter-tir-de-charges-par-paliers-et-exploitation-des-resultats\/insertion-des-resultats-dans-access-2007-et-generation-dun-graphique","title":{"rendered":"Insertion des r\u00e9sultats dans Access 2007 et g\u00e9n\u00e9ration d&rsquo;un graphique"},"content":{"rendered":"<p>Maintenant que nous avons<a href=\"http:\/\/blog.milamberspace.net\/index.php\/jmeter-tir-de-charges-par-paliers-et-exploitation-des-resultats\/execution-du-tir-de-charges-par-paliers\"> ex\u00e9cut\u00e9 son sc\u00e9nario de tir de charge par paliers<\/a>, il faut s&rsquo;occuper des r\u00e9sultats. Nous allons utiliser Microsoft Access pour ce travail.<\/p>\n<p><em><strong>Mise \u00e0 jour 26\/10\/2008 : <\/strong><a href=\"http:\/\/blog.milamberspace.net\/index.php\/2008\/10\/26\/faire-des-graphiques-de-resultats-jmeter-avec-gnuplot-100.html\" target=\"_self\">Ici un billet pour faire des graphiques avec Gnuplot.<\/a><\/em><\/p>\n<h3><strong>Etape 7 : Insertion des r\u00e9sultats dans Access<\/strong><\/h3>\n<p>Si on regarde le fichier de r\u00e9sultats avec un \u00e9diteur de texte, on trouve un r\u00e9sultat par ligne, avec des champs s\u00e9par\u00e9s par le caract\u00e8re point-virgule (qui a \u00e9t\u00e9 judicieusement plac\u00e9).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"border: 1px solid black;\" src=\"\/wp-content\/images\/jmeter03-img\/21-jmeter-resultats-tir-charges-palier.gif\" border=\"1\" alt=\"R\u00e9sultats affich\u00e9s dans un \u00e9diteur de texte\" width=\"744\" height=\"255\" \/><\/p>\n<p>Nous allons importer ce fichier CSV dans le logiciel Microsoft Access version 2007 (mais cela doit fonctionner aussi avec les versions pr\u00e9c\u00e9dentes d&rsquo;Access). On notera qu&rsquo;il est possible de faire la m\u00eame chose avec Excel, la seule contrainte est la limitation du nombre de ligne d&rsquo;une feuille Excel \u00e0 65535, donc le r\u00e9sultat du tir doit faire moins de 65535 lignes. Ici ce n&rsquo;est pas le cas avec plus de 140000 lignes. Access est donc le meilleur choix.<\/p>\n<p><em>Une petite note : malheureusement avec OpenOffice Base, la fonction table pivot (tableau crois\u00e9 dynamique) n&rsquo;est pas disponible (du moins je ne l&rsquo;ai pas trouv\u00e9e).<\/em><\/p>\n<p>Donc, on lance <strong>Microsoft Access 2007<\/strong>, et on cr\u00e9\u00e9 une nouvelle base vierge. On se place sur l&rsquo;onglet <strong>External Data<\/strong>, puis on clique sur le bouton <strong>Text File<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"border: 1px solid black;\" src=\"\/wp-content\/images\/jmeter03-img\/22-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"536\" height=\"148\" \/><\/p>\n<p>Une nouvelle fen\u00eatre appara\u00eet, dans le champ <strong>File name<\/strong> on indique le chemin et le nom du fichier CSV (ici C:\\jmeter-results.csv), et on choisit l&rsquo;option <em>Import the source data into a new table in the current database<\/em>, puis on passe \u00e0 l&rsquo;\u00e9tape suivante.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/23-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"513\" height=\"270\" \/><\/p>\n<p>Dans la nouvelle fen\u00eatre, on choisit le type de s\u00e9paration de champs \u00e0 d\u00e9limit\u00e9e (<strong>Delimited<\/strong>).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/24-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"585\" height=\"228\" \/><\/p>\n<p>Le d\u00e9limiteur est le point-virgule (<strong>Semicolon<\/strong>).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/25-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"518\" height=\"214\" \/><\/p>\n<p>Sur le nouvel \u00e9cran, on va directement sur le bouton <strong>Advanced<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/26-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"296\" height=\"484\" \/><\/p>\n<p>Et dans la nouvelle fen\u00eatre, nous allons d\u00e9finir quelques options d&rsquo;importations :<\/p>\n<ul>\n<li>Le format de la date \u00e0 YMD et avec le d\u00e9limiteur \u00ab &#8211; \u00bb<\/li>\n<li>Le nom des champs (cf. capture)<\/li>\n<li>Le type de champs pour ID Unit\u00e9s \u00e0 Text et R\u00e9sultat \u00e0 Yes\/No.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/27-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"455\" height=\"457\" \/><\/p>\n<p>Ci-dessous la fin des noms des champs.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/28-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"454\" height=\"105\" \/><\/p>\n<p>Sur l&rsquo;\u00e9cran de l&rsquo;assistant de demande de cl\u00e9 primaire, on choisira <strong>aucune cl\u00e9 primaire<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/29-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"511\" height=\"79\" \/><\/p>\n<p>Voil\u00e0, la derni\u00e8re \u00e9tape, sera le nom de table.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/30-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"405\" height=\"73\" \/><\/p>\n<p>Access fait donc l&rsquo;importation du fichier texte dans la base. Ci-dessous le resultat.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/31-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"743\" height=\"174\" \/><\/p>\n<h3>Etape 8 : G\u00e9n\u00e9ration du graphique avec Access<\/h3>\n<p>Maintenant que les donn\u00e9es sont dans Access, nous allons utiliser une fonctionnalit\u00e9 bien pratique pour g\u00e9n\u00e9rer des graphiques sans trop d&rsquo;efforts : <strong>les tables pivot (tableaux crois\u00e9s dynamiques)<\/strong>. Pour cela, on se place sur l&rsquo;onglet du nom de la table, bouton droit de la souris, puis on choisit l&rsquo;option <strong>PivotChart View<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/32-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"291\" height=\"220\" \/><\/p>\n<p>On bascule vers un mode graphique.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/33-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"677\" height=\"464\" \/><\/p>\n<p>Une fen\u00eatre de liste de champ appara\u00eet \u00e9galement. Nous allons l&rsquo;utiliser pour g\u00e9n\u00e9rer le graphe, en s\u00e9lectionnant le champ et en le d\u00e9pla\u00e7ant vers les zones pr\u00e9vues \u00e0 ce effet sur le graphique.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/34-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"191\" height=\"344\" \/><\/p>\n<p>On choisira donc :<\/p>\n<ul>\n<li>Le champ <strong>Temps <\/strong>vers la zone en haut du graphique (pas celle tout en haut, mais juste au dessus de la zone grise du graphique)<\/li>\n<li>Le champ <strong>Nb unit\u00e9s totales<\/strong> vers la m\u00eame zone en \thaut du graphique<\/li>\n<li>Le champ <strong>Libell\u00e9 <\/strong>vers la zone \u00e0 droite<\/li>\n<li>Le champ <strong>Heure <\/strong>vers la zone en bas<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/35-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"734\" height=\"456\" \/><\/p>\n<p>Ensuite quelques changements, on se place sur l&rsquo;\u00e9l\u00e9ment <strong>Sum Of Temps<\/strong>, bouton droit de la souris, menu <strong>AutoCalc &gt; Average (moyenne)<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/36-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"477\" height=\"264\" \/><\/p>\n<p>On fait la m\u00eame chose pour l&rsquo;\u00e9l\u00e9ment <strong>Sum Of Nb unit\u00e9s totales<\/strong>.<\/p>\n<p>Ensuite on se place sur l&rsquo;\u00e9l\u00e9ment <strong>Heure<\/strong>, bouton droit de la souris, menu <strong>Properties<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/37-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"305\" height=\"94\" \/><\/p>\n<p>Dans la nouvelle fen\u00eatre, on se place sur l&rsquo;onglet <strong>Filter and Group<\/strong>, et dans la partie <strong>Grouping<\/strong>, pour le champ <strong>Group items by<\/strong> on choisira <strong>Minutes<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/38-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"377\" height=\"392\" \/><\/p>\n<p>On va aussi changer le type de graphique. Sur l&rsquo;onglet <strong>Design<\/strong>, on clique sur le bouton <strong>Change Chart Type<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/39-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"430\" height=\"161\" \/><\/p>\n<p>On choisira le type de graphique \u00e0 <strong>Line<\/strong>, puis le premier type.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/40-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"377\" height=\"392\" \/><\/p>\n<p>Pour finir, nous allons faire quelques ajustements sur le graphique. Pour cela, on se place sur le haut du graphique avec sa souris (cf. capture), puis bouton droit de la souris, menu <strong>Properties<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/41-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"308\" height=\"332\" \/><\/p>\n<p>Dans la nouvelle fen\u00eatre, on se place sur l&rsquo;onglet <strong>Series Groups<\/strong>, puis dans le champ <strong>Select one or more series<\/strong>, on choisit la deuxi\u00e8me ligne (01 Accueil), puis on clique sur le bouton <strong>OK <\/strong>(situ\u00e9 \u00e0 droite).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/42-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"377\" height=\"392\" \/><\/p>\n<p>On reste sur la m\u00eame fen\u00eatre et m\u00eame onglet. Dans le champ <strong>Groups<\/strong>, on s\u00e9lectionne la deuxi\u00e8me ligne \u00ab 2 \u00bb, puis dans le champ <strong>Axis position<\/strong>, on choisit <strong>Right<\/strong>, puis on clique sur le bouton <strong>Add<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/43-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"377\" height=\"392\" \/><\/p>\n<p>Un dernier changement sera la mise \u00e0 l&rsquo;\u00e9chelle du l&rsquo;axe de droite pour correspondre \u00e0 l&rsquo;axe de gauche. Ce n&rsquo;est pas obligatoire (c&rsquo;est en fonction de votre r\u00e9sultat).<\/p>\n<p>Pour cela, on s\u00e9lectionne cet axe, puis bouton droit de la souris, menu <strong>Properties<\/strong>. Dans la nouvelle fen\u00eatre, on va dans l&rsquo;onglet <strong>Scale<\/strong>. Puis dans la zone <strong>Range<\/strong>, on personnalise le champ <strong>Custom max<\/strong> en mettant 100.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/44-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"\" width=\"562\" height=\"251\" \/><\/p>\n<p>Voici le graphique \u00ab final \u00bb. La courbe rouge montre le nombre des unit\u00e9s d&rsquo;ex\u00e9cutions actives durant le test, et les autres courbes montrent les temps de r\u00e9ponses des diff\u00e9rents servlets.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/images\/jmeter03-img\/45-jmeter-access-exploitation-resultats.gif\" border=\"1\" alt=\"Voici le graphique \u00ab final \u00bb. La courbe rouge montre le nombre des unit\u00e9s d'ex\u00e9cutions actives durant le test, et les autres courbes montrent les temps de r\u00e9ponses des diff\u00e9rents servlets\" width=\"728\" height=\"469\" \/><\/p>\n<p>Maintenant il faut passer \u00e0 l&rsquo;analyse de ce graphique. C&rsquo;est un art difficile de mani\u00e8re g\u00e9n\u00e9rale car cela d\u00e9pend de pas mal de param\u00e8tres. On peut n\u00e9anmoins voir tr\u00e8s rapidement avec ce graphique<\/p>\n<ul>\n<li>qu&rsquo;il y a une relation de cause \u00e0 effet par rapport aux temps de r\u00e9ponses en fonction de la charge ;<\/li>\n<li>que les p\u00e9riodes de mont\u00e9e en charge (la premi\u00e8re et la seconde) montrent des temps de r\u00e9ponses plus longs que pendant un palier constant (ce qui est normal en g\u00e9n\u00e9ral, car ici Tomcat et la base MySQL s&rsquo;adaptent progressivement \u00e0 la charge en augmentant leurs ressources (m\u00e9moire JVM, nombre de process, etc), ce qui prend du temps CPU) ;<\/li>\n<li>que l&rsquo;impact du doublement des utilisateurs est beaucoup moins importants sur les servlets utilisant JNDI\/JDBC (pool de connexions \u00e0 la base) qui les servlets faisant un acc\u00e8s direct \u00e0 la base. (peut-\u00eatre une histoire de cache ?) ;<\/li>\n<li>que l&rsquo;on revient bien \u00e0 une situation normale en termes de temps de r\u00e9ponse apr\u00e8s le retour \u00e0 50 utilisateurs ;<\/li>\n<li>etc.<\/li>\n<\/ul>\n<p>Bien entendu, il s&rsquo;agit d&rsquo;un seul graphique, on peut modifier ce graphique pour faire ressortir d&rsquo;autres \u00ab effets \u00bb.<\/p>\n<p>Bon courage.\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Maintenant que nous avons ex\u00e9cut\u00e9 son sc\u00e9nario de tir de charge par paliers, il faut s&rsquo;occuper des r\u00e9sultats. Nous allons utiliser Microsoft Access pour ce travail. Mise \u00e0 jour 26\/10\/2008 : Ici un billet pour faire des graphiques avec Gnuplot. Etape 7 : Insertion des r\u00e9sultats dans Access Si on regarde le fichier de r\u00e9sultats &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/jmeter-pages\/jmeter-tir-de-charges-par-paliers-et-exploitation-des-resultats\/insertion-des-resultats-dans-access-2007-et-generation-dun-graphique\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Insertion des r\u00e9sultats dans Access 2007 et g\u00e9n\u00e9ration d&rsquo;un graphique<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":45,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-49","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/49","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"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=49"}],"version-history":[{"count":4,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/49\/revisions"}],"predecessor-version":[{"id":1214,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/49\/revisions\/1214"}],"up":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/45"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=49"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}