{"id":33,"date":"2007-09-25T15:34:09","date_gmt":"2007-09-25T15:34:09","guid":{"rendered":"http:\/\/blog.milamberspace.net\/index.php\/jmeter-test-de-charges-dun-site-web-mode-demploi\/jmeteriser-son-scenario-fonctionnel"},"modified":"2014-01-27T08:52:15","modified_gmt":"2014-01-27T08:52:15","slug":"jmeteriser-son-scenario-fonctionnel","status":"publish","type":"page","link":"https:\/\/blog.milamberspace.net\/index.php\/jmeter-pages\/jmeter-test-de-charges-dun-site-web-mode-demploi\/jmeteriser-son-scenario-fonctionnel","title":{"rendered":"\u00ab\u00a0Jmeteriser\u00a0\u00bb son sc\u00e9nario fonctionnel"},"content":{"rendered":"<p><strong>Ecrire son sc\u00e9nario fonctionnel dans JMeter<\/strong><\/p>\n<p>Avec JMeter, on peut bien s\u00fbr, d\u00e9finir son sc\u00e9nario de test manuellement pour chaque requ\u00eate HTTP avec le ou les param\u00e8tres associ\u00e9s&#8230; cela sera long et fatiguant. Surtout cela va donner lieu \u00e0 une phase de v\u00e9rification de son sc\u00e9nario \u00ab jmeteris\u00e9 \u00bb importante car il risque d&rsquo;y avoir des \u00ab bugs \u00bb, normal, c&rsquo;est du travail \u00ab manuel \u00bb.<\/p>\n<p>JMeter propose une fonctionnalit\u00e9 \u00ab Enregisteur script de test HTTP(S) \u00bb qui peut enregistrer une session de navigation, effectu\u00e9e avec son navigateur, directement dans des \u00e9chantillons <strong>Requ\u00eate HTTP<\/strong>. Du coup, la \u00ab jmeterisation \u00bb devient plus facile et rapide. Apr\u00e8s l&rsquo;enregistrement de la session de navigation, on aura juste des ajustements \u00e0 faire afin notamment de rendre dynamique les donn\u00e9es de tests.<\/p>\n<p>La session de navigation est donc une ex\u00e9cution unitaire du sc\u00e9nario fonctionnel cible, sur son navigateur. La session est enregistr\u00e9e par JMeter en m\u00eame temps.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Comment faire ?<\/em><\/span><\/p>\n<p>Lancer JMeter.<em> Sous Windows, on utilisera le fichier JMETER_HOME\\bin\\jmeterw.cmd, sous Linux\/Unix : JMETER_HOME\/bin\/jmeter.<\/em><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" title=\"Page d'accueil de JMeter\" alt=\"Page d'accueil de JMeter\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/01-jmeter-lancement.png\" \/><\/p>\n<p>S\u00e9lectionner l&rsquo;item <strong>Plan de travail<\/strong>, puis clic droit sur la souris, et ajouter un \u00e9l\u00e9ment hors test &gt; <strong>Enregistreur script de test HTTP(S)<\/strong>.<\/p>\n<p style=\"text-align: left;\"><img decoding=\"async\" class=\"aligncenter\" title=\"Ajout de Non-Test Elements &gt; Enregistreur script de test HTTP(S)\" alt=\"Ajout de Non-Test Elements &gt; Enregistreur script de test HTTP(S)\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/02-jmeter-ajouter-proxy.png\" \/><br \/>\nDessous, on ajoute \u00e9galement un \u00e9l\u00e9ment de type <strong>R\u00e9cepteurs<\/strong> &gt; <strong>Arbre de r\u00e9sultats<\/strong> afin de pouvoir voir les requ\u00eates HTTP enregistr\u00e9es lors de la future session de navigation. <em>L&rsquo;ajout du r\u00e9cepteur <strong>Arbre de r\u00e9sultats<\/strong> va permettre donc de voir les \u00e9changes HTTP (entre son navigateur et l&rsquo;<strong>Enregistreur script de test HTTP(S)<\/strong>, et si besoin, nous permettre de les consulter plus tard (\u00e0 froid) lors de l&rsquo;affinage du scenario de tir de charges.<\/em><\/p>\n<p style=\"text-align: left;\"><img decoding=\"async\" class=\"aligncenter\" title=\"Ajout de Non-Test Elements &gt; Enregistreur script de test HTTP(S)\" alt=\"Ajout de Non-Test Elements &gt; Enregistreur script de test HTTP(S)\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/02b-jmeter-ajouter-arbre-resultats.png\" \/><br \/>\nPuis on se place sur l&rsquo;item <strong>Plan de test<\/strong>, un clic droit sur la souris, et ajouter un \u00e9l\u00e9ment <strong>Groupe d&rsquo;unit\u00e9s<\/strong><span>.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Ajout de Thread Group\" alt=\"Ajout de Thread Group\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/04-jmeter-ajouter-groupe-unites.png\" border=\"1\" \/><\/p>\n<p>Ensuite, s\u00e9lectionner le nouvel \u00e9l\u00e9ment <strong>Groupe d&rsquo;unit\u00e9s<\/strong>, un clic droit sur la souris, et ajouter un \u00e9l\u00e9ment <strong>Contr\u00f4leurs Logiques<\/strong> &gt; <strong>Contr\u00f4leur Enregistreur<\/strong><span>.<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Ajout de Logic Controller &gt; Recording Controller\" alt=\"Ajout de Logic Controller &gt; Recording Controller\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/05-jmeter-controleur-enregistreur.png\" width=\"783\" height=\"354\" border=\"1\" \/><\/p>\n<p>Le <strong>Enregistreur script de test HTTP(S)<\/strong> et le <strong>Contr\u00f4leur Enregistreur <\/strong>sont les deux seuls \u00e9l\u00e9ments n\u00e9cessaires pour l&rsquo;enregistrement d&rsquo;une session de navigation. Cependant nous allons y ajouter quelques autres \u00e9l\u00e9ments pour r\u00e9pondre \u00e0 quelques contraintes et\/ou pour nous faciliter le travail.<\/p>\n<p>L&rsquo;\u00e9l\u00e9ment de configuration <strong>Param\u00e8tres HTTP par d\u00e9faut<\/strong> va nous permettre de &lsquo;variabiliser&rsquo; le nom du serveur web, son port, etc., c&rsquo;est-\u00e0-dire que les requ\u00eates HTTP (qui seront cr\u00e9\u00e9es automatiquement lors de la session de navigation par l&rsquo;<strong>Enregistreur script de test HTTP(S)<\/strong>), verront leur champ <em>nom du serveur Web, Port, etc.<\/em> vides. Ces derniers seront remplac\u00e9s \u00e0 l&rsquo;ex\u00e9cution par les valeurs situ\u00e9es dans cet \u00e9l\u00e9ment <strong>Param\u00e8tres HTTP par d\u00e9faut<\/strong>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" title=\"Ajout de Config Element &gt; HTP Request Defaults\" alt=\"Ajout de Config Element &gt; HTP Request Defaults\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/06-jmeter-http-par-defaut.png\" border=\"1\" \/><\/p>\n<p>Ensuite, dans l&rsquo;\u00e9l\u00e9ment de configuration, nous param\u00e9trerons les champs suivants <strong>Nom ou adresse IP<\/strong> par la valeur du nom du serveur \u00e0 tester, et le champ <strong>Port<\/strong> par la valeur du port du serveur (ici 8080) :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Configuration item HTTP Request Defaults\" alt=\"Configuration item HTTP Request Defaults\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/07-jmeter-param-http-par-defaut.png\" width=\"549\" height=\"153\" border=\"1\" \/><\/p>\n<p><strong><span style=\"color: #ff0000;\">ATTENTION :<\/span><\/strong> si vous utilisez un Tomcat sur la m\u00eame machine que votre JMeter, il y aura certainement un conflit sur le port 8080 (car Tomcat, par d\u00e9faut utilise le 8080 et l&rsquo;\u00e9l\u00e9ment <strong>Enregistreur script de test HTTP(S)<\/strong> de JMeter utilise \u00e9galement le port 8080). Il convient donc de mettre des ports diff\u00e9rents. Par exemple mettre 8081 dans le champ <strong>Port<\/strong> sur l&rsquo;\u00e9l\u00e9ment <strong>Enregistreur script de test HTTP(S)<\/strong> de JMeter (et dans le configuration du navigateur au niveau du proxy, cf. plus bas).<\/p>\n<p>L&rsquo;\u00e9l\u00e9ment <strong>Gestionnaire de cookies HTTP <\/strong>va nous permettre de faire du suivi de cookie (en particulier le suivi de session). C&rsquo;est-\u00e0-dire que JMeter va se comporter comme un navigateur Internet au niveau des cookies, en envoyant la valeur du cookies quand les conditions sont remplies.<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Ajout de Config Element &gt; HTTP Cookie Manager\" alt=\"Ajout de Config Element &gt; HTTP Cookie Manager\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/08-jmeter-ajouter-cookies.png\" width=\"752\" height=\"264\" border=\"1\" \/><br \/>\n<\/span><\/p>\n<p>On va cocher l&rsquo;option <em>Nettoyer les cookies \u00e0 chaque it\u00e9ration ?<\/em> afin d&rsquo;avoir un effacement des cookies (et autre identifiant de session) \u00e0 chaque it\u00e9ration lors du test de charges.<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Configuration de l'item HTTP Cookie Manager\" alt=\"Configuration de l'item HTTP Cookie Manager\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/09-jmeter-nettoyer-cookies.png\" width=\"545\" height=\"142\" border=\"1\" \/><br \/>\n<\/span><\/p>\n<p>Au final, on a donc les \u00e9l\u00e9ments suivants :<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Sc\u00e9nario Jmeter pr\u00eat pour enregistrement\" alt=\"Sc\u00e9nario Jmeter pr\u00eat pour enregistrement\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/10-jmeter-plan-test-modele.png\" width=\"399\" height=\"161\" border=\"1\" \/><br \/>\n<\/span><\/p>\n<p>Avant de faire le d\u00e9marrage de l&rsquo;<strong>Enregistreur script de test HTTP(S)<\/strong> de JMeter, on ira cocher le param\u00e8tre <em><strong>Ajouter une Assertion R\u00e9ponse<\/strong><\/em> dans cet \u00e9l\u00e9ment.<strong><\/strong> Ce param\u00e8tre ajoutera pour chaque <strong>Requ\u00eate HTTP<\/strong> un sous-\u00e9l\u00e9ment assertion qui nous servira pour v\u00e9rifier la validit\u00e9 de la r\u00e9ponse re\u00e7ue lors du test de charges.<\/p>\n<p>On va ensuite exclure les images GIF de l&rsquo;enregistrement. Pour cela, dans la partie <em><strong>URL : motifs \u00e0 exclure,<\/strong><\/em> on va ajouter la valeur suivante \u00ab <span style=\"font-style: normal;\"><strong>.*\\.gif<\/strong><\/span> \u00bb qui est l&rsquo;expression r\u00e9guli\u00e8re pour les URL qui contiennent un nom de fichier GIF.<\/p>\n<p style=\"background: #c0c0c0 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;\"><em><strong>A noter :<\/strong> l&rsquo;exclusion des \u00e9l\u00e9ments associ\u00e9s \u00e0 une page, c&rsquo;est-\u00e0-dire les images, feuilles de style, etc. est un choix \u00e0 faire en fonction du type de test de charge voulu. Par exemple pour un test de charges dont l&rsquo;objectif est la validation de la tenue de performance du serveur d&rsquo;applications et des temps de r\u00e9ponse, il est pr\u00e9f\u00e9rable de ne pas inclure les images dans le sc\u00e9nario de tir. Par contre, si l&rsquo;objectif est la validation de la bande passante, les images et autres \u00e9l\u00e9ments sont \u00e0 inclure.<\/em><\/p>\n<p style=\"background: #c0c0c0 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;\"><strong>=&gt;<\/strong> Le bouton <strong>Ajouter exclusions propos\u00e9es<\/strong> permet d&rsquo;ajouter, en un clic, dans les motifs \u00e0 exclure les \u00e9l\u00e9ments g\u00e9n\u00e9ralement associ\u00e9s \u00e0 une pages tel que les images, feuilles de style, javascript, etc.<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Configuration du HTTP Proxy Server juste avant l'enregistrement\" alt=\"Configuration du HTTP Proxy Server juste avant l'enregistrement\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/11-jmeter-config-proxy.png\" width=\"699\" height=\"451\" border=\"1\" \/><br \/>\n<\/span><\/p>\n<p><span style=\"text-decoration: underline;\"><strong>D\u00e9marrage de l&rsquo;Enregisteur script de test HTTP(S) de JMeter<\/strong><\/span><\/p>\n<p>Par d\u00e9faut l&rsquo;<strong>Enregistreur script de test HTTP(S)<\/strong> n&rsquo;est pas lanc\u00e9, il faut donc le d\u00e9marrer pour qu&rsquo;il puisse r\u00e9pondre aux demandes (requ\u00eates) du navigateur qui seront faites pendant l&rsquo;enregistrement de la session de navigation. Pour cela, on se place sur l&rsquo;\u00e9l\u00e9ment <strong>Enregistreur script de test HTTP(S)<\/strong> et on clique sur le bouton <strong>Lancer<\/strong> situ\u00e9 en bas.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"D\u00e9marrage de Jmeter pour l'enregistrement\" alt=\"D\u00e9marrage de Jmeter pour l'enregistrement\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/12-jmeter-demarrage-proxy.png\" width=\"498\" height=\"213\" border=\"1\" \/><\/p>\n<p style=\"text-align: left;\"><strong>On notera<\/strong> que depuis la version 2.10 de JMeter, le premier lancement de l<strong>&lsquo;Enregistreur script de test HTTP(S)<\/strong> effectue la cr\u00e9ation d&rsquo;une autorit\u00e9 de certification (AC) temporaire sur votre poste. Cette AC sera utilis\u00e9 pour signer les \u00ab\u00a0faux\u00a0\u00bb certificats SSL produits par JMeter lors de vos sessions de navigations sur des sites en HTTPS. La fen\u00eatre ci-dessous apparait pour indiquer la bonne ex\u00e9cution de la cr\u00e9ation et vous invite \u00e0 installer la cl\u00e9 publique de cette AC dans votre navigateur (afin de ne pas avoir de messages d&rsquo;avertissement de la part de votre navigateur lors des visites de sites HTTPS via JMeter). <em>Plus de d\u00e9tails <a href=\"http:\/\/jmeter.apache.org\/usermanual\/component_reference.html#HTTP%28S%29_Test_Script_Recorder\">ici<\/a> (section Installing the JMeter CA certificate for HTTPS recording ).<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" alt=\"Cr\u00e9ation AC JMeter\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/13-creation-cert-ssl-jmeter.png\" width=\"1243\" height=\"210\" \/><\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Configuration du navigateur<\/strong><\/span><\/p>\n<p>Il faut ensuite configurer le navigateur pour qu&rsquo;il utilise JMeter comme proxy HTTP\/HTTPS. Par exemple avec le navigateur <a href=\"http:\/\/www.seamonkey-project.org\/\">SeaMonkey<\/a>, menu <em><strong>Edition <\/strong>&gt; <strong>Pr\u00e9f\u00e9rences<\/strong><\/em><strong>.<\/strong><\/p>\n<p>On renseigne les champs suivants :<\/p>\n<ul>\n<li>Configuration manuelle du proxy choisi<\/li>\n<li>Proxy : localhost<em> (correspondant \u00e0 l&rsquo;adresse IP loopback 127.0.0.1) <\/em><\/li>\n<li>Port : 8080<em> (ce num\u00e9ro de port doit \u00eatre le m\u00eame que la valeur du champ <strong>Port<\/strong> dans l&rsquo;\u00e9l\u00e9ment<strong> Enregistreur script de test HTTP(S)<\/strong> de JMeter, si par exemple, vous avez mis 8081 car le Tomcat est aussi le poste JMeter, alors, il faut mettre 8081 sur la configuration proxy de votre navigateur)<\/em><\/li>\n<\/ul>\n<p style=\"margin-bottom: 0cm; text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Preferences de proxy SeaMonkey\" alt=\"Preferences de proxy SeaMonkey\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/14-jmeter-seamonkey.png\" width=\"720\" height=\"483\" border=\"1\" \/><\/p>\n<p>\u00c9galement on configurera le navigateur pour ne pas avoir de cache, ainsi on videra son cache de navigateur avant la session d&rsquo;enregistrement. Si on ne fait pas cela, on aura pour certains \u00e9l\u00e9ments des codes de retours HTTP 304 (i.e. D\u00e9j\u00e0 dans le cache du navigateur) lors de leur premier appel. Et donc le test de charges sera fauss\u00e9, car le robot ne r\u00e9cup\u00e9ra pas \u00ab r\u00e9ellement \u00bb les \u00e9l\u00e9ments.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Preferences de Cache SeaMonkey\" alt=\"Preferences de Cache SeaMonkey\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/15-jmeter-seamonkey-cache.png\" width=\"545\" height=\"393\" border=\"1\" \/><\/p>\n<p>Et hop, tout est maintenant pr\u00eat pour d\u00e9marrer sa navigation en suivant le sc\u00e9nario fonctionnel \u00e9tabli.<\/p>\n<p><strong>On prend donc son navigateur Internet (ici <a href=\"http:\/\/www.seamonkey-project.org\/\">SeaMonkey<\/a>) et on reproduit le sc\u00e9nario fonctionnel \u00e9tape par \u00e9tape<\/strong>, en \u00e9tant calme et concentr\u00e9, car tout ce l&rsquo;on fait est enregistr\u00e9 par JMeter.<\/p>\n<p>Pendant cette navigation, on remarquera dans la fen\u00eatre JMeter que de nouveaux \u00e9l\u00e9ments de type <strong>Requ\u00eate HTTP<\/strong> viennent s&rsquo;ajouter en sous-\u00e9l\u00e9ments du <strong>Contr\u00f4leur Enregistreur<\/strong>.<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Nouveaux items pendant l'enregistrement du sc\u00e9nario\" alt=\"Nouveaux items pendant l'enregistrement du sc\u00e9nario\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/18-jmeter-encours-capture.png\" width=\"639\" height=\"228\" border=\"1\" \/><br \/>\n<\/span><\/p>\n<p>Une fois sa session de navigation finie, on clique sur le bouton <strong>Arr\u00eater<\/strong> de l&rsquo;\u00e9l\u00e9ment<strong> Enregistreur script de test HTTP(S).<br \/>\n<\/strong><\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"Clic sur le bouton Stop du HTTP Proxy Server pour arr\u00eater la session d'enregistrement\" alt=\"Clic sur le bouton Stop du HTTP Proxy Server pour arr\u00eater la session d'enregistrement\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/17-jmeter-arret-proxy.png\" width=\"601\" height=\"213\" border=\"1\" \/><br \/>\n<\/span><\/p>\n<p>Et voil\u00e0 le r\u00e9sultat de l&rsquo;enregistrement au niveau de JMeter : 6 requ\u00eates HTTP dans le <strong>Contr\u00f4leur Enregistreur<\/strong>.<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"border: 1px solid black;\" title=\"R\u00e9sultat de l'enregistrement au niveau de Jmeter\" alt=\"R\u00e9sultat de l'enregistrement au niveau de Jmeter\" src=\"\/wp-content\/images\/jmeter01-img\/nouv\/page2\/19-jmeter-scenario.png\" width=\"586\" height=\"284\" border=\"1\" \/><br \/>\n<\/span><\/p>\n<p>Passons \u00e0 l&rsquo;\u00e9tape suivante, <a href=\"http:\/\/blog.milamberspace.net\/index.php\/jmeter-test-de-charges-dun-site-web-mode-demploi\/affinage-du-scenario-de-tests\">l&rsquo;affinage du sc\u00e9nario<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ecrire son sc\u00e9nario fonctionnel dans JMeter Avec JMeter, on peut bien s\u00fbr, d\u00e9finir son sc\u00e9nario de test manuellement pour chaque requ\u00eate HTTP avec le ou les param\u00e8tres associ\u00e9s&#8230; cela sera long et fatiguant. Surtout cela va donner lieu \u00e0 une phase de v\u00e9rification de son sc\u00e9nario \u00ab jmeteris\u00e9 \u00bb importante car il risque d&rsquo;y avoir &hellip; <a href=\"https:\/\/blog.milamberspace.net\/index.php\/jmeter-pages\/jmeter-test-de-charges-dun-site-web-mode-demploi\/jmeteriser-son-scenario-fonctionnel\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">\u00ab\u00a0Jmeteriser\u00a0\u00bb son sc\u00e9nario fonctionnel<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":34,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-33","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/33","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=33"}],"version-history":[{"count":18,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/33\/revisions"}],"predecessor-version":[{"id":1401,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/33\/revisions\/1401"}],"up":[{"embeddable":true,"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/pages\/34"}],"wp:attachment":[{"href":"https:\/\/blog.milamberspace.net\/index.php\/wp-json\/wp\/v2\/media?parent=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}