{"id":1141,"date":"2012-06-30T18:37:35","date_gmt":"2012-06-30T17:37:35","guid":{"rendered":"http:\/\/blog.milamberspace.net\/?p=1141"},"modified":"2012-07-30T18:29:23","modified_gmt":"2012-07-30T17:29:23","slug":"apache-jmeter-dans-les-nuages-blazemeter-mon-premier-test","status":"publish","type":"post","link":"https:\/\/blog.milamberspace.net\/index.php\/2012\/06\/30\/apache-jmeter-dans-les-nuages-blazemeter-mon-premier-test-1141.html","title":{"rendered":"Apache JMeter dans les nuages : BlazeMeter, mon premier test"},"content":{"rendered":"<p>Voici un premier billet sur la solution de test de charge <a href=\"http:\/\/blazemeter.com\/\">BlazeMeter<\/a>, bas\u00e9e sur <a href=\"http:\/\/jmeter.apache.org\/\">Apache JMeter<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">\n<tbody>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone aligncenter\" title=\"Logo Apache JMeter\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/logo_apache_jmeter.png\" alt=\"\" width=\"231\" height=\"110\" \/><\/td>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone aligncenter\" title=\"Logo BlazeMeter\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/logo_blazemeter.png\" alt=\"\" width=\"279\" height=\"80\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Tout d&rsquo;abord une petite pr\u00e9sentation de BlazeMeter (d&rsquo;apr\u00e8s ma compr\u00e9hension).<\/p>\n<p>BlazeMeter profite de l&rsquo;<a href=\"http:\/\/fr.wikipedia.org\/wiki\/Cloud_computing\">informatique dans les nuages (Cloud Computing)<\/a>, plus pr\u00e9cis\u00e9ment de l&rsquo;offre de serveurs \u00e0 la demande d&rsquo;<a href=\"http:\/\/aws.amazon.com\/fr\/\">Amazon AWS<\/a> (ce type d&rsquo;offre s&rsquo;appelle <a href=\"http:\/\/fr.wikipedia.org\/wiki\/PaaS\">PaaS<\/a> pour Plateform as a Service), sur laquelle, les gens de <a href=\"http:\/\/blazemeter.com\/\">BlazeMeter<\/a> orchestre la mise en oeuvre de <a href=\"http:\/\/jmeter.apache.org\/\">JMeter<\/a> sur des serveurs virtuels pour lancer des tests de charge JMeter, avec en plus l&rsquo;ajout de graphiques pour suivre son tir, ainsi que de rapports de test sur les r\u00e9sultats du test de charge.<\/p>\n<p>Je suis assez admirateur de leur solution, qui montre que l&rsquo;on peut faire une tr\u00e8s belle solution de test de charge sous forme de <a href=\"http:\/\/fr.wikipedia.org\/wiki\/Saas\">SaaS<\/a> (Software as a Service) avec ce beau logiciel Apache JMeter\u00a0!<\/p>\n<p>Je vous propose donc dans ce premier billet de d\u00e9couvrir la solution <a href=\"http:\/\/blazemeter.com\/\">BlazeMeter<\/a> \u00e0 travers un petit test (micro) de charge sur mon blog.<!--more--><\/p>\n<p>Tout d&rsquo;abord, il faut savoir que la pr\u00e9paration du sc\u00e9nario de test de charge est exactement la m\u00eame que pour un test de charge Apache JMeter \u00ab\u00a0standalone\u00a0\u00bb. Vous pouvez trouvez diff\u00e9rents tutoriels sur JMeter sur <a href=\"http:\/\/blog.milamberspace.net\/index.php\/jmeter-pages\">mon blog<\/a> bien entendu.<\/p>\n<p>Voici le sc\u00e9nario propos\u00e9\u00a0:<\/p>\n<ul>\n<li>La page d&rsquo;accueil de ce blog<\/li>\n<li>La page A propos<\/li>\n<li>La page de la liste des tutoriels JMeter<\/li>\n<li>Les 4 pages du premier tutoriel test de charge JMeter<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Sc\u00e9nario de tir\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-00.png\" alt=\"\" width=\"292\" height=\"612\" \/><\/p>\n<p>Les \u00ab\u00a0\u00e9crans\u00a0\u00bb (pages) sont regroup\u00e9s dans des Contr\u00f4leurs de transaction <em>(_TC_)<\/em>, les requ\u00eates HTTP correspondant \u00e0 une page ensuite <em>(_PS_)<\/em>, puis les ressources associ\u00e9es (images, css, etc.) <em>(_Res_)<\/em><\/p>\n<p>Ensuite, il faut avoir <a href=\"https:\/\/a.blazemeter.com\/user\/register\">un compte sur BlazeMeter<\/a>. Il y a possibilit\u00e9 d&rsquo;avoir un compte de test gratuit pour 1 semaine (Free Trial), ou bien de souscrire \u00e0 l&rsquo;une de <a href=\"http:\/\/blazemeter.com\/pricing\">leurs offres<\/a>. Pour ma part, j&rsquo;ai eu le droit \u00e0 un compte \u00ab\u00a0sp\u00e9cial d\u00e9veloppeur JMeter (membre PMC)\u00a0\u00bb en tant que committer JMeter (<em><strong>Merci BlazeMeter<\/strong><\/em>) <em>(faut bien des petits avantages \u00e0 d\u00e9velopper en open source)<\/em>.<\/p>\n<p>Donc, on se connecte sur BlazeMeter.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Connexion BlazeMeter\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-01a.png\" alt=\"\" width=\"470\" height=\"254\" \/><\/p>\n<p>Puis on clique sur le bouton <strong>Add Test, <\/strong>pour envoyer son sc\u00e9nario de test JMeter (fichier .jmx) via le formulaire ci-dessous\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Formulaire de t\u00e9l\u00e9chargement du sc\u00e9nario\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-01b.png\" alt=\"\" width=\"949\" height=\"931\" \/><\/p>\n<p>On peut choisir le nombre de serveur JMeter que l&rsquo;on souhaite, ainsi que les caract\u00e9ristiques du tir (en cochant la case <strong>Override basic JMeter thread group parameters<\/strong>, \u00e0 moins d&rsquo;avoir d\u00e9j\u00e0 donn\u00e9 les bonnes caract\u00e9ristiques de tir \u00e0 son sc\u00e9nario). L&rsquo;avantage de cocher la case, c&rsquo;est de pouvoir modifier les param\u00e8tres de tir via l&rsquo;interface BlazeMeter.<\/p>\n<ul>\n<li>Noter que j&rsquo;ai choisi un petit tir, avec seulement 1 console JMeter.<\/li>\n<li>Noter aussi que l&rsquo;on peut choisir la localisation g\u00e9ographique de son serveur de test (Europe, US, Br\u00e9sil, Japon, etc.)<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Upload du sc\u00e9nario\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-01c.png\" alt=\"\" width=\"964\" height=\"366\" \/><\/p>\n<p>Ensuite, il suffit de cliquer sur le bouton <strong>Start<\/strong> pour lancer le tir.<\/p>\n<p>Il faut attendre quelques minutes (de 3 \u00e0 10 minutes) pour la plateforme de tir soit op\u00e9rationnelle et d\u00e9marre le test.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"D\u00e9marrage\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-02c.png\" alt=\"\" width=\"299\" height=\"35\" \/><\/p>\n<p>Ensuite la console BlazeMeter nous donne le status Running pour son test.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Status du tir\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-01d.png\" alt=\"\" width=\"976\" height=\"270\" \/><\/p>\n<p>Reste plus qu&rsquo;\u00e0 cliquer sur le bouton <strong>Load Report<\/strong> afin d&rsquo;avoir le graphique rafra\u00eechi chaque minute des r\u00e9sultats.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Load report\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-02.png\" alt=\"\" width=\"975\" height=\"260\" \/><\/p>\n<p>Et voil\u00e0 le graphique de suivi de son tir, sur lequel on peut suivre deux indicateurs au choix en m\u00eame temps\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Graphique de suivi BlazeMeter\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-03.png\" alt=\"\" width=\"926\" height=\"819\" \/><\/p>\n<p>Un onglet <strong>Monitoring <\/strong>permet de superviser la platefome de tir.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Suivi de la platefome de test\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-04.png\" alt=\"\" width=\"925\" height=\"580\" \/><\/p>\n<p>On peut bien entendu voir les logs de JMeter (le fameux jmeter.log)\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Jmeter.log\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-05.png\" alt=\"\" width=\"927\" height=\"792\" \/><\/p>\n<p>Voici ci-dessous, le graphique final pour mon micro test, (la dur\u00e9e du tir est ici de une heure (quasiment 1 h puisque le temps de lancement est compt\u00e9 dans l&rsquo;heure du tir visiblement)) :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"R\u00e9sultats du test de charge avec BlazeMeter\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-06.png\" alt=\"\" width=\"933\" height=\"924\" \/><\/p>\n<p>Noter le petit bouton \u00ab\u00a0Tweet\u00a0\u00bb, il vous permet directement d&rsquo;envoyer \u00e0 vos followers le lien vers le rapport de test (qui donc devient public) :<\/p>\n<p><center><\/p>\n<p>&nbsp;<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">Doing some simple <a href=\"https:\/\/twitter.com\/hashtag\/load?src=hash&amp;ref_src=twsrc%5Etfw\">#load<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/testing?src=hash&amp;ref_src=twsrc%5Etfw\">#testing<\/a> on the <a href=\"https:\/\/twitter.com\/hashtag\/Apache?src=hash&amp;ref_src=twsrc%5Etfw\">#Apache<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/JMeter?src=hash&amp;ref_src=twsrc%5Etfw\">#JMeter<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/cloud?src=hash&amp;ref_src=twsrc%5Etfw\">#cloud<\/a> solution (<a href=\"https:\/\/twitter.com\/hashtag\/BlazeMeter?src=hash&amp;ref_src=twsrc%5Etfw\">#BlazeMeter<\/a>):  <a href=\"https:\/\/t.co\/LQ2A3Xc1\">https:\/\/t.co\/LQ2A3Xc1<\/a><\/p>\n<p>&mdash; Milamberspace (@milamberspace) <a href=\"https:\/\/twitter.com\/milamberspace\/status\/217728715537391616?ref_src=twsrc%5Etfw\">June 26, 2012<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>&nbsp;<\/p>\n<p><\/center><\/p>\n<p>Dessous le graphique, on a un tableau reprenant les statistiques de r\u00e9ponse du <strong>R\u00e9cepteur Rapport Agr\u00e9g\u00e9<\/strong> dans JMeter\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Rapport agr\u00e9g\u00e9 avec BlazeMeter\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-07.png\" alt=\"\" width=\"932\" height=\"842\" \/><\/p>\n<p>Pour finir, vous recevrez dans votre bo\u00eete aux lettre, un gentil email pour dire que le test est termin\u00e9, et que le rapport est consultable sur le site BlazeMeter.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Email re\u00e7u par BlazeMeter\" src=\"\/wp-content\/images\/jmeter-40-blazemeter\/blazemeter-09.png\" alt=\"\" width=\"722\" height=\"354\" \/><\/p>\n<p>J&rsquo;en termine pour ce premier test avec <a href=\"http:\/\/blazemeter.com\/\">BlazeMeter<\/a>. Je pense qu&rsquo;il s&rsquo;agit d&rsquo;une tr\u00e8s bonne solution pour gagner du temps de mise en place de plate-forme de test de charge et faire de beaux (gros) tirs avec Apache JMeter. Par ailleurs, le graphique de suivi des r\u00e9sultats est dr\u00f4lement pratique pour suivre en temps quasi-r\u00e9el son test, surtout si on a un chef dans son dos.<\/p>\n<p>Bien entendu, ce tir est un tr\u00e8s petit tir. Il a juste vocation \u00e0 montrer l&rsquo;utilisation de BlazeMeter en tant que SaaS. La prochaine \u00e9tape sera de r\u00e9aliser un tr\u00e8s gros tir sur un serveur cible (dans un data center avec une bonne connexion \u00e0 l&rsquo;Internet), avec la solution BlazeMeter et le maximum d&rsquo;injecteurs (\u00e0 priori, je peux monter \u00e0 60 serveurs avec mon profil de compte!). Je ferai donc un autre billet pour raconter ce gros tir \ud83d\ude09<\/p>\n<p>&nbsp;<\/p>\n<p>.\/<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici un premier billet sur la solution de test de charge BlazeMeter, bas\u00e9e sur Apache JMeter. &nbsp; &nbsp; Tout d&rsquo;abord une petite pr\u00e9sentation de BlazeMeter (d&rsquo;apr\u00e8s ma compr\u00e9hension). BlazeMeter profite de l&rsquo;informatique dans les nuages (Cloud Computing), plus pr\u00e9cis\u00e9ment de l&rsquo;offre de serveurs \u00e0 la demande d&rsquo;Amazon AWS (ce type d&rsquo;offre s&rsquo;appelle PaaS pour Plateform &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/2012\/06\/30\/apache-jmeter-dans-les-nuages-blazemeter-mon-premier-test-1141.html\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Apache JMeter dans les nuages : BlazeMeter, mon premier test<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,288,33,34,150],"tags":[368,369,330],"class_list":["post-1141","post","type-post","status-publish","format-standard","hentry","category-apache","category-blazemeter","category-jmeter","category-tests-de-charges","category-tutoriel","tag-blazemeter","tag-cloud","tag-jmeter"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1141","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=1141"}],"version-history":[{"count":18,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1141\/revisions"}],"predecessor-version":[{"id":1187,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/posts\/1141\/revisions\/1187"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=1141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/categories?post=1141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/tags?post=1141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}