Как создавать устройства и целевые объекты
Мониторинг HTTP/S проверяет единый URL-адрес на наличие, производительность, надлежащее содержание и ошибки. Он поддерживает все популярные типы запросов, файлы cookie, отправку форм, пользовательские заголовки, защищенные паролем сайты (базовая авторизация HTTP/S, а также механизмы авторизации файлов cookie/скриптов) и пороговые значения тайм-аута.
Мониторинг HTTP/S проверяет сертификаты безопасности, проверяет центр сертификации и выполняет проверки истечения срока действия сертификатов. Его можно настроить так, чтобы он отправлял вам напоминания о приближении срока действия сертификата.
Параметры запроса HTTP (S) можно преобразовать в параметры контекста, чтобы передать значения, например, полученные из ответа другого запроса в устройстве мониторинга. Вы можете настроить контекстные параметры для URL-адреса, заголовков, тела запроса и сценариев подготовки/публикации. Для получения подробной информации узнайте, как использовать параметры контекста в запросах HTTP (S).
Массовый импорт
Чтобы создать мониторинг для нескольких устройств одним щелчком мыши, выберите параметр Массовый импорт , который предоставляется для типа мониторинга HTTP/S на странице Выбор типа мониторинга . Для получения более подробной информации, пожалуйста, ознакомьтесь с разделом Массовый импорт | Статья вики о мониторинге веб-страниц, устройствах HTTP/S и PING/ICMP .
Настройка запроса
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.
Тип запроса
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).
Смотрите также: Целевое имя хозяина или IP-адрес.
Порог проверки времени (в секундах)
Введите максимальное количество секунд, в течение которого система должна ожидать ответа от веб-страницы, прежде чем завершить задачу и вернуть ошибку.
Максимальное значение тайм-аута ограничено 70 секундами. Если порог не установлен, то к задаче будет применен 70-секундный тайм-аут по умолчанию.
URL перенаправляет
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.
Проверка содержимого
Ключевые слова для проверки содержимого используются для того, чтобы убедиться в том, что определенный текст или элементы присутствуют в исходном коде HTML веб-страницы. Чтобы выбрать правильные ключевые слова для проверки содержимого веб-страницы, откройте исходный код веб-страницы и выберите ключевые слова или фразы, которые однозначно представляют содержимое. Если вы видите текст на веб-странице в браузере, но не можете найти его в исходном коде HTML, текст может быть не включен непосредственно в необработанный HTML, а динамически сгенерирован JavaScript, загружен из внешних API или встроен в IFrames. Если вы хотите использовать этот тип текста для проверки содержимого веб-страницы, настройте устройство Single Web Page для настройки мониторинга производительности в реальном окне браузера.
В полях «Ключевое слово » можно указать одно или несколько слов или фраз, которые необходимо искать в исходном коде HTML целевой веб-страницы. Если ожидаемые ключевые слова не найдены, задача вернет ошибку.
Вы можете ввести несколько строк в поля ключевых слов. Значения могут быть разделены логическими выражениями:
{[("keyword1"&"keyword2")|!"keyword3"]}
где:
{[ – начало выражения ключевого слова;
]} – окончание выражения ключевого слова;
() – группировочные скобки;
& – логическое И;
| – логическое ИЛИ;
! – логическое НЕТ;
string” – ключевое слово.
Успешное выражение ключевого слова должно включать в себя стартовые и конечные скобки следующим образом:
{["keyword"]}
авторизация
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.
Заголовки
Опция позволяет добавлять любые дополнительные пользовательские заготовки. Например, можно определить тип MIME данных, отправленных вместе с запросом в заголовке Content-Type:
Content-Type: text/html
Если заголовок Content-Type не указан для запроса, запрос будет отправлен с приложением типа содержимого по умолчанию/x-www-form-urlencoded.
Текст запроса
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:
- Login
- Check-in
- 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
Функция DNS Options позволяет пользователям выбирать, как запросы сервера доменных имен (DNS) проводятся во время выполнения задачи мониторинга.
Чтобы указать режим разрешения имен хостов в разделе Режим решения DNS, выберите один из доступных режимов. Для получения более подробной информации о конфигурации функции см.
Раздел Custom DNS Hosts позволяет настроить сопоставление IP-адресов с именами хостов. Поддерживается разрешение DNS IPv6 и IPv4.
Чтобы указать сопоставление, введите IP-адрес и имя хоста в соответствующие поля.
Смотрите также: Параметры режима DNS.
Подготовка сценария и почтового сценария
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.