{"id":2793,"date":"2024-01-19T10:00:00","date_gmt":"2024-01-19T09:00:00","guid":{"rendered":"https:\/\/ittester.sk\/non-classifiee\/correlation-metre\/"},"modified":"2024-10-22T14:14:27","modified_gmt":"2024-10-22T12:14:27","slug":"correlation-metre","status":"publish","type":"post","link":"https:\/\/ittester.sk\/fr\/tests-de-performance\/tutoriel-jmeter\/correlation-metre\/","title":{"rendered":"Corr\u00e9lation dans JMeter"},"content":{"rendered":"\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-co-je-korelacia-a-preco-je-potrebna\">\u010co je korel\u00e1cia a pre\u010do je potrebn\u00e1?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-strucny-nahlad-do-regularnych-vyrazov\">Stru\u010dn\u00fd n\u00e1h\u013ead do regul\u00e1rnych v\u00fdrazov<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-extraktor-regularnych-vyrazov\">Extraktor regul\u00e1rnych v\u00fdrazov<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-co-je-korelacia-a-preco-je-potrebna\">Qu&rsquo;est-ce que la corr\u00e9lation et pourquoi est-elle n\u00e9cessaire ?<\/h2>\n\n<p>La corr\u00e9lation est l&rsquo;aspect le plus important des scripts. Il s&rsquo;agit g\u00e9n\u00e9ralement de r\u00e9cup\u00e9rer les donn\u00e9es dynamiques des demandes\/invocations pr\u00e9c\u00e9dentes et de les envoyer aux demandes suivantes.<\/p>\n\n<p>Prenons un exemple pour comprendre pourquoi nous avons besoin d&rsquo;une corr\u00e9lation. Supposons que nous ayons v\u00e9cu un sc\u00e9nario dans lequel :<\/p>\n\n<ul class=\"wp-block-list\">\n<li>-&gt;L&rsquo;utilisateur entre ses donn\u00e9es de connexion et clique sur OK<\/li>\n\n\n\n<li>-&gt;La page d&rsquo;accueil s&rsquo;ouvre et l&rsquo;utilisateur effectue d&rsquo;autres actions<\/li>\n<\/ul>\n\n<p>Si nous rejouons ce sc\u00e9nario, le test \u00e9chouera m\u00eame pour un seul utilisateur. Cela est d\u00fb au m\u00e9canisme d&rsquo;authentification utilis\u00e9. Lorsque nous nous connectons \u00e0 un site web, des variables de session sont cr\u00e9\u00e9es dynamiquement. Ces variables de session sont transmises \u00e0 d&rsquo;autres requ\u00eates et permettent de v\u00e9rifier et d&rsquo;authentifier les actions effectu\u00e9es. Il n&rsquo;est donc pas possible d&rsquo;enregistrer et de rejouer les requ\u00eates contenant ces variables. Dans ce cas, nous devons lier les requ\u00eates web \u00e0 des variables dynamiques. Et pour la corr\u00e9lation, nous devons utiliser \u00ab\u00a0Regular Expression Extractor\u00a0\u00bb qui utilise des expressions r\u00e9guli\u00e8res. Avant de nous pencher plus avant sur la corr\u00e9lation, commen\u00e7ons par comprendre ce que sont les \u00ab\u00a0expressions r\u00e9guli\u00e8res\u00a0\u00bb.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-strucny-nahlad-do-regularnych-vyrazov\">Un bref aper\u00e7u des expressions r\u00e9guli\u00e8res<\/h2>\n\n<p>Les expressions r\u00e9guli\u00e8res sont utilis\u00e9es pour extraire des donn\u00e9es d&rsquo;une cha\u00eene sur la base d&rsquo;un mod\u00e8le de recherche. Fondamentalement, pour obtenir une valeur quelconque (g\u00e9n\u00e9ralement une valeur cr\u00e9\u00e9e dynamiquement) \u00e0 partir d&rsquo;une r\u00e9ponse sous forme de cha\u00eene, nous d\u00e9finissons un cadre gauche pour la variable, puis quelques caract\u00e8res g\u00e9n\u00e9riques, et enfin un cadre droit :<\/p>\n\n<p>(Limite gauche)(Caract\u00e8res de remplacement)(Limite droite)Par exemple si nous avons une r\u00e9ponse textuelle comme-&#8230;__EVENTVALIDATION \u00ab\u00a0value=\u00a0\u00bbweriudflsdfspdfusdjhsdihffgdfgpdfjsdjfpj\u00a0\u00bb \/&gt;&#8230;.<\/p><p>Et nous devons obtenir la valeur de la variable Event Validation \u00e0 l&rsquo;aide d&rsquo;expressions r\u00e9guli\u00e8res ; une expression r\u00e9guli\u00e8re pour cela serait :<\/p>\n\n<pre class=\"wp-block-code\"><code><p><strong>__EVENTVALIDATION\" value=\"(.+?)\" \/&gt;&nbsp;where, Left Bound = __EVENTVALIDATION\" value=\"&nbsp;Wildcard characters = (.+?)&nbsp;Right Bound = \" \/&gt;<\/strong><\/p><\/code><\/pre>\n\n<p>Si vous ne souhaitez pas approfondir les expressions r\u00e9guli\u00e8res, les caract\u00e8res g\u00e9n\u00e9riques (.+ ?) suffisent dans la plupart des cas. Pour plus d&rsquo;informations sur les expressions r\u00e9guli\u00e8res et la signification des diff\u00e9rents caract\u00e8res de remplacement, consultez le <a href=\"http:\/\/www.regular-expressions.info\/tutorialcnt.html\" target=\"_blank\" rel=\"noopener nofollow\" title=\"\">site d&rsquo;information sur les expressions r\u00e9guli\u00e8res<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-extraktor-regularnych-vyrazov\">Extracteur d&rsquo;expressions r\u00e9guli\u00e8res<\/h2>\n\n<p>Revenons \u00e0 l&rsquo;application JMeter et consid\u00e9rons un exemple dans lequel nous avons deux op\u00e9rations :<\/p>\n\n<ol class=\"wp-block-list\">\n<li>L&rsquo;utilisateur lance une page web<\/li>\n\n\n\n<li>L&rsquo;utilisateur remplit les d\u00e9tails et clique sur OK.<\/li>\n<\/ol>\n\n<p>Appeler maintenant \u00ab\u00a0Site web de lancement de l&rsquo;utilisateur\u00a0\u00bb (Lancement du site web de l&rsquo;utilisateur) cr\u00e9e une variable dynamique &#8211; \u00ab\u00a0eventVvalidation\u00a0\u00bb. (v\u00e9rification de l&rsquo;\u00e9v\u00e9nement), que nous pouvons v\u00e9rifier dans l&rsquo;onglet Donn\u00e9es de r\u00e9ponse (D\u00e9tails de la r\u00e9ponse) dans l&rsquo;auditeur (auditeur) \u00ab\u00a0Voir l&rsquo;arborescence des r\u00e9sultats\u00a0\u00bb pour cet appel. La valeur de cette variable est ensuite transmise aux appels ult\u00e9rieurs relatifs \u00e0 \u00ab\u00a0L&rsquo;utilisateur remplit les d\u00e9tails et clique sur le bouton OK\u00a0\u00bb en tant que param\u00e8tre Http post.<\/p>\n\n<p>\u00c9tapes de la corr\u00e9lation des valeurs de v\u00e9rification d&rsquo;\u00e9v\u00e9nements :<\/p>\n\n<ol class=\"wp-block-list\">\n<li>Ex\u00e9cutez le script contenant les deux op\u00e9rations ci-dessus.<\/li>\n\n\n\n<li>Allez dans l&rsquo;onglet Response (mode texte) de l&rsquo;auditeur \u00ab\u00a0View Result Tree\u00a0\u00bb de l&rsquo;op\u00e9ration \u00ab\u00a0User launch website\u00a0\u00bb. Dans la figure suivante, nous pouvons voir que la deuxi\u00e8me op\u00e9ration \u00ab\u00a0L&rsquo;utilisateur remplit les donn\u00e9es et clique sur OK\u00a0\u00bb est rouge parce qu&rsquo;elle n&rsquo;est pas encore corr\u00e9l\u00e9e.<\/li>\n<\/ol>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-1-1290-650-1024x516.webp\" alt=\"\" class=\"wp-image-786\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-1-1290-650-1024x516.webp 1024w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-1-1290-650-300x151.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-1-1290-650-768x387.webp 768w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-1-1290-650.webp 1290w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Cr\u00e9ez une expression r\u00e9guli\u00e8re pour extraire la valeur de la variable de validation Event. Comme indiqu\u00e9 ci-dessus, l&rsquo;E.R. \u00e0 cette fin sera :<\/li>\n<\/ol>\n\n<p><strong>__EVENTVALIDATION\u00a0\u00bb value=\u00a0\u00bb(.+ ?)\u00a0\u00bb \/&gt;<\/strong><\/p>\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>Naviguez jusqu&rsquo;\u00e0 la requ\u00eate http dans le contr\u00f4leur de transaction \u00ab\u00a0User Launch Website\u00a0\u00bb -&gt; Add -&gt; Post Processor -&gt; Regular Expression Extractor.<\/li>\n<\/ol>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-2-1080-550-1024x521.webp\" alt=\"\" class=\"wp-image-788\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-2-1080-550-1024x521.webp 1024w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-2-1080-550-300x153.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-2-1080-550-768x391.webp 768w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-2-1080-550.webp 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>Ajout du contr\u00f4le \u00ab\u00a0Regular Expression Extractor\u00a0\u00bb (Extracteur d&rsquo;expressions r\u00e9guli\u00e8res)<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"456\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-3-1100-490-1024x456.webp\" alt=\"\" class=\"wp-image-790\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-3-1100-490-1024x456.webp 1024w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-3-1100-490-300x134.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-3-1100-490-768x342.webp 768w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-3-1100-490.webp 1100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<p>Param\u00e8tres de l&rsquo;extracteur R.E. remplis<\/p>\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>Le nom de la r\u00e9f\u00e9rence imbriqu\u00e9e est le nom de la variable cr\u00e9\u00e9e qui capturera la valeur de validation de l&rsquo;\u00e9v\u00e9nement g\u00e9n\u00e9r\u00e9e par la requ\u00eate http dans le cadre de l&rsquo;op\u00e9ration \u00ab\u00a0User launch website\u00a0\u00bb.<\/li>\n\n\n\n<li>Passez maintenant cette variable \u00e0 la requ\u00eate http suivante en tant que requ\u00eate post dans l&rsquo;op\u00e9ration \u00ab\u00a0L&rsquo;utilisateur remplit les d\u00e9tails et clique sur le bouton OK\u00a0\u00bb &#8211; ce qui \u00e9crase la valeur cod\u00e9e en dur d\u00e9j\u00e0 pr\u00e9sente de la variable Validation de l&rsquo;\u00e9v\u00e9nement.<\/li>\n<\/ol>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-4-1160-580-1024x512.webp\" alt=\"\" class=\"wp-image-792\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-4-1160-580-1024x512.webp 1024w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-4-1160-580-300x150.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-4-1160-580-768x384.webp 768w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-4-1160-580.webp 1160w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<p>Demande sans corr\u00e9lation (valeurs cod\u00e9es en dur)<\/p>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"593\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-5-1140-660-1024x593.webp\" alt=\"\" class=\"wp-image-794\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-5-1140-660-1024x593.webp 1024w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-5-1140-660-300x174.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-5-1140-660-768x445.webp 768w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/korelacia-screenshot-5-1140-660.webp 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<p>Demande (requ\u00eate) avec corr\u00e9lation (valeurs dynamiques)<\/p>\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li>Ex\u00e9cutez \u00e0 nouveau le plan de test. Tout en vert ! C&rsquo;est tout.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>La corr\u00e9lation est l&rsquo;aspect le plus important des scripts. Il s&rsquo;agit de r\u00e9cup\u00e9rer des donn\u00e9es dynamiques et de les envoyer aux requ\u00eates suivantes.<\/p>\n","protected":false},"author":8,"featured_media":2799,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[51],"tags":[],"class_list":["post-2793","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\/2793","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=2793"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2793\/revisions"}],"predecessor-version":[{"id":2800,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/posts\/2793\/revisions\/2800"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media\/2799"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/media?parent=2793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/categories?post=2793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/fr\/wp-json\/wp\/v2\/tags?post=2793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}