Comment créer des appareils et des cibles

Une surveillance HTTP/S vérifie la disponibilité, les performances, le contenu approprié et les erreurs d’une seule URL. Il prend en charge tous les types de demandes populaires, les cookies, les soumissions de formulaires, les en-têtes personnalisés, les sites sécurisés par mot de passe (autorisation HTTP / S de base ainsi que les mécanismes d’autorisation de cookies / script) et les seuils de délai d’attente.

La surveillance HTTP/S valide les certificats de sécurité, vérifie l’autorité de certification et effectue des vérifications d’expiration des certificats. Il peut être configuré pour vous envoyer des rappels lorsque la date d’expiration du certificat approche.

Vous pouvez convertir les paramètres de demande HTTP(S) en paramètres contextatifs pour passer dans les valeurs, par exemple, récupérées à partir d’une réponse d’une autre demande dans le dispositif de surveillance. Vous pouvez définir des paramètres de contexte pour l’URL, les en-têtes, le corps de la requête et les scripts de préparation/publication. Pour plus de détails, voir Comment utiliser les paramètres de contexte dans les requêtes HTTP(S).

Importation en vrac

Pour créer une surveillance pour de nombreux appareils en un clic, choisissez l’option Importation en bloc fournie pour le type de surveillance HTTP/S sur la page Sélectionner un type de surveillance . Pour plus de détails, veuillez consulter la section Importation en bloc | Article sur la surveillance des pages Web, les périphériques HTTP/S et PING/ICMP du wiki.

Configuration d’une demande

Url

Enter the URL of the page you wish to perform the task on. It should be formatted as such: www.example.com. You can turn on a visually friendly input mode by clicking the Detailed switcher on the top of the section.

SSL/Certificate Check 

Secure Socket Layer SSL Certificate Check is a standard aspect of HTTP(S) tests.

The following additional options are available:

  • Authority: verifies whether a certificate chain contains a root certificate that is trusted, or not trusted.
  • Common Name (CN): validates that an address you navigate to matches the address certificate the address was signed to.
  • Date: verifies the certificate expiration date.
  • Revocation: validates that the certificate’s chain of trust doesn’t contain a revoked certificate.
  • Usage: verifies a certificate chain for the improper use of an intermediate certificate.
  • Expiration Reminder in Days: a reminder that notifies (as an error) about certificate expiration.
  • Client Certificate: client certificate name.

Type de demande

In the Request Type field, you can select one of the most-commonly-used HTTP methods to send monitoring requests to a web page. If you need to send a payload with HTTP requests, provide it in the corresponding field (see the Request Body chapter for details). The payload can be specified and sent with all types of requests except Trace (RFC2616).

Voir aussi : Nom d’hôte cible ou adresse IP.

Seuil de validation temporelle (en secondes)

Entrez le nombre maximal de secondes pendant lesquelles le système doit attendre une réponse de la page Web avant de terminer la tâche et de renvoyer une erreur.

La valeur maximale du délai d’expiration est limitée à 70 secondes. Si le seuil n’est pas défini, le délai d’expiration par défaut de 70 secondes sera appliqué à la tâche.

Url Redirige

If the Follow Redirects option is set to Yes, the system will follow the path of the URL that is sent with the 301 response and consider each redirect as a separate HTTP request. It enables you to follow the full redirect chain (all the links the request is redirected through) in the test results, including response times both for the initial URL and subsequent responses.

We recommend that you leave the Follow Redirects option activated if you need to test not only the initial URL, but all the URLs in the chain. For example, it can be useful to perform an SSL certificate check for each URL in a redirect chain.

In cases where you want to test an initial URL only, disable the Follow Redirects option.

Note that a default redirection limit is set at 10 redirects. If you want the system to execute a particular number of redirects (less than 10), you can specify the number of URLs you want to test in your redirect chain in the Prepare Script field:

string url;
url = "http://wtatour.com/";
currentTask.TaskMaxRedirectAttempts = N;

Where N is the number of redirect locations we want to follow. To follow no redirects, simply set the number of redirect locations to 0.

Validation du contenu

Les mots-clés de validation de contenu sont utilisés pour s’assurer que du texte ou des éléments spécifiques sont présents dans le code source HTML d’une page Web. Pour sélectionner les mots-clés appropriés pour la validation du contenu de la page Web, accédez au code source de la page Web et choisissez les mots-clés ou les expressions qui représentent le contenu de manière unique. Si vous voyez du texte sur une page Web dans votre navigateur, mais que vous ne le trouvez pas dans le code source HTML, il se peut que le texte ne soit pas directement inclus dans le code HTML brut, mais généré dynamiquement par JavaScript, chargé à partir d’API externes ou intégré dans IFrames. Si vous souhaitez utiliser ce type de texte dans la validation du contenu d’une page Web, configurez un périphérique de page Web unique pour configurer la surveillance des performances dans une fenêtre de navigateur réelle.

Pour accéder à la source HTML

Utilisez des outils ou des scripts pour récupérer la source HTML de la page Web cible. Par exemple, ouvrez la page Web dans votre navigateur, cliquez avec le bouton droit de la souris n’importe où sur la page et sélectionnez « Afficher le code source de la page ».

Dans les champs Mot-clé , vous pouvez spécifier un ou plusieurs mots ou expressions que vous souhaitez rechercher dans le code source HTML de la page Web cible. Si les mots clés attendus ne sont pas trouvés, la tâche retournera une erreur.

Vous pouvez entrer plusieurs chaînes dans les champs de mots clés. Les valeurs peuvent être séparées par des expressions logiques :

{[("keyword1"&"keyword2")|!"keyword3"]}

Où :
{[ – début de l’expression du mot-clé ;
]} – fin de l’expression du mot-clé ;
() – crochets de regroupement ;
& – logique ET ;
| – logique OU ;
! – logique NON ;
string” – un mot-clé.

Une expression de mot clé réussie doit inclure les supports de début et de fin comme suit :

{["keyword"]}

autorisation

The HTTP authentication protocol is used to allow users to access content on some websites.

The following authentication schemes are available:

  • Basic Authentication: This method encodes the username and password in base64 and sends them in the request header. It’s simple but not secure unless used with HTTPS.
  • Digest Authentication: This scheme hashes credentials using a nonce (a random value) before sending them over the network, providing better security than Basic Authentication by preventing replay attacks.
  • NTLM Authentication: A challenge-response mechanism developed by Microsoft, NTLM is used for securing credentials in Windows environments. It provides strong security by using multiple hashing and challenge-response protocols.

Once provided, login credentials will be passed along with the request header to the web server.

  • Username: contains a username for HTTP/S  authentication.
  • User Password: contains a password for HTTP/S authentication.

Do not confuse HTTP authentication with other authentication schemes such as Bearer Authentication that involves bearer tokens and OAuth 2.0 that uses access tokens.

Read the articles on Basic Authentication Username and Password and Monitoring OAuth 2.0-based APIs for more information.

En-têtes

L’option permet d’ajouter des en-têtes personnalisés supplémentaires. Par exemple, vous pouvez définir le type MIME des données envoyées avec la demande dans l’en-tête de type contenu :

Content-Type: text/html

Si l’en-tête de type contenu n’est pas spécifié pour la demande, la demande sera envoyée avec l’application de type de contenu par défaut/x-www-form-urlencoded.

The default User-Agent header is set to:

User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) DMBrowser/2.1 (SV)

However, the user-agent string can be replaced with any other string. To do this, add a custom header with the name “user-agent” and the specific value needed.

Corps de la demande

Dotcom-Monitor allows you to send payloads in HTTP(S) requests (except Trace requests). The content within the HTTP request body can be sent as “raw” data (JSON, XML, etc.) or static name-value collection (Form Data).

To work with a name-value collection, you can turn on the detailed input mode by using the Detailed switcher on the top of the section and provide request parameter names and values in the corresponding field.

To send “raw” data along with the request, such as a JSON object, enter your JSON payload in the input field. You can also dynamically change the request body. For example, if you need to send the current date and time as a part of your POST request or pass the current session ID in JSON payload to a remote server. Dotcom-Monitor enables dynamically changing HTTP request payload by using the Razor syntax and data masks.

  • Example. Dynamic JSON Body for HTTP Post Requests

    To better understand how Dynamic JSON body works in the HTTP request, let’s have a look at the following example. Suppose we need to submit an order on a website and the submission transaction includes three basic steps executed sequentially:

    1. Login
    2. Check-in
    3. Order Submission

    To set up a test with these steps executed sequentially, we need to create three HTTP tasks within one monitoring device (or load test, if load testing is taking place).

    Let’s assume that we need to send the current time and a unique GUID in the JSON with the HTTP request to check in with the application. Also, to submit an order, a user session ID generated upon login and an order time is required by the application.

    To implement this test, we first need to configure a login request with basic authentication parameters to the web application web server. Next, we need to configure an HTTP request to pass the actual check-in time and unique GUID along with a JSON body. For this example, we will enter the following string using the Razor syntax in the JSON body:

    { "CheckInTime": "@Model["CurrentTime"]", "GenGuid": "@Model["Guid"]" }

    Where @Model[“<Parameter Name>”] references a necessary context parameter name in the Razor expression.

    We must declare the context parameters and specify how the Post Data should be processed in the Prepare Script field:

    context.Guid = Guid.NewGuid().ToString(); // uniq random string
    context.CurrentTime = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd\\Thh:mm:ss") + ".0Z"; // get current time in UTC
    ProcessPostDataByRazor(currentTask); // the call to process the Post Data content with the Razor engine

    The result HTTP request will look similar to this:

    03:15:23
    POST https://www.dotcom-monitor.com/CheckIn
    { "CheckInTime": "2021-03-30T08:15:22.0Z", "GenGuid": "5c5e3d23-66fd-49d0-bd57-62c516aea7e7" }

    In the next step, we need to configure the HTTP request to submit an order. In order to do this, we will pass the order current time and session ID, along with the item’s model identification number, in the JSON body to the target endpoint. See the JSON body for this request below:

    { "OrderTime": "@Model["OrderTime"]",   "VIEWSTATE": "@Model["Session"]",  "ModelID": "2128506" }

    To pass a value of the current session ID variable, we need to retrieve it from the login page, called at the first login step, using the View State method. It can be coded in the prepare script. Additionally, to simulate a real user’s think time, we will set the order time variable with a three minute offset. Therefore, the Prepare Script field will contain the following strings:

    context.OrderTime = DateTime.Now.AddMinutes(3).ToUniversalTime().ToString("yyyy-MM-dd\\Thh:mm:ss") + ".0Z"; // order time + 3 min
    context.Session = (Tasks["Login"] as Http).body["//INPUT[@ID='__VIEWSTATE']", "VALUE"]; // track state value from Login page 
    ProcessPostDataByRazor(currentTask);

    The resulting HTTP request will look similar to this:

    03:15:45
    POST https://www.dotcom-monitor.com/Order
    { "OrderTime": "2021-03-30T08:18:45.0Z", "VIEWSTATE": "<Server Generated ViewState>", "ModelID": "2128506" }
                        

To learn how to configure an HTTP request with a dynamically changing payload, see How to Dynamically Change Payload in HTTP Request.

DNS Options

La fonction Options DNS permet aux utilisateurs de choisir comment les demandes de serveur de noms de domaine (DNS) sont effectuées au cours d’une tâche de surveillance.

Pour spécifier le mode de résolution des noms d’hôte, dans la section Mode Résolution DNS, sélectionnez l’un des modes disponibles. Pour plus de détails sur la configuration des fonctionnalités, consultez les options de mode DNS.

La section Hôtes DNS personnalisés permet de configurer le mappage des adresses IP aux noms d’hôte. La résolution DNS IPv6 et IPv4 est prise en charge.

Pour spécifier le mappage, entrez l’adresse IP et le nom d’hôte dans les champs correspondants.

Exemples:

192.168.107.246 example.com user.example.com userauth.example.com tools.example.com
192.168.107.246 example.com
192.168.107.246 user.example.com
192.168.107.246 userauth.example.com

Voir aussi : Options de mode DNS.

Préparer le script et poster le script

The fields can contain C# code, which can be used for specific POST, GET, URL data or for validating or publishing custom headers. Please see the Using Prepare Script and Post Script article or contact technical support for more details on usage.