{"id":2831,"date":"2024-01-12T10:28:44","date_gmt":"2024-01-12T09:28:44","guid":{"rendered":"https:\/\/ittester.sk\/non-classifiee\/site-web-de-test-de-performance\/"},"modified":"2024-10-22T14:14:38","modified_gmt":"2024-10-22T12:14:38","slug":"site-web-de-test-de-performance","status":"publish","type":"post","link":"https:\/\/ittester.sk\/fr\/tests-de-performance\/tutoriel-jmeter\/site-web-de-test-de-performance\/","title":{"rendered":"Tests de performance des sites web"},"content":{"rendered":"\n<p>Dans ce tutoriel, nous allons aborder la cr\u00e9ation d&rsquo;un plan de test de performance d&rsquo;application web avec lequel nous pouvons effectuer des tests de performance d&rsquo;application web \u00e0 l&rsquo;aide de JMeter. Vous apprendrez \u00e9galement \u00e0 conna\u00eetre les diff\u00e9rents \u00e9l\u00e9ments du plan de test n\u00e9cessaires \u00e0 la cr\u00e9ation d&rsquo;un script de test, ainsi que leur utilisation et leur configuration.<\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Table des mati\u00e8res<\/strong><\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-predpoklady-prerekvizity-pre-vykonnostne-testy-performance-tests\">Predpoklady (prerekvizity) pre v\u00fdkonnostn\u00e9 testy (performance tests)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-kroky-pri-vytvarani-skriptov-testov-vykonnosti\">Kroky pri vytv\u00e1ran\u00ed skriptov testov v\u00fdkonnosti<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vytvorenie-kostry-testovacieho-skriptu\">Vytvorenie kostry testovacieho skriptu<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vytvaranie-alebo-zaznamenavanie-poziadaviek-http\">Vytv\u00e1ranie alebo zaznamen\u00e1vanie po\u017eiadaviek HTTP<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-pridanie-casovacov\">Pridanie \u010dasova\u010dov<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-pridanie-posluchacov\">Pridanie posluch\u00e1\u010dov<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-dry-run-test\">Dry Run test<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-konfiguracia-a-naplanovanie-zatazoveho-testu\">Konfigur\u00e1cia a napl\u00e1novanie z\u00e1\u0165a\u017eov\u00e9ho testu<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-spustenie-a-analyza-testu\">Spustenie a anal\u00fdza testu<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-zaver\">Z\u00e1ver<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-predpoklady-prerekvizity-pre-vykonnostne-testy-performance-tests\">Conditions pr\u00e9alables aux tests de performance<\/h2>\n\n<p>Lors de l&rsquo;\u00e9laboration d&rsquo;un plan de test des performances d&rsquo;une application web, vous devez ma\u00eetriser les \u00e9l\u00e9ments suivants au pr\u00e9alable :<\/p>\n\n<ol class=\"wp-block-list\">\n<li>Connaissance des sc\u00e9narios d&rsquo;application commerciale.<\/li>\n\n\n\n<li>Une instance d&rsquo;application con\u00e7ue pour tester les performances avec des configurations et un \u00e9tat similaires \u00e0 ceux de la production.<\/li>\n\n\n\n<li>Liste des sc\u00e9narios s\u00e9lectionn\u00e9s pour les tests de performance (car il n&rsquo;est pas n\u00e9cessaire de tester la charge de tous les sc\u00e9narios).<\/li>\n\n\n\n<li>La charge de pointe en production ou la valeur pr\u00e9vue de la charge de pointe.<\/li>\n\n\n\n<li>La r\u00e9partition des utilisateurs dans les diff\u00e9rents sc\u00e9narios, car certains sc\u00e9narios sont utilis\u00e9s plus souvent que d&rsquo;autres. Par cons\u00e9quent, le nombre d&rsquo;utilisateurs varie d&rsquo;un sc\u00e9nario \u00e0 l&rsquo;autre.<\/li>\n\n\n\n<li>La valeur du temps de r\u00e9flexion ou d&rsquo;attente \u00e0 inclure entre certaines op\u00e9rations pour simuler les utilisateurs r\u00e9els &#8211; temps de r\u00e9flexion, temps de frappe, temps de lecture et de traitement de l&rsquo;information, etc.<\/li>\n\n\n\n<li>Un indicateur de performance \u00e0 d\u00e9duire des r\u00e9sultats du test, tel que le temps de r\u00e9ponse, le nombre de vues par seconde, etc.<\/li>\n<\/ol>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-kroky-pri-vytvarani-skriptov-testov-vykonnosti\">\u00c9tapes de la cr\u00e9ation de scripts de test de performance<\/h2>\n\n<p>Pour cr\u00e9er un plan de test de performance d&rsquo;une application web, vous devez suivre les \u00e9tapes suivantes :<\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Cr\u00e9ez un squelette de script de test<\/strong> avec un plan de test configur\u00e9, des groupes de threads et des contr\u00f4leurs logiques.<\/li>\n\n\n\n<li><strong>Cr\u00e9ation ou enregistrement de requ\u00eates HTTP <\/strong>\u00e0 l&rsquo;aide du proxy HTTP.<\/li>\n\n\n\n<li><strong>Ajoutez des minuteries pour<\/strong> introduire un temps d&rsquo;attente ou de r\u00e9flexion entre les demandes.<\/li>\n\n\n\n<li><strong>Ajoutez des \u00e9couteurs pour<\/strong> stocker et analyser les r\u00e9sultats des tests.<\/li>\n\n\n\n<li><strong>Effectuez un test \u00e0 blanc<\/strong> avec 1 ou 2 utilisateurs.<\/li>\n\n\n\n<li><strong>Configurez un test de r\u00e9sistance<\/strong> avec le nombre requis d&rsquo;utilisateurs et ex\u00e9cutez-le.<\/li>\n\n\n\n<li><strong>Ex\u00e9cuter et analyser les r\u00e9sultats des tests<\/strong>.<\/li>\n<\/ol>\n\n<p>Voyons maintenant comment nous pouvons effectuer chacune des \u00e9tapes ci-dessus en d\u00e9tail.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vytvorenie-kostry-testovacieho-skriptu\">Cr\u00e9er le squelette du script de test<\/h2>\n\n<p>En fonction du nombre de groupes d&rsquo;utilisateurs n\u00e9cessaires pour effectuer diverses op\u00e9rations, nous ajouterons des groupes de threads et des contr\u00f4leurs logiques \u00e0 notre plan de test. Par exemple, si deux groupes d&rsquo;utilisateurs effectuent des op\u00e9rations de recherche et de connexion sur une page web.<\/p>\n\n<p>Nous cr\u00e9ons ensuite deux groupes de threads et ajoutons diff\u00e9rents contr\u00f4leurs logiques pour simuler les diff\u00e9rentes op\u00e9rations effectu\u00e9es par les utilisateurs. Mesures \u00e0 prendre :<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Ajoutez un groupe de threads au plan de test et nommez-le UsersSearchingKeywords.<\/li>\n\n\n\n<li>Ajoutez plusieurs contr\u00f4leurs de transaction en tant qu&rsquo;enfants de ce groupe de fils et nommez-les en fonction des op\u00e9rations qu&rsquo;ils effectuent, par exemple : \u00ab\u00a0D\u00e9marrer l&rsquo;application\u00a0\u00bb, \u00ab\u00a0Rechercher un mot cl\u00e9 et appuyer sur la touche Entr\u00e9e\u00a0\u00bb, \u00ab\u00a0Fermer l&rsquo;application\u00a0\u00bb.<\/li>\n\n\n\n<li>Ajoutez un autre groupe de fils et nommez-le UsersLogin.<\/li>\n\n\n\n<li>Ajoutez des contr\u00f4leurs de transaction \u00e0 ce groupe de fils, tels que \u00ab\u00a0Lancer l&rsquo;application\u00a0\u00bb, \u00ab\u00a0Cliquer sur le lien de connexion\u00a0\u00bb, \u00ab\u00a0Saisir les informations d&rsquo;identification et cliquer sur le bouton Soumettre\u00a0\u00bb.<\/li>\n\n\n\n<li>Ajouter une configuration  <\/li>\n<\/ul>\n\n<p>Notre plan de test se pr\u00e9sentera comme suit :<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"360\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-1-950-360.webp\" alt=\"\" class=\"wp-image-840\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-1-950-360.webp 950w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-1-950-360-300x114.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-1-950-360-768x291.webp 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n<\/div>\n<p>Notez que nous avons utilis\u00e9 un contr\u00f4leur de transaction ici parce que nous pouvons avoir plusieurs requ\u00eates HTTP dans ce contr\u00f4leur, et nous obtenons le temps de r\u00e9ponse total de la transaction enti\u00e8re apr\u00e8s l&rsquo;ex\u00e9cution du test, ce qui est souhaitable. En fonction des sc\u00e9narios, nous pouvons \u00e9galement ajouter diff\u00e9rents contr\u00f4leurs logiques, tels qu&rsquo;un contr\u00f4leur de cycle, un contr\u00f4leur al\u00e9atoire, etc.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vytvaranie-alebo-zaznamenavanie-poziadaviek-http\">Cr\u00e9ation ou enregistrement de requ\u00eates HTTP<\/h2>\n\n<p>Lorsque nous effectuons une op\u00e9ration, comme cliquer sur un bouton, plusieurs requ\u00eates HTTP sont envoy\u00e9es au serveur. Lors de la r\u00e9daction du script, nous devons cr\u00e9er toutes ces demandes afin de pouvoir d\u00e9terminer le temps n\u00e9cessaire au traitement des demandes.<\/p>\n\n<p>Pour ce faire, vous pouvez ajouter diff\u00e9rentes requ\u00eates HTTP et les configurer avec des valeurs telles que l&rsquo;URL, le port, le type de requ\u00eate (Get, Put, Post, Delete, etc.), le corps de la requ\u00eate, l&rsquo;en-t\u00eate de la requ\u00eate, etc. Cependant, cela peut s&rsquo;av\u00e9rer tr\u00e8s lourd, \u00e0 moins que nous n&rsquo;ayons besoin de tester des requ\u00eates tr\u00e8s limit\u00e9es ou de tester une requ\u00eate HTTP sp\u00e9cifique.<\/p>\n\n<p>Pour ce faire, JMeter nous fournit l&rsquo;outil HTTP(s) Test Script Recorder, que nous pouvons utiliser pour enregistrer des scripts dans JMeter directement en effectuant des op\u00e9rations dans le navigateur.<\/p>\n\n<p>Lorsque nous commen\u00e7ons \u00e0 enregistrer des scripts, nous pouvons s\u00e9lectionner un contr\u00f4leur de transaction, tel que \u00ab\u00a0Launch application\u00a0\u00bb, \u00e0 partir du contr\u00f4leur HTTP(s) Test Script Recorder cible et effectuer des op\u00e9rations telles que le lancement d&rsquo;une application web dans le navigateur configur\u00e9, l&rsquo;ajout de diverses requ\u00eates HTTP au contr\u00f4leur s\u00e9lectionn\u00e9.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"280\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-2-1000-280.webp\" alt=\"\" class=\"wp-image-842\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-2-1000-280.webp 1000w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-2-1000-280-300x84.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/performance-testing-webstranok-screenshot-2-1000-280-768x215.webp 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-pridanie-casovacov\">Ajout de minuteries<\/h2>\n\n<p>Nous pouvons ajouter des minuteries entre deux contr\u00f4leurs de transaction pour introduire un temps de r\u00e9flexion. Par exemple, nous pouvons introduire une minuterie avec une valeur de temporisation de 3 secondes entre les contr\u00f4leurs \u00ab\u00a0Launch Application\u00a0\u00bb et \u00ab\u00a0Search Keyword\u00a0\u00bb pour simuler le temps n\u00e9cessaire \u00e0 l&rsquo;utilisateur pour traiter la r\u00e9ponse et saisir le mot cl\u00e9 \u00e0 rechercher.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-pridanie-posluchacov\">Ajouter des auditeurs<\/h2>\n\n<p>Nous pouvons utiliser diff\u00e9rents types de r\u00e9cepteurs pour stocker et analyser les r\u00e9sultats des tests, que nous avons \u00e9tudi\u00e9s dans notre tutoriel &#8211; Listeners in JMeter.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-dry-run-test\">Essai \u00e0 blanc<\/h2>\n\n<p>Avant d&rsquo;ex\u00e9cuter le test avec le nombre r\u00e9el d&rsquo;utilisateurs, nous devons ex\u00e9cuter le test \u00e0 sec avec un tr\u00e8s petit nombre d&rsquo;utilisateurs pour v\u00e9rifier l&rsquo;exactitude du script.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-konfiguracia-a-naplanovanie-zatazoveho-testu\">Configuration et programmation d&rsquo;un test de r\u00e9sistance<\/h2>\n\n<p>Apr\u00e8s avoir valid\u00e9 les scripts, nous configurons le test de r\u00e9sistance avec le nombre requis d&rsquo;utilisateurs et programmons le test de r\u00e9sistance.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-spustenie-a-analyza-testu\">Ex\u00e9cution et analyse du test<\/h2>\n\n<p>Une fois la cr\u00e9ation et la configuration du script de test termin\u00e9es, ex\u00e9cutez le test en cliquant sur l&rsquo;ic\u00f4ne de lecture ou en appuyant sur le raccourci clavier Ctrl+r. Nous surveillerons le serveur en parall\u00e8le pendant l&rsquo;ex\u00e9cution du test. Une fois le test termin\u00e9, vous pouvez enregistrer et analyser les r\u00e9sultats du test.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-zaver\">Conclusion<\/h2>\n\n<p>Nous avons maintenant vu le plan de test de base pour l&rsquo;application web, mais il reste encore quelques points \u00e0 r\u00e9gler :<\/p>\n\n<ol class=\"wp-block-list\">\n<li>Lors des tests, nous ne devons pas saisir en dur des valeurs telles que les termes de recherche, les identifiants de connexion des utilisateurs, etc. Pour ce faire, nous devons param\u00e9trer les scripts de test.  <\/li>\n\n\n\n<li>La cr\u00e9ation de scripts dynamiques et la manipulation des variables de session sont d&rsquo;autres \u00e9l\u00e9ments \u00e0 prendre en compte lors de la cr\u00e9ation de scripts. Pour r\u00e9soudre ces probl\u00e8mes, nous disposons du concept de corr\u00e9lation.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Cr\u00e9ation d&rsquo;un plan de test de performance d&rsquo;une application web afin de pouvoir effectuer des tests de performance \u00e0 l&rsquo;aide de JMeter.  <\/p>\n","protected":false},"author":8,"featured_media":2834,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[51],"tags":[],"class_list":["post-2831","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriel-jmeter"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/comments?post=2831"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2831\/revisions"}],"predecessor-version":[{"id":2837,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2831\/revisions\/2837"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media\/2834"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media?parent=2831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/categories?post=2831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/tags?post=2831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}