Analyse de la disponibilité et de la réactivité d'un site WebMonitor availability and responsiveness of any web site

Après avoir déployé votre application web ou votre site web sur un serveur, vous pouvez configurer des tests pour surveiller sa disponibilité et sa réactivité.After you've deployed your web app or web site to any server, you can set up tests to monitor its availability and responsiveness. Azure Application Insights envoie des requêtes web à votre application à intervalles réguliers à partir de différents points du monde,Azure Application Insights sends web requests to your application at regular intervals from points around the world. et vous alerte si votre application réagit lentement ou pas du tout.It alerts you if your application doesn't respond, or responds slowly.

Vous pouvez configurer des tests de disponibilité pour n’importe quel point de terminaison HTTP ou HTTPS accessible à partir du réseau Internet public.You can set up availability tests for any HTTP or HTTPS endpoint that is accessible from the public internet. Vous n’avez rien à ajouter au site web que vous testez.You don't have to add anything to the web site you're testing. Il ne faut pas nécessairement qu’il s’agisse de votre site : vous pouvez tester un service API REST dont vous dépendez.It doesn't even have to be your site: you could test a REST API service on which you depend.

Il existe deux types de tests de disponibilité :There are two types of availability tests:

Vous pouvez créer jusqu’à 100 tests de disponibilité par ressource d’application.You can create up to 100 availability tests per application resource.

Ouvrir une ressource pour vos rapports de test de disponibilitéOpen a resource for your availability test reports

Si vous avez déjà configuré Application Insights pour votre application web, ouvrez sa ressource Application Insights dans le portail Azure.If you have already configured Application Insights for your web app, open its Application Insights resource in the Azure portal.

Ou bien, si vous souhaitez visualiser vos rapports dans une nouvelle ressource, accédez au portail Azure, puis créez une ressource Application Insights.Or, if you want to see your reports in a new resource, go to the Azure portal, and create an Application Insights resource.

Créer une ressource > Outils de développement > Application Insights

Cliquez sur Toutes les ressources pour ouvrir le panneau Vue d’ensemble de la nouvelle ressource.Click All resources to open the Overview blade for the new resource.

Créer un test Ping d’URLCreate a URL ping test

Ouvrez le panneau de disponibilité et ajoutez un test.Open the Availability blade and add a test.

Fill at least the URL of your website

  • L’URL peut être n’importe quelle page web que vous souhaitez tester, mais elle doit être visible à partir de l’Internet public.The URL can be any web page you want to test, but it must be visible from the public internet. L’URL peut contenir une chaîne de requête.The URL can include a query string. Vous pouvez donc, par exemple, tester un peu votre base de données.So, for example, you can exercise your database a little. Si l’URL correspond à une redirection, nous allons la suivre, jusqu’à 10 redirections.If the URL resolves to a redirect, we follow it up to 10 redirects.

  • Analyser les demandes dépendantes : si cette option est activée, le test demande des images, des scripts, des fichiers de style et d’autres fichiers qui font partie de la page web de test.Parse dependent requests: If this option is checked, the test requests images, scripts, style files, and other files that are part of the web page under test. Le temps de réponse enregistré inclut le temps qui a été nécessaire pour obtenir ces fichiers.The recorded response time includes the time taken to get these files. Le test échoue si toutes ces ressources ne peuvent pas être téléchargées avec succès dans le délai imparti pour l’ensemble du test.The test fails if all these resources cannot be successfully downloaded within the timeout for the whole test. Si l’option n’est pas cochée, le test ne demande que le fichier à l’URL spécifiée.If the option is not checked, the test only requests the file at the URL you specified.

  • Permettre les nouvelles tentatives : si cette option est cochée, une nouvelle tentative de test est effectuée après un court intervalle en cas d’échec du test.Enable retries: If this option is checked, when the test fails, it is retried after a short interval. L’échec est signalé uniquement après trois tentatives infructueuses.A failure is reported only if three successive attempts fail. Les tests suivants sont ensuite effectués selon la fréquence de test habituelle.Subsequent tests are then performed at the usual test frequency. La nouvelle tentative est temporairement suspendue jusqu’à la réussite de la tentative suivante.Retry is temporarily suspended until the next success. Cette règle est appliquée indépendamment à chaque emplacement de test.This rule is applied independently at each test location. Nous recommandons cette option.We recommend this option. En moyenne, environ 80 % des échecs disparaissent lors de la nouvelle tentative.On average, about 80% of failures disappear on retry.

  • Fréquence de test : définit la fréquence selon laquelle le test est exécuté à partir de chaque emplacement de test.Test frequency: Sets how often the test is run from each test location. Avec, par défaut, une fréquence de cinq minutes et cinq emplacements de test, votre site sera testé en moyenne une fois par minute.With a default frequency of five minutes and five test locations, your site is tested on average every minute.

  • emplacements de test sont les lieux d’où nos serveurs envoient des requêtes web à votre URL.Test locations are the places from where our servers send web requests to your URL. Nous recommandons un nombre d’emplacements de test minimum de cinq afin de s’assurer que vous pouvez distinguer les problèmes dans votre site web de vos problèmes de réseau.Our minimum number of recommended test locations is five in order to insure that you can distinguish problems in your website from network issues. Vous pouvez sélectionner jusqu’à 16 emplacements.You can select up to 16 locations.

Notes

  • Nous vous recommandons vivement de tester à partir de plusieurs emplacements avec un minimum de cinq emplacements.We strongly recommend testing from multiple locations with a minimum of five locations. Cela vise à éviter les fausses alarmes qui peuvent provenir de problèmes temporaires rencontrés avec un emplacement spécifique.This is to prevent false alarms that may result from transient issues with a specific location. En outre, nous avons découvert que la configuration optimale consiste à disposer d’un nombre d’emplacements de test égal au seuil d’emplacement de l’alerte, + 2.In addition we have found that the optimal configuration is to have the number of test locations be equal to the alert location threshold + 2.
  • L’activation de l’option « Analyser les requêtes dépendantes » entraîne une vérification plus stricte.Enabling the "Parse dependent requests" option results in a stricter check. Le test peut échouer pour les cas difficiles à remarquer en parcourant le site manuellement.The test could fail for cases which may not be noticeable when manually browsing the site.
  • Critères de réussite:Success criteria:

    Délai d’expiration du test : diminuez cette valeur pour être averti des réponses lentes.Test timeout: Decrease this value to be alerted about slow responses. Le test est compté comme une erreur si des réponses de votre site n’ont pas été reçues pendant cette période.The test is counted as a failure if the responses from your site have not been received within this period. Si vous avez sélectionné Analyser les demandes dépendantes, l’ensemble des images, fichiers de style, scripts et autres ressources dépendantes ont dû être reçus pendant cette période.If you selected Parse dependent requests, then all the images, style files, scripts, and other dependent resources must have been received within this period.

    Réponse HTTP : le code d’état retourné est comptabilisé comme un succès.HTTP response: The returned status code that is counted as a success. 200 est le code qui indique qu’une page web normale a été retournée.200 is the code that indicates that a normal web page has been returned.

    Correspondance de contenu: une chaîne telle que « Bienvenue !Content match: a string, like "Welcome!" Nous vérifions qu’une correspondance exacte respectant la casse est présente dans chaque réponse.We test that an exact case-sensitive match occurs in every response. Il doit s'agir d'une chaîne standard sans caractère générique.It must be a plain string, without wildcards. N'oubliez pas que si votre contenu change, vous devrez peut-être l'actualiser.Don't forget that if your page content changes you might have to update it. Seuls les caractères anglais sont actuellement pris en charge avec correspondance de contenu.Only English characters are currently supported with content match.

  • Seuil d’emplacement de l’alerte : nous recommandons un minimum de 3 à 5 emplacements.Alert location threshold: We recommend a minimum of 3/5 locations. La relation optimale entre le seuil d’emplacement de l’alerte et le nombre d’emplacements de test est seuil d’emplacement de l’alerte = nombre d’emplacements de test - 2, avec un minimum de cinq emplacements de test.The optimal relationship between alert location threshold and the number of test locations is alert location threshold = number of test locations - 2, with a minimum of five test locations.

Tests web à plusieurs étapesMulti-step web tests

Vous pouvez analyser un scénario qui implique une séquence d'URL.You can monitor a scenario that involves a sequence of URLs. Par exemple, si vous analysez un site Web commercial, vous pouvez vérifier que l’ajout d’articles au panier d’achat fonctionne correctement.For example, if you are monitoring a sales website, you can test that adding items to the shopping cart works correctly.

Notes

Les tests web à plusieurs étapes ont un coût.There is a charge for multi-step web tests. Mécanisme de tarification.Pricing scheme.

Pour créer un test à plusieurs étapes, vous enregistrez le scénario à l’aide de Visual Studio Enterprise et téléchargez ensuite l’enregistrement dans Application Insights.To create a multi-step test, you record the scenario by using Visual Studio Enterprise, and then upload the recording to Application Insights. Application Insights relit le scénario à intervalles réguliers et vérifie les réponses.Application Insights replays the scenario at intervals and verifies the responses.

Notes

  • Vous ne pouvez pas utiliser de fonctions codées ni de boucles dans vos tests.You can't use coded functions or loops in your tests. Le test doit être entièrement contenu dans le script .webtest.The test must be contained completely in the .webtest script. Toutefois, vous pouvez utiliser des plug-ins standard.However, you can use standard plugins.
  • Seuls les caractères anglais sont pris en charge dans les tests web à plusieurs étapes.Only English characters are supported in the multi-step web tests. Si vous utilisez Visual Studio dans d’autres langages, veuillez mettre à jour le fichier de définition de test web pour traduire/exclure les caractères non anglais.If you use Visual Studio in other languages, please update the web test definition file to translate/exclude non-English characters.

1. Enregistrement d’un scénario1. Record a scenario

Utilisez Visual Studio Enterprise pour enregistrer une session web.Use Visual Studio Enterprise to record a web session.

  1. Créez un projet de test de performance web.Create a Web performance test project.

    Dans Visual Studio édition Enterprise, créez un projet à partir du modèle Projet de test de performance Web et de charge.

  • Le modèle Projet de test de performance Web et de charge ne s’affiche pas ?Don't see the Web Performance and Load Test template? - Fermez Visual Studio Enterprise.- Close Visual Studio Enterprise. Ouvrez le programme d’installation de Visual Studio pour modifier votre installation de Visual Studio Enterprise.Open Visual Studio Installer to modify your Visual Studio Enterprise installation. Sous Composants individuels, sélectionnez Web Performance and load testing tools (Outils de test de performance Web et de charge).Under Individual Components, select Web Performance and load testing tools.
  1. Ouvrez le fichier .webtest et lancez l'enregistrement.Open the .webtest file and start recording.

    Ouvrez le fichier .webtest et cliquez sur Enregistrer.

  2. Effectuez les actions utilisateur que vous voulez simuler lors de votre test : ouvrez votre site web, ajoutez un produit au panier d’achat etc.Do the user actions you want to simulate in your test: open your website, add a product to the cart, and so on. Ensuite, arrêtez le test.Then stop your test.

    L’enregistreur de test web s’exécute dans Internet Explorer.

    Ne créez pas de scénario long.Don't make a long scenario. La limite est de 100 étapes et 2 minutes.There's a limit of 100 steps and 2 minutes.

  3. Modifiez le test pour :Edit the test to:

    • ajouter des validations en vue de vérifier le texte reçu et les codes de réponse ;Add validations to check the received text and response codes.

    • supprimer les interactions superflues.Remove any superfluous interactions. Vous pouvez aussi supprimer les demandes dépendantes d’images ou celles à destination de sites AD ou de suivi.You could also remove dependent requests for pictures or to ad or tracking sites.

      Ne perdez pas de vue que vous pouvez modifier uniquement le script de test. Vous ne pouvez pas ajouter de code personnalisé ni appeler d’autres tests web.Remember that you can only edit the test script - you can't add custom code or call other web tests. N’insérez pas de boucles dans le test.Don't insert loops in the test. Vous pouvez utiliser des plug-ins de test web standard.You can use standard web test plug-ins.

  4. Exécutez le test dans Visual Studio pour vérifier qu'il fonctionne.Run the test in Visual Studio to make sure it works.

    Le test runner web ouvre un navigateur web et répète les actions enregistrées.The web test runner opens a web browser and repeats the actions you recorded. Assurez-vous qu’il fonctionne comme prévu.Make sure it works as you expect.

    Dans Visual Studio, ouvrez le fichier .webtest et cliquez sur Exécuter.

2. Chargement du test web dans Application Insights2. Upload the web test to Application Insights

  1. Dans le portail Application Insights sur le panneau Disponibilité, cliquez pour ajouter un test.In the Application Insights portal on the Availability blade click add test.

    Dans le panneau Disponibilité, choisissez Ajouter un test.

  2. Sélectionnez le test à plusieurs étapes et téléchargez le fichier .webtest.Select multi-step test, and upload the .webtest file.

    Définissez les emplacements de test, la fréquence et les paramètres d’alerte comme pour les tests ping.Set the test locations, frequency, and alert parameters in the same way as for ping tests.

Ajout de plug-ins de temps et de nombres aléatoires à votre test à plusieurs étapesPlugging time and random numbers into your multi-step test

Supposons que vous testiez un outil qui obtient des données temporelles, telles que des actions à partir d’un flux externe.Suppose you're testing a tool that gets time-dependent data such as stocks from an external feed. Lorsque vous enregistrez votre test web, vous devez utiliser des heures spécifiques, mais vous les définissez en tant que paramètres de test, à savoir StartTime et EndTime.When you record your web test, you have to use specific times, but you set them as parameters of the test, StartTime and EndTime.

Un test web avec des paramètres.

Lorsque vous exécutez le test, vous souhaitez que le paramètre EndTime corresponde systématiquement à l’heure actuelle et le paramètre StartTime à l’heure d’il y a 15 minutes.When you run the test, you'd like EndTime always to be the present time, and StartTime should be 15 minutes ago.

Les plug-ins de test web vous permettent de paramétrer les heures.Web Test Plug-ins provide the way to do parameterize times.

  1. Ajoutez un plug-in de test web pour chaque valeur de paramètre variable souhaitée.Add a web test plug-in for each variable parameter value you want. Dans la barre d’outils de test web, sélectionnez Ajouter un plug-in de test web.In the web test toolbar, choose Add Web Test Plugin.

    Choisissez Ajouter un plug-in de test web et sélectionnez un type.

    Dans cet exemple, nous allons utiliser deux instances du plug-in Date Time.In this example, we use two instances of the Date Time Plug-in. Une instance est pour « il y a 15 minutes » et l’autre pour « maintenant ».One instance is for "15 minutes ago" and another for "now."

  2. Ouvrez les propriétés de chaque plug-in.Open the properties of each plug-in. Donnez-lui un nom et configurez-le de manière à utiliser l’heure actuelle.Give it a name and set it to use the current time. Pour l'un d'eux, définissez Ajouter des minutes = -15.For one of them, set Add Minutes = -15.

    Définissez le nom, utilisez l’heure actuelle et ajouter des minutes.

  3. Dans les paramètres de test web, utilisez {{nom du plug-in}} pour référencer un nom de plug-in.In the web test parameters, use {{plug-in name}} to reference a plug-in name.

    Dans le paramètre de test, utilisez {{nom du plug-in}}.

Maintenant, téléchargez votre test sur le portail.Now, upload your test to the portal. Il utilise les valeurs dynamiques à chaque exécution du test.It uses the dynamic values on every run of the test.

Consulter les résultats des tests de disponibilitéSee your availability test results

L’onglet de vue d’ensemble affiche le taux de réussite des tests alors que l’onglet Détails affiche un nuage de points et une grille de détails spécifiques.The overview tab shows the success rate of the tests while the details tab shows scatter plot and grid of specific details.

Au bout de quelques minutes, cliquez sur Actualiser pour afficher les résultats de test.After a few minutes, click Refresh to see test results.

Nuage de points sur le panneau de détails

Le nuage de points montre des exemples de résultats de test contenant des détails de l’étape de test de diagnostic.The scatterplot shows samples of the test results that have diagnostic test-step detail in them. Le moteur de test stocke les détails de diagnostic pour les tests qui présentent des erreurs.The test engine stores diagnostic detail for tests that have failures. Pour les tests réussis, les détails de diagnostic sont stockés pour un sous-ensemble des exécutions.For successful tests, diagnostic details are stored for a subset of the executions. Pointez sur les points verts/rouges pour voir l’horodatage, la durée, l’emplacement et le nom du test.Hover over any of the green/red dots to see the test timestamp, test duration, location, and test name. Cliquez sur n’importe quel point dans le nuage de points pour afficher les détails du résultat de test.Click through any dot in the scatter plot to see the details of the test result.

Sélectionnez un test ou emplacement spécifique, ou réduisez la période de temps pour voir plus de résultats autour de la période d’intérêt.Select a particular test, location, or reduce the time period to see more results around the time period of interest. Utilisez l’Explorateur de recherche pour voir les résultats de toutes les exécutions, ou utilisez les requêtes Analytics pour exécuter des rapports personnalisés sur ces données.Use Search Explorer to see results from all executions, or use Analytics queries to run custom reports on this data.

Outre les résultats bruts, il existe deux mesures de disponibilité dans Metrics Explorer :In addition to the raw results, there are two Availability metrics in Metrics Explorer:

  1. Disponibilité : pourcentage des tests qui ont réussi, sur l’ensemble des exécutions de test.Availability: Percentage of the tests that were successful, across all test executions.
  2. Durée du test : durée moyenne du test sur toutes les exécutions de test.Test Duration: Average test duration across all test executions.

Vous pouvez appliquer des filtres sur le nom du test et sur l’emplacement pour analyser les tendances d’un test et/ou d’un emplacement en particulier.You can apply filters on the test name, location to analyze trends of a particular test and/or location.

Examiner et modifier des testsInspect and edit tests

Sous l’onglet Détails, sur un test spécifique, sélectionnez les points de suspension tout à fait à droite pour modifier, désactiver temporairement, supprimer ou télécharger le test web.From the details tab, on a specific test select the ellipsis on the far right to edit, temporarily disable, delete or download web test. Il peut prendre jusqu'à 20 minutes pour propager des modifications de configuration.It may take up to 20 minutes for configuration changes to propagate.

Sélectionnez Voir les détails du test d’un test spécifique pour afficher son nuage de points et les détails de l’emplacement de test.Select View test details from a specific test to see its scatter plot and specific test location details.

Afficher les détails d'un test, modifier et désactiver un test web

Vous souhaiterez peut-être désactiver les tests de disponibilité ou les règles d’alerte associées lorsque vous effectuez la maintenance de votre service.You might want to disable availability tests or the alert rules associated with them while you are performing maintenance on your service.

Désactivation d’un test web
Modifier le test

Si vous constatez des erreursIf you see failures

Cliquez sur un point rouge.Click a red dot.

Click a red dot

À partir d’un résultat de test de disponibilité, vous pouvez voir les détails de la transaction pour tous les composants.From an availability test result, you can see the transaction details across all components. Ici, vous pouvez :Here you can:

  • Vérifier la réponse reçue à partir de votre serveur.Inspect the response received from your server.
  • Diagnostiquer la défaillance à l'aide des données de télémétrie côté serveur corrélées qui ont été collectées pendant le traitement du test de disponibilité en échec.Diagnose failure with correlated server-side telemetry collected while processing the failed availability test.
  • Enregistrer un problème ou un élément de travail dans Git ou Azure Boards pour suivre le problème.Log an issue or work item in Git or Azure Boards to track the problem. Le bogue contient un lien vers cet événement.The bug will contain a link to this event.
  • Ouvrir le résultat du test web dans Visual Studio.Open the web test result in Visual Studio.

Vous pouvez en découvrir plus sur l’expérience de diagnostic des transactions de bout en bout ici.Learn more about the end to end transaction diagnostics experience here.

Cliquez sur la ligne d'une exception pour afficher les détails de l'exception côté serveur qui a provoqué l'échec du test de disponibilité synthétique.Click on the exception row to see the details of the server-side exception that caused the synthetic availability test to fail. Vous pouvez également obtenir la capture instantanée de débogage pour des diagnostics de niveau code plus riches.You can also get the debug snapshot for richer code level diagnostics.

Diagnostics côté serveur

Alertes de disponibilitéAvailability Alerts

Vous pouvez obtenir les types de règles d’alerte suivants sur les données de disponibilité à l’aide de l’expérience d’alertes classiques :You can have the following types of alert rules on Availability data using the classic alerts experience:

  1. Emplacements de X en dehors de Y signalant des échecs pendant une certaine périodeX out of Y locations reporting failures in a time period
  2. Le pourcentage de disponibilité des agrégats descend sous un certain seuilAggregate availability percentage drops under a threshold
  3. La durée moyenne des tests augmente au-dessus d’un certain seuilAverage test duration increases beyond a threshold

L’alerte sur les emplacements de X en dehors de Y signalant des échecsAlert on X out of Y locations reporting failures

La règle d’alerte pour les emplacements de X en dehors de Y est activée par défaut dans l’expérience des nouvelles alertes unifiées lorsque vous créez un nouveau test de disponibilité.The X out of Y locations alert rule is enabled by default in the new unified alerts experience, when you create a new availability test. Vous pouvez décliner en sélectionnant l'option « classique » ou en choisissant de désactiver la règle d'alerte.You can opt out by selecting the "classic" option or choosing to disable the alert rule.

Créer l’expérience

Notes

Avec les nouvelles alertes unifiées, le niveau de gravité et les préférences de notification des règles d’alerte des groupes d’actions doivent être configurés dans l’expérience d’alertes.With the new unified alerts, the alert rule severity and notification preferences with action groups must be configured in the alerts experience. Sans les étapes suivantes, vous recevrez les notifications dans le portail uniquement.Without the following steps, you will only receive in-portal notifications.

  1. Après avoir enregistré le test de disponibilité, sous l’onglet des détails, cliquez sur les points de suspension à côté du test que vous venez de faire.After saving the availability test, on the details tab click on the ellipsis by the test you just made. Cliquez sur « Modifier l’alerte ».Click on "edit alert". Modifier après l’enregistrementEdit after save

  2. Définissez le niveau de gravité et la description des règles souhaités, et surtout, le groupe d’actions disposant des préférences de notification que vous souhaitez utiliser pour cette règle d’alerte.Set the desired severity level, rule description and most importantly - the action group that has the notification preferences you would like to use for this alert rule. Modifier après l’enregistrementEdit after save

Notes

  • Configurez les groupes d’actions pour recevoir des notifications lorsque l’alerte se déclenche en suivant les étapes ci-dessus.Configure the action groups to receive notifications when the alert triggers by following the steps above. Sans cette étape, vous recevrez les notifications dans le portail uniquement lorsque la règle se déclenche.Without this step, you will only receive in-portal notifications when the rule triggers.

Créer une alerte sur les mesures de disponibilitéAlert on availability metrics

À l’aide des nouvelles alertes unifiées, vous pouvez créer une alerte sur les mesures de disponibilité des agrégats segmentés et sur la durée des tests :Using the new unified alerts, you can alert on segmented aggregate availability and test duration metrics as well:

  1. Sélectionnez une ressource Application Insights dans l’expérience Mesures, puis sélectionnez une mesure de disponibilité : Sélection des mesures de disponibilitéSelect an Application Insights resource in the Metrics experience, and select an Availability metric: Availability metrics selection

  2. L’option Configurer les alertes dans le menu vous redirigera vers la nouvelle expérience où vous pouvez sélectionner des tests ou des emplacements spécifiques sur lesquels il est possible de configurer une règle d’alerte.Configure alerts option from the menu will take you to the new experience where you can select specific tests or locations to set up alert rule on. Ici, vous pouvez également configurer les groupes d’actions pour cette règle d’alerte.You can also configure the action groups for this alert rule here. Configuration des alertes de disponibilitéAvailability alerts configuration

Créer des alertes sur les requêtes d’analytique personnaliséesAlert on custom analytics queries

À l’aide des nouvelles alertes unifiées, vous pouvez créer des alertes sur les requêtes dans les journaux personnalisées.Using the new unified alerts, you can alert on custom log queries. Avec des requêtes personnalisées, vous pouvez créer des alertes sur une condition arbitraire qui peut vous aider à obtenir le signal le plus fiable pour des problèmes de disponibilité.With custom queries, you can alert on any arbitrary condition that helps you get the most reliable signal of availability issues. C’est également très pertinent si vous envoyez les résultats de disponibilité personnalisés à l’aide du Kit de développement logiciel (SDK) TrackAvailability.This is also particularly applicable, if you are sending custom availability results using the TrackAvailability SDK.

Conseil

  • Les mesures sur les données de disponibilité incluent tous les résultats de disponibilité personnalisés que vous pouvez soumettre en appelant notre Kit de développement logiciel (SDK) TrackAvailability.The metrics on availability data include any custom availability results you may be submitting by calling our TrackAvailability SDK. Vous pouvez utiliser la prise en charge de la création d’alertes sur les mesures pour créer des alertes sur les résultats de disponibilité personnalisés.You can use the alerting on metrics support to alert on custom availability results.

Gestion de la connexionDealing with sign-in

Si vos utilisateurs se connectent à votre application, vous disposez de différentes options pour simuler la connexion et tester les pages suivant la connexion.If your users sign in to your app, you have various options for simulating sign-in so that you can test pages behind the sign-in. L’approche que vous utilisez dépend du type de sécurité fourni par l’application.The approach you use depends on the type of security provided by the app.

Dans tous les cas, vous devez créer un compte dans votre application uniquement à des fins de test.In all cases, you should create an account in your application just for the purpose of testing. Si possible, limitez les autorisations de ce compte de test afin que les tests web n’affectent aucunement les utilisateurs réels.If possible, restrict the permissions of this test account so that there's no possibility of the web tests affecting real users.

Nom d’utilisateur et mot de passe simplesSimple username and password

Enregistrez un test web de la façon habituelle.Record a web test in the usual way. Supprimez d’abord les cookiesDelete cookies first.

Authentication SAMLSAML authentication

Utilisez le plug-in SAML qui est disponible pour les tests web.Use the SAML plugin that is available for web tests.

Clé secrète clientClient secret

Si votre application présente un mode de connexion impliquant une clé secrète client, utilisez ce mode.If your app has a sign-in route that involves a client secret, use that route. Azure Active Directory (AAD) est un exemple de service fournissant une connexion avec clé secrète client.Azure Active Directory (AAD) is an example of a service that provides a client secret sign-in. Dans AAD, la clé secrète client est la clé d’application.In AAD, the client secret is the App Key.

Voici un exemple de test web d’une application web Azure à l’aide d’une clé d’application :Here's a sample web test of an Azure web app using an app key:

Exemple de clé secrète client

  1. Récupérez le jeton d’ADD à l’aide de la clé secrète client (clé d’application).Get token from AAD using client secret (AppKey).
  2. Extrayez le jeton porteur de la réponse.Extract bearer token from response.
  3. Appelez l’API à l’aide du jeton porteur de l’en-tête d’autorisation.Call API using bearer token in the authorization header.

Assurez-vous que le test web est un client réel, qu’il possède sa propre application dans AAD, puis utilisé son ID client et sa clé d’application.Make sure that the web test is an actual client - that is, it has its own app in AAD - and use its clientId + appkey. Votre service soumis à un test possède également sa propre application dans AAD : l’URI ID d’application se retrouve dans le champ dédié aux ressources du test web.Your service under test also has its own app in AAD: the appID URI of this app is reflected in the web test in the resource field.

Authentification ouverteOpen Authentication

Comme exemple d’authentification ouverte, citons la connexion avec votre compte Microsoft ou Google.An example of open authentication is signing in with your Microsoft or Google account. De nombreuses applications utilisant OAuth fournissent l’alternative de la clé secrète client ; commencez donc par rechercher cet élément.Many apps that use OAuth provide the client secret alternative, so your first tactic should be to investigate that possibility.

Si votre test doit se connecter à l’aide d’OAuth, l’approche générale est la suivante :If your test must sign in using OAuth, the general approach is:

  • Utilisez un outil tel que Fiddler pour examiner le trafic entre votre navigateur web, le site d’authentification et votre application.Use a tool such as Fiddler to examine the traffic between your web browser, the authentication site, and your app.
  • Effectuez deux connexions ou plus à l’aide d’ordinateurs ou de navigateurs différents, ou à des intervalles longs (pour que les jetons arrivent à expiration).Perform two or more sign-ins using different machines or browsers, or at long intervals (to allow tokens to expire).
  • En comparant les différentes sessions, identifiez le jeton retransmis à partir du site d’authentification, qui est ensuite transmis à votre serveur d’application après la connexion.By comparing different sessions, identify the token passed back from the authenticating site, that is then passed to your app server after sign-in.
  • Enregistrez un test web à l’aide de Visual Studio.Record a web test using Visual Studio.
  • Paramétrez les jetons, en définissant le paramètre lorsque le jeton est retourné par l’authentificateur et en l’utilisant dans la requête soumise sur le site.Parameterize the tokens, setting the parameter when the token is returned from the authenticator, and using it in the query to the site. (Visual Studio tente de paramétrer le test, mais ne paramètre pas correctement les jetons.)(Visual Studio attempts to parameterize the test, but does not correctly parameterize the tokens.)

Tests de performancePerformance tests

Notes

La service de test de charge basé sur le cloud est déconseillée.The cloud-based load testing service is deprecated. Vous pouvez trouver plus d’informations sur la dépréciation, la disponibilité du service et autres services ici.More information about the deprecation, the service availability, and alternative services can be found here.

Vous pouvez effectuer un test de charge sur votre site web.You can run a load test on your website. Comme pour le test de disponibilité, vous pouvez envoyer des requêtes uniques ou des requêtes à plusieurs étapes à partir de nos points de présence dans le monde.Like the availability test, you can send either simple requests or multi-step requests from our points around the world. Contrairement à un test de disponibilité, de nombreuses demandes sont envoyées, afin de simuler la présence de plusieurs utilisateurs simultanés.Unlike an availability test, many requests are sent, simulating multiple simultaneous users.

Sous Configurer, accédez à Tests de performances, puis cliquez sur Nouveau pour créer un test.Under Configure, go to Performance Testing and click new to create a test.

Création d’un test de performances

Une fois le test terminé, les temps de réponse et les taux de réussite s’affichent.When the test is complete, you are shown response times and success rates.

Résultats de test de performances

Conseil

Pour observer les effets d’un test de performances, utilisez Flux temps réel et Profileur.To observe the effects of a performance test, use Live Stream and Profiler.

AutomatisationAutomation

FAQFAQ

  • Le site me semble OK, mais j’observe des échecs de tests. Pourquoi Application Insights m’envoie-t-il des alertes ?Site looks okay but I see test failures? Why is Application Insights alerting me?

    • Est-ce que l’option « Analyser les requêtes dépendantes » est activée pour le test ?Does your test have "Parse dependent requests" enabled? Cela entraîne une vérification stricte des ressources telles que les scripts, les images, etc. Ces types de d’échecs peuvent être difficiles à remarquer sur un navigateur.That results in a strict check on resources such as scripts, images etc. These types of failures may not be noticeable on a browser. Vérifiez toutes les images, les scripts, les feuilles de style et tout autre fichier chargé par la page.Check all the images, scripts, style sheets, and any other files loaded by the page. Si l’un d’eux échoue, le test signale une erreur, même si la page html principale se charge correctement.If any of them fails, the test is reported as failed, even if the main html page loads OK. Pour désensibiliser le test à ces échecs de ressource, il vous suffit de décocher la case « Analyser les requêtes dépendantes » dans la configuration du test.To desensitize the test to such resource failures, simply uncheck the "Parse Dependent Requests" from the test configuration.

    • Pour réduire la probabilité de bruit des spots réseau temporaires, etc., vérifiez que la case à cocher de configuration « Permettre les nouvelles tentatives pour les échecs des tests web » est activée.To reduce odds of noise from transient network blips etc., ensure "Enable retries for test failures" configuration is checked. Vous pouvez également procéder aux tests à partir de plusieurs emplacements et gérer le seuil de règle d'alerte en conséquence afin d'éviter que des problèmes spécifiques à un emplacement ne provoquent des alertes injustifiées.You can also test from more locations and manage alert rule threshold accordingly to prevent location-specific issues causing undue alerts.

    • Cliquez sur un des points rouges à partir de l’expérience de disponibilité, ou sur tout échec de disponibilité à partir du navigateur de recherche pour afficher les détails de la raison pour laquelle nous avons signalé l’échec.Click on any of the red dots from the Availability experience, or any availability failure from the Search explorer to see the details of why we reported the failure. Le résultat du test, ainsi que les données de télémétrie côté serveur corrélées (si activées), doivent aider à comprendre pourquoi le test a échoué.The test result, along with the correlated server-side telemetry (if enabled) should help understand why the test failed. Les causes courantes des problèmes temporaires proviennent du réseau ou de la connexion.Common causes of transient issues are network or connection issues.

    • Est-ce que le délai d’attente du test est arrivé à expiration ?Did the test time-out? Nous abandonnons les tests après 2 minutes.We abort tests after 2 minutes. Si votre test Ping ou multiétape prend plus de 2 minutes, nous le signalerons comme un échec.If your ping or multi-step test takes longer than 2 minutes, we will report it as a failure. Pensez à diviser le test en plusieurs parties qui peuvent être effectuées dans des délais plus courts.Consider breaking the test into multiple ones that can complete in shorter durations.

    • Est-ce qu’un échec est signalé pour tous vos emplacements, ou seulement certains d’entre eux ?Did all locations report failure, or only some of them? Si des échecs ne sont signalés que pour certains, cela peut être dû à des problèmes de réseau/CDN.If only some reported failures, it may be due to network/CDN issues. Là encore, cliquer sur les points rouges peut aider à comprendre pourquoi l’emplacement a signalé des échecs.Again, clicking on the red dots should help understand why the location reported failures.

  • Je n’ai pas reçu d’e-mail lorsque l’alerte s’est déclenchée, a été résolue, ou les deux ?I did not get an email when the alert triggered, or resolved or both?

    Vérifiez la configuration des alertes classiques pour confirmer que votre adresse e-mail est répertoriée directement, ou que vous êtes sur une liste de distribution qui est configurée pour recevoir des notifications.Check the classic alerts configuration to confirm your email is directly listed, or a distribution list you are on is configured to receive notifications. Le cas échéant, vérifiez ensuite la configuration de la liste de distribution pour confirmer qu’elle peut recevoir des e-mails externes.If it is, then check the distribution list configuration to confirm it can receive external emails. Vérifiez également si votre administrateur de messagerie dispose de stratégies configurées qui pourraient provoquer ce problème.Also check if your mail administrator may have any policies configured that may cause this issue.

  • Je n’ai pas reçu la notification webhook ?I did not receive the webhook notification?

    Vérifiez que l’application qui reçoit la notification webhook est disponible et traite correctement les requêtes webhook.Check to ensure the application receiving the webhook notification is available, and successfully processes the webhook requests. Pour plus d’informations, consultez ceci.See this for more information.

  • Échecs intermittents des tests avec une erreur de violation de protocole.Intermittent test failure with a protocol violation error?

    L’erreur (« violation de protocole... CR doit être suivi par LF ») indique un problème lié au serveur (ou aux dépendances).The error ("protocol violation..CR must be followed by LF") indicates an issue with the server (or dependencies). Il se produit lorsque des en-têtes mal formés sont définis dans la réponse.This happens when malformed headers are set in the response. Ce problème peut être provoqué par des équilibreurs de charge ou des réseaux de distribution de contenu (CDN).It can be caused by load balancers or CDNs. Plus précisément, certains en-têtes peuvent ne pas utiliser CRLF pour indiquer la fin de ligne, ce qui enfreint la spécification HTTP et entraîne donc l’échec de la validation au niveau WebRequest .NET.Specifically, some headers might not be using CRLF to indicate end-of-line, which violates the HTTP specification and therefore fail validation at the .NET WebRequest level. Examinez la réponse pour repérer les en-têtes qui peuvent ne pas être conformes.Inspect the response to spot headers which might be in violation.

    Remarque : L’URL peut ne pas être en échec sur les navigateurs qui présentent une validation approximative des en-têtes HTTP.Note: The URL may not fail on browsers that have a relaxed validation of HTTP headers. Consultez ce billet de blog pour obtenir une explication détaillée de ce problème : http://mehdi.me/a-tale-of-debugging-the-linkedin-api-net-and-http-protocol-violations/See this blog post for a detailed explanation of this issue: http://mehdi.me/a-tale-of-debugging-the-linkedin-api-net-and-http-protocol-violations/

  • Je ne vois pas les données de télémétrie côté serveur associées pour diagnostiquer les échecs des tests.I don't see any related server side telemetry to diagnose test failures?

    Si Application Insights est défini pour votre application côté serveur, cela peut être en raison d’un échantillonnage en cours.If you have Application Insights set up for your server-side application, that may be because sampling is in operation. Sélectionnez un résultat de disponibilité différent.Select a different availability result.

  • Puis-je appeler du code à partir de mon test web ?Can I call code from my web test?

    Non.No. Les étapes du test doivent se trouver dans le fichier .webtest.The steps of the test must be in the .webtest file. Et vous ne pouvez pas appeler d’autres tests web ou utiliser des boucles.And you can't call other web tests or use loops. En revanche, il existe un certain nombre de plug-ins qui peuvent s’avérer utiles.But there are several plug-ins that you might find helpful.

  • Le protocole HTTPS est-il pris en charge ?Is HTTPS supported?

    Nous prenons en charge TLS 1.1 et TLS 1.2.We support TLS 1.1 and TLS 1.2. Actuellement, nous ne vérifient pas les erreurs de certificat HTTPS.We currently do not check for HTTPS certificate errors.

  • Quelle est la différence entre les « tests Web » et les « tests de disponibilité » ?Is there a difference between "web tests" and "availability tests"?

    Les deux conditions peuvent être référencées indifféremment.The two terms may be referenced interchangeably. « Tests de disponibilité » est un terme plus générique qui inclut les tests ping d’URL uniques en plus des tests web à plusieurs étapes.Availability tests is a more generic term that includes the single URL ping tests in addition to the multi-step web tests.

  • J’aimerais utiliser les tests de disponibilité sur notre serveur interne qui s’exécute derrière un pare-feu.I'd like to use availability tests on our internal server that runs behind a firewall.

    Il existe deux solutions possibles :There are two possible solutions:

    • Configurez votre pare-feu pour autoriser les demandes entrantes provenant des adresses IP de nos agents de test web.Configure your firewall to permit incoming requests from the IP addresses of our web test agents.
    • Écrivez votre propre code pour tester régulièrement votre serveur interne.Write your own code to periodically test your internal server. Exécutez le code en tant que processus en arrière-plan sur un serveur test derrière votre pare-feu.Run the code as a background process on a test server behind your firewall. Le processus de test peut envoyer ses résultats à Application Insights à l’aide de l’API TrackAvailability() dans le package du kit de développement logiciel (SDK) principal.Your test process can send its results to Application Insights by using TrackAvailability() API in the core SDK package. Cela nécessite que votre serveur de test ait un accès sortant au point de terminaison d’ingestion Application Insights, mais ce risque de sécurité est beaucoup plus faible que l’alternative, qui consiste à autoriser les demandes entrantes.This requires your test server to have outgoing access to the Application Insights ingestion endpoint, but that is a much smaller security risk than the alternative of permitting incoming requests. Les résultats n’apparaissent pas dans les panneaux de tests web de disponibilité, mais ils s’affichent comme résultats de disponibilité dans Analytics, Search et Metric Explorer.The results will not appear in the availability web tests blades, but appears as availability results in Analytics, Search, and Metric Explorer.
  • Le chargement d’un test web multi-étapes échoueUploading a multi-step web test fails

    Certaines raisons à cause desquelles cela peut se produire :Some reasons this might happen:

    • La limite de taille est de 300 Ko.There's a size limit of 300 K.
    • Les boucles ne sont pas prises en charge.Loops aren't supported.
    • Les références à d’autres tests web ne sont pas prises en charge.References to other web tests aren't supported.
    • Les sources de données ne sont pas prises en charge.Data sources aren't supported.
  • Mon test à plusieurs étapes ne se termine pas.My multi-step test doesn't complete

    Chaque test possède une limite de 100 demandes.There's a limit of 100 requests per test. En outre, le test s’arrête s’il s’exécute pendant plus de deux minutes.Also, the test is stopped if it runs longer than two minutes.

  • Comment puis-je exécuter un test avec des certificats clients ?How can I run a test with client certificates?

    Désolé, ce n’est pas pris en charge.We don't support that, sorry.

Qui reçoit les notifications d'alerte (classiques) ?Who receives the (classic) alert notifications?

Cette section ne s'applique qu'aux alertes classiques et vous aidera à optimiser vos notifications d'alerte afin que seuls les destinataires de votre choix les reçoivent.This section only applies to classic alerts and will help you optimize your alert notifications to ensure that only your desired recipients receive notifications. Pour mieux comprendre la différence entre les alertes classiques et la nouvelle expérience d'alerte, reportez-vous à l'article de présentation des alertes.To understand more about the difference between classic alertsand the new alerts experience refer to the alerts overview article. Pour contrôler la notification des alertes dans la nouvelle expérience d'alerte, utilisez des groupes d'actions.To control alert notification in the new alerts experience use action groups.

  • Nous recommandons l'utilisation de destinataires spécifiques pour les notifications d'alertes classiques.We recommend the use of specific recipients for classic alert notifications.

  • Pour les alertes relatives aux échecs de X sur Y emplacements, l'option En bloc/groupe, si elle est activée, envoie une notification aux utilisateurs dotés du rôle d'administrateur/co-administrateur.For alerts on failures from X out of Y locations, the bulk/group check-box option, if enabled, sends to users with admin/co-admin roles. Grosso modo, tous les administrateurs de l'abonnement recevront des notifications.Essentially all administrators of the subscription will receive notifications.

  • Pour les alertes relatives aux métriques de disponibilité (ou autres métriques d'Application Insights), l'option En bloc/groupe, si elle est activée, envoie une notification aux utilisateurs dotés du rôle de propriétaire, de contributeur ou de lecteur au sein de l'abonnement.For alerts on availability metrics, (or any Application Insights metrics for that matter) the bulk/group check-box option if enabled, sends to users with owner, contributor, or reader roles in the subscription. Dans les faits, tous les utilisateurs ayant accès à la ressource Application Insights sont concernés et recevront des notifications.In effect, all users with access to the subscription the Application Insights resource are in scope and will receive notifications.

Notes

Si vous utilisez actuellement l'option En bloc/groupe et que vous la désactivez, vous ne pourrez pas annuler la modification.If you currently use the bulk/group check-box option, and disable it, you will not be able to revert the change.

Utilisez la nouvelle expérience d'alerte ou les alertes en temps quasi-réel si vous devez notifier les utilisateurs en fonction de leur rôle.Use the new alert experience/near-realtime alerts if you need to notify users based on their roles. Avec les groupes d'actions, vous pouvez configurer des notifications par e-mail à l'intention des utilisateurs dotés du rôle de contributeur, de propriétaire ou de lecteur (rôles non combinés en une même option).With action groups, you can configure email notifications to users with any of the contributor/owner/reader roles (not combined together as a single option).

Étapes suivantesNext steps

Recherche des journaux de diagnosticSearch diagnostic logs

Résolution des problèmesTroubleshooting

Adresses IP d’agents de test webIP addresses of web test agents