So erstellen Sie Geräte und Ziele

Eine HTTP/S-Überwachung überprüft eine einzelne URL auf Verfügbarkeit, Leistung, ordnungsgemäßen Inhalt und Fehler. Es unterstützt alle gängigen Arten von Anfragen, Cookies, Formularübermittlungen, benutzerdefinierte Header, passwortgeschützte Websites (grundlegende HTTP/S-Autorisierung sowie Cookie-/Skript-Autorisierungsmechanismen) und Timeout-Schwellenwerte.

Die HTTP/S-Überwachung validiert Sicherheitszertifikate, prüft die Zertifizierungsstelle und führt Überprüfungen des Zertifikatablaufs durch. Es kann so konfiguriert werden, dass Sie daran erinnert werden, wenn sich das Ablaufdatum des Zertifikats nähert.

Sie können HTTP(S)-Anforderungsparameter in Kontextparameter konvertieren, um Werte zu übergeben, z. B. aus einer Antwort einer anderen Anforderung innerhalb des Überwachungsgeräts abgerufen. Sie können Kontextparameter für die URL, die Header, den Anforderungstext und die Vorbereitungs-/Postskripts einrichten. Weitere Informationen finden Sie unter Verwenden von Kontextparametern in HTTP(S)-Anforderungen.

Massenimport

Um die Überwachung für viele Geräte mit einem Klick zu erstellen, wählen Sie die Option Massenimport aus, die für den HTTP/S-Überwachungstyp auf der Seite Überwachungstyp auswählen bereitgestellt wird. Weitere Informationen finden Sie im Abschnitt Massenimport | Webseitenüberwachung, HTTP/S- und PING/ICMP-Geräte Artikel des Wikis.

Konfigurieren einer Anforderung

Url

Geben Sie die URL der Seite ein, auf der Sie die Aufgabe ausführen möchten. Es sollte als solches formatiert werden: www.example.com. Sie können einen visuell freundlichen Eingabemodus aktivieren, indem Sie oben im Abschnitt auf den detaillierter Enderaumklicken klicken.

SSL/Zertifikatsprüfung

Secure Socket Layer SSL Certificate Check ist ein Standardaspekt von HTTP(S)-Tests.

Folgende zusätzliche Optionen stehen zur Verfügung:

  • Autorität: Überprüft, ob eine Zertifikatkette ein Stammzertifikat enthält, das vertrauenswürdig oder nicht vertrauenswürdig ist.
  • Allgemeiner Name (Common Name, CN): Überprüft, ob eine Adresse, zu der Sie navigieren, mit dem Adresszertifikat übereinstimmt, für das die Adresse signiert wurde.
  • Datum: überprüft das Ablaufdatum des Zertifikats.
  • Widerruf: Überprüft, ob die Vertrauenskette des Zertifikats kein gesperrtes Zertifikat enthält.
  • Verwendung: Überprüft eine Zertifikatkette für die unsachgemäße Verwendung eines Zwischenzertifikats.
  • Ablauferinnerung in Tagen: eine Erinnerung, die (als Fehler) über den Ablauf des Zertifikats benachrichtigt wird.
  • Clientzertifikat: Name des Clientzertifikats.

Siehe auch: Ziel-Hostname oder IP-Adresse.

Schwellenwert für die Zeitüberprüfung (in Sekunden)

Geben Sie die maximale Anzahl von Sekunden ein, die das System auf eine Antwort von der Webseite warten soll, bevor die Aufgabe beendet und ein Fehler zurückgegeben wird.

Der maximale Timeout-Wert ist auf 70 Sekunden begrenzt. Wenn der Schwellenwert nicht festgelegt ist, wird das standardmäßige Zeitlimit von 70 Sekunden auf die Aufgabe angewendet.

Anforderungstyp

Sie können eine GET- oder POST-Anforderung an die Webseite senden. Wenn Sie eine GET-Anforderung auswählen, werden einfach Daten vom Webserver abgerufen. Die Auswahl einer POST-Anforderung gibt an, dass Sie einen Satz von Daten einschließen, auf die der Server reagieren kann.

Wenn Sie den Anforderungstyp auf POST festlegen, aber keinen POST-Parameter im Abschnitt “Zusätzliche Parameter” unten angeben, wird der POST-Wert beim Speichern der Aufgabe standardmäßig wieder auf GET zurückgesetzt.

URL-Umleitungen

Wenn die Option “Umleitung folgen” auf Jafestgelegt ist, folgt das System dem Pfad der URL, die mit der Antwort 301 gesendet wird, und betrachtet jede Umleitung als separate HTTP-Anforderung. Es ermöglicht Ihnen, die vollständige Umleitungskette (alle Links, durch die die Anforderung umgeleitet wird) in den Testergebnissen zu verfolgen, einschließlich Der Antwortzeiten sowohl für die ursprüngliche URL als auch für nachfolgende Antworten.

Es wird empfohlen, die Option “Weiterleiten folgen” aktiviert zu lassen, wenn Sie nicht nur die ursprüngliche URL, sondern alle URLs in der Kette testen müssen. Beispielsweise kann es nützlich sein, eine SSL-Zertifikatsprüfung für jede URL in einer Umleitungskette durchzuführen.

In Fällen, in denen Sie nur eine anfängliche URL testen möchten, deaktivieren Sie die Option Follow Redirects.

Beachten Sie, dass ein Standardumleitungslimit auf 10 Umleitungen festgelegt ist. Wenn das System eine bestimmte Anzahl von Umleitungen ausführen soll (weniger als 10), können Sie die Anzahl der URLs angeben, die Sie in Ihrer Umleitungskette testen möchten, im Feld Skript vorbereiten:

string url;
url = "http://wtatour.com/";
(current.Task).TaskMaxRedirectAttempts = N;

Wobei N die Anzahl der Umleitungsorte ist, denen wir folgen möchten. Um keine Umleitungen zu folgen, legen Sie einfach die Anzahl der Umleitungsstandorte auf 0 fest.

Inhaltsvalidierung

Content Validation Keywords werden verwendet, um sicherzustellen, dass der erwartete Inhalt auf eine Webseite geladen wurde. In den Feldern Keyword können Sie ein oder mehrere Wörter oder Ausdrücke angeben, nach denen Sie im Webseiteninhalt suchen möchten. Wenn die erwarteten Schlüsselwörter nicht gefunden werden, gibt die Aufgabe einen Fehler zurück.

Sie können mehrere Zeichenfolgen in die Schlüsselwortfelder eingeben. Die eingegebenen Werte können durch logische Ausdrücke wie folgt getrennt werden:

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

Wo:
[– Schlüsselwortausdrucksstart;
]- – Schlüsselwortausdrucksende;
() – Gruppieren von Klammern;
& – logisch UND;
| – logisches ODER;
! – logisches NICHT;
“string” – ein Schlüsselwort.

Ein erfolgreicher Schlüsselwortausdruck muss die Anfangs- und End-Brackets wie folgt enthalten:

{["keyword"]}

Standardauthentifizierung

Das System “Standardauthentifizierung” wird verwendet, um Benutzern den Zugriff auf Inhalte auf einigen Websites zu ermöglichen. Sobald die Anmeldeinformationen angegeben wurden, werden sie zusammen mit dem Anforderungsheader an den Webserver übergeben.

  • Benutzername: enthält einen Benutzernamen für die HTTP/S-Basis- oder Digest-Zugriffsauthentifizierung.
  • Benutzerkennwort: enthält ein Kennwort für die HTTP/S-Basis- oder Digest-Zugriffsauthentifizierung.

Verwechseln Sie die Standardauthentifizierung nicht mit anderen Authentifizierungsschemata wie der Bearer Authentication, die Inhabertoken umfasst, und OAuth 2.0, das Zugriffstoken verwendet.

Weitere Informationen finden Sie in den Artikeln zu Benutzername und Kennwort für die Standardauthentifizierung und zur Überwachung von OAuth 2.0-basierten APIs.

Header

Die Option ermöglicht das Hinzufügen zusätzlicher benutzerdefinierter Header. Sie können z. B. den MIME-Typ der gesendeten Daten zusammen mit der Anforderung im Content-Type-Header definieren:

Content-Type: text/html

Wenn der Content-Type-Header nicht für die Anforderung angegeben ist, wird die Anforderung mit dem Standardinhaltstyp application/x-www-form-urlencodedgesendet.

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.

Anforderungstext

Wenn eine der POST-, PUT- oder PATCH-Methoden ausgewählt wurde, können Sie hier die Nutzlast angeben. Der Inhalt innerhalb des HTTP-Anforderungstextes kann als “Rohdaten” (JSON, XML usw.) oder als statische Namenswertsammlung (Formulardaten) gesendet werden.

Um mit einer Namenswertauflistung zu arbeiten, können Sie den detaillierten Eingabemodus aktivieren, indem Sie den Detaillierter-Switcher oben im Abschnitt verwenden und Anforderungsparameternamen und -werte im entsprechenden Feld angeben.

Um “Rohdaten” zusammen mit der Anforderung zu senden, z. B. ein JSON-Objekt, geben Sie Ihre JSON-Nutzlast in das Eingabefeld ein. Sie können den Anforderungstext auch dynamisch ändern. Wenn Sie z. B. das aktuelle Datum und die aktuelle Uhrzeit als Teil Ihrer POST-Anforderung senden oder die aktuelle Sitzungs-ID in der JSON-Nutzlast an einen Remoteserver übergeben müssen. Dotcom-Monitor ermöglicht das dynamische Ändern der Nutzlast von HTTP-Anforderungen mithilfe der Razor-Syntax und der Datenmasken.

  • Beispiel. Dynamischer JSON-Körper für HTTP-Post-Anforderungen

    Um besser zu verstehen, wie Dynamic JSON-Körper in der HTTP-Anforderung funktioniert, werfen wir einen Blick auf das folgende Beispiel. Angenommen, wir müssen einen Auftrag auf einer Website einreichen, und die Übermittlungstransaktion umfasst drei grundlegende Schritte, die sequenziell ausgeführt werden:

    1. einloggen
    2. Check-in
    3. Auftragseinreichung

    Um einen Test mit diesen Schritten einzurichten, die sequenziell ausgeführt werden, müssen wir drei HTTP-Tasks innerhalb eines Überwachungsgeräts (oder Auslastungstests, wenn Auslastungstests stattfinden) erstellen.

    Nehmen wir an, dass wir die aktuelle Uhrzeit und eine eindeutige GUID in der JSON mit der HTTP-Anforderung senden müssen, um mit der Anwendung einzuchecken. Um eine Bestellung zu senden, ist außerdem eine Benutzersitzungs-ID erforderlich, die bei der Anmeldung generiert wird, und eine Bestellzeit, die von der Anwendung benötigt wird.

    Um diesen Test zu implementieren, müssen wir zunächst eine Anmeldeanforderung mit grundlegenden Authentifizierungsparametern für den Webserver der Webanwendung konfigurieren. Als Nächstes müssen wir eine HTTP-Anforderung konfigurieren, um die tatsächliche Eincheckzeit und die eindeutige GUID zusammen mit einem JSON-Text zu übergeben. In diesem Beispiel geben wir die folgende Zeichenfolge mithilfe der Razor-Syntax im JSON-Text ein:

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

    Wo @Model[” < Parametername > “] auf einen erforderlichen Kontextparameternamen im Razor-Ausdruck verweist.

    Wir müssen die Kontextparameter deklarieren und angeben, wie die Post-Daten im Feld Skript vorbereiten verarbeitet werden sollen:

    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

    Das Ergebnis HTTP-Anforderung sieht ähnlich wie folgt aus:

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

    Im nächsten Schritt müssen wir die HTTP-Anforderung so konfigurieren, dass eine Bestellung übermittelt wird. Dazu geben wir die aktuelle Uhrzeit und Sitzungs-ID der Bestellung zusammen mit der Modell-Identifikationsnummer des Elements im JSON-Text an den Zielendpunkt weiter. Siehe jsON-Stelle für diese Anfrage unten:

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

    Um einen Wert der aktuellen Sitzungs-ID-Variablen zu übergeben, müssen wir ihn mithilfe der View State-Methode von der Anmeldeseite abrufen, die beim ersten Anmeldeschritt aufgerufen wird. Sie kann im Vorbereitungsskript codiert werden. Um die Denkzeit eines echten Benutzers zu simulieren, legen wir außerdem die Auftragszeitvariable mit einem Drei-Minuten-Offset fest. Daher enthält das Feld Skript vorbereiten die folgenden Zeichenfolgen:

    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);

    Die resultierende HTTP-Anforderung sieht wie folgt aus:

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

Informationen zum Konfigurieren einer HTTP-Anforderung mit einer sich dynamisch ändernden Nutzlast finden Sie unter Dynamisches Ändern der Nutzlast in HTTP-Anforderung.

DNS-Optionen

Mit der Funktion DNS-Optionen können Benutzer auswählen, wie DNS-Anforderungen (Domain Name Server) während einer Überwachungsaufgabe ausgeführt werden.

Um den Modus zum Auflösen von Hostnamen anzugeben, wählen Sie im Abschnitt DNS-Auflösungsmodus einen der verfügbaren Modi aus. Weitere Informationen zur Feature-Konfiguration finden Sie unter DNS-Modusoptionen.

Der Abschnitt Benutzerdefinierte DNS-Hosts enthält die Zuordnungen von IP-Adressen zu Hostnamen.

Um die Zuordnung anzugeben, geben Sie die IP-Adresse und den Hostnamen in die entsprechenden Felder ein.

Beispiele:

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

Siehe auch: DNS-Modusoptionen.

Vorbereiten von Skript und Postskript

Die Felder können Code enthalten, der für bestimmte POST-, GET-, URL-Daten oder für die Validierung oder Veröffentlichung benutzerdefinierter Header verwendet werden kann. Weitere Informationen zur Verwendung finden Sie im Artikel “Vorbereiten von Skripts und Postskripten”, oder wenden Sie sich an den technischen Support.