Ausführen von Belastungstests

Inhalt
casso128figsbrde
Inhalt
Das Test-Tool ermöglicht es Ihnen, die Leistung von zu testen, wenn der Richtlinienserver mehr als eine Anfrage auf einmal empfängt. Mithilfe von Belastungstests können Sie simulieren, dass mehrere Agenten gleichzeitig mit dem Richtlinienserver kommunizieren oder dass ein einzelner Agent mit dem Richtlinienserver auf mehreren Threads kommuniziert.
Belastungstests werden im Modus "Erweiterte Wiedergabe" ausgeführt. Das Test-Tool empfängt Anweisungen von einer Threadsteuerungsdatei, die angibt, welche Tests und wie oft sie ausgeführt werden sollen. Nachdem die Anweisungen in der Threadsteuerungsdatei ausgeführt wurden, werden die Ergebnisse des Tests in eine Ausgabedatei geschrieben.
Konfigurieren von Threadsteuerungsdateien
Konfigurieren Sie eine Threadsteuerungsdatei, um die auszuführenden Befehlsskriptdateien, Anzahl von Wiederholungen, Threads usw. zu definieren, um komplexe Tests für Belastungsprüfungen zu automatisieren. Threadsteuerungsdateien enthalten verschiedene Anweisungszeilen in der Skripting-Sprache des Test-Tools, sowie Kommentare, die durch das Symbol # am Zeilenanfang gekennzeichnet werden.
Die grundlegenden Anweisungen haben das folgende Format:
command_script_file
,
repetition_count
,
thread_count
,
max_time_in_seconds
  • command_script_file
    Gibt den Pfadnamen der zuvor aufgezeichneten Befehlsskriptdatei an.
  • repetition_count
    Gibt an, wie oft das Test-Tool das Befehlsskript ausführt.
  • thread_count
    Gibt an, wie viele gleichzeitige Threads das Test-Tool initiiert, um das Befehlsskript auszuführen.
  • max_time_in_seconds
    (Optional) Gibt ein Limit (in Sekunden) für die Dauer des Tests an. Wenn die Testdauer dieses Limit überschreitet, wird die Wiedergabe angehalten, auch wenn die konfigurierte Anzahl von Wiederholungen nicht erreicht wurde.
Beispiel:
# c:\temp\test_data.txt, 8, 6, 120
Diese Zeile gibt Folgenden an:
  • Das Eingabeskript ist c:\temp\test_data.txt
  • Das Test-Tool führt das Skript acht Mal aus
  • Das Skript wird von sechs gleichzeitigen Threads ausgeführt
  • Der Test endet nach 120 Sekunden, ungeachtet dessen, ob acht Wiederholungen abgeschlossen sind
das Test-Tool die Ausgabe des Tests in eine Datei schreibt. Der Name der Ausgabedatei ist der Name der Eingabedatei mit dem Anhang _out#, wobei # die erhöhte Threadnummer ist. Beispielsweise sind die Ausgabedateien für den obigen Test c:\temp\test_data.txt_out1 bis c:\temp\test_data.txt_out6.
Die Test-Tool-Skripterstellungssprache enthält die Befehle in der folgenden Tabelle, um die Skriptdateiausgabe zu steuern. In der folgenden Abbildung finden Sie eine beispielhafte Threadsteuerungsdatei.
Befehl
Beschreibung
.report
Generiert einen abschließenden die Testergebnisse zusammenfassenden Bericht (als Ausgabedatei). Der Bericht enthält nicht den Status aller Serveranfragen. Dies ist die Standardeinstellung.
.reportspread
Generiert eine Datei, die einen Antwortzeit-Spread-Bericht enthält. Der Dateiname ist
command_script
_stats_spread (zum Beispiel isprotected-record.txt_stats_spread ).
.output
Generiert einen abschließenden Bericht (als Ausgabedatei), der die Gesamtergebnisse zusammenfasst, einschließlich des Status jeder Serveranforderung.
.viewstats
Zeigt die abschließende Statistik in einem Texteditor an.
.verbose
Generiert Ausgabedateien, die die Details jeder Serveranfrage enthalten.
.brief
Generiert Ausgabedateien, die die Ergebnisse jeder Serveranfrage in Kurzform enthalten. Diese Option ist nur gültig, wenn sie zusammen mit dem Befehl ".output" verwendet wird.
.sleep
Hierdurch pausiert das Test-Tool für einen angegebenen Zeitraum (in Millisekunden). Diese Option simuliert intermittierende Serveranfragen.
.userselectionmode
Bestimmt, ob Benutzernamen aufeinander folgend verwendet oder nach dem Zufallsprinzip ausgewählt werden. Gültige Werte sind 0 (aufeinander folgend) und 1 (Zufallsprinzip).
Weitere Informationen finden Sie unter (Optional) Konfigurieren der Verarbeitung von Benutzernamen in Tests.
.randomseed
Erlaubt eine Wiederholung der pseudostatistischen Sequenz (bis zur Thread-Ordnung) für die einzelnen Tests.
Weitere Informationen finden Sie unter (Optional) Konfigurieren der Verarbeitung von Benutzernamen in Tests.
.connect
settings_file
Initialisiert das Test-Tool mithilfe von Informationen der Test-Tool-Einstellungsdatei, um einen Multithread-Test mit einem simulierten Agenten festzulegen. Der standardmäßige Multithread-Test enthält mehrere simulierte Agenten mit einem simulierten Agenten je Thread. Sie können auch einen Test mit einem simulierten Agenten und mehreren Threads mithilfe dieser Option festlegen.
.disconnect
Hebt die Initialisierung des Test-Tools auf, um das Ende eines simulierten Agenten-Multithread-Tests anzuzeigen.
Beispiel einer Threadsteuerungsdatei
.output
.connect c:\test\smtest.ini
.brief
c:\temp\test_data1.txt, 2, 3
.verbose
.sleep 5000
c:\temp\test_data1.txt, 2, 2
.brief
c:\temp\test_data1.txt, 3, 4
.connect smtest.ini
c:\temp\test_data1.txt, 5, 6
.disconnect
Durchführen von Belastungstests mithilfe einer Threadsteuerungsdatei
Verwenden Sie den erweiterten Wiedergabe-Testmodus, um einen Belastungstest auszuführen, der in einer Threadsteuerungsdatei definiert ist.
Folgen Sie diesen Schritten:
  1. Wählen Sie im Gruppenfeld "Modus" "Advanced Playback" (Erweiterte Wiedergabe) aus.
  2. Geben Sie den Namen der Threadsteuerungsdatei im Feld "Steuerung" ein.
  3. Klicken Sie im Gruppenfeld "Befehl" auf "Skript ausführen".
    Das Test-Tool führt die Threadsteuerungsdatei aus und erstellt eine Ausgabeskriptdatei.
(Optional) Konfigurieren der Verarbeitung von Benutzernamen in Tests
Die folgenden drei Parameter konfigurieren, wie ein Test Benutzernamen verarbeitet.
  • 34 UserCount:
    (In der Befehlsskriptdatei definiert.) Gibt die Anzahl von Benutzern im Format AAAAAA, BAAAAA usw. bis ZZZZZZ an, die der Test zur Authentifizierung und Autorisierung verwendet. Wenn der Parameter "UserCount:" festgelegt ist, wird der Parameter "UserName:" ignoriert.
    Hinweis
    Obwohl er ignoriert wird, ist der Parameter "UserName:" erforderlich. Löschen Sie ihn nicht.
    Fügen Sie den Parameter "UserCount:" im selben Format wie die anderen Parameter in der Befehlsskriptdatei hinzu. Das heißt, geben Sie ab Spalte 24 der Zeile den vollständigen Parameternamen (einschließlich des Präfix "34") und den Parameterwert ein.
    Beispiel:
    34 UserCount:          1000
  • .userselectionmode
    (In der Threadsteuerungsdatei definiert) Bestimmt, ob Benutzernamen aufeinander folgend oder nach dem Zufallsprinzip ausgewählt werden. Gültige Werte sind 1 und 2.
    Wenn
    1
    festgelegt ist, werden die Testschritte nacheinander folgend für aufeinander folgende Benutzernamen durchgeführt, bis der Wert erreicht ist, der im Parameter "UserCount" angegeben ist. Benutzernamen werden unter Umständern auch in umgekehrter Reihenfolge verwendet, bis alle Wiederholungen abgeschlossen sind oder die Zeit ausgeschöpft ist.
    Wenn
    2
    festgelegt ist (Standard), werden Benutzer nach dem Zufallsprinzip ausgewählt.
  • .randomseed
    (In der Threadsteuerungsdatei definiert) Wenn ein Ganzzahlwert außer Null definiert ist, werden Benutzernamen im Bereich "AAAAAA" bis zum durch Wert des "UserCount"-Parameters indizierten Benutzernamen nach dem Zufallsprinzip geordnet. Dies erlaubt eine Wiederholung der pseudostatistischen Sequenz (bis zur Thread-Ordnung) für die einzelnen Tests.
    Wenn .randomseed nicht angegeben ist, wird der aktuelle Zeitpunkt verwendet.
(Optional) Simulieren einer gleichmäßigen Belastung
Um eine gleichmäßige Belastung zu simulieren, in deren Kontext Anfragen kontinuierlich an den Richtlinienserver gesendet werden, konfigurieren Sie den folgenden Parameter in der Threadsteuerungsdatei.
  • .sleepbetweenrequests
    Gibt die Ruhezeit (in Millisekunden) zwischen den einzelnen Anfrage an den Richtlinienserver in den einzelnen Threads an.
Wenn der Parameter ".sleepbetweenrequests" beispielsweise auf 5 (Millisekunden) gesetzt ist, werden Anfragen in jedem Thread ungefähr 200 Mal pro Sekunde an den Richtlinienserver gesendet.
Hinweis:
Die tatsächliche Anzahl von Anfragen kann von den folgenden Faktoren beeinflusst werden: Die Zeit bis zum Abschließen von Anfragen, die CPU-Zeit, die den einzelnen Threads zugewiesen wird, sowie externe Faktoren.
(Optional) Schreiben Sie Ergebnisse wiedergegebener Tests in eine CSV-Datei
Sie können das Test-Tool so konfigurieren, dass alle Ergebnisse von wiedergegebenen Tests in eine Datei mit durch Kommas getrennten Werten (CSV-Format) geschrieben werden, indem Sie die folgende Systemumgebungsvariable festlegen:
  • SMTESTCSVFILE
    Gibt den Pfadnamen der CSV-Datei an, in die das Test-Tool Ergebnisse wiedergegebener Tests schreiben sollte. Ergebnisse wiedergegebener Tests werden durch Kommas getrennt und mit einer Kopfzeile in die angegebene Datei geschrieben.
    Wenn die Datei bereits vorhanden ist, wird sie angehängt. Wenn in der Threadsteuerungsdatei die Wiedergabe von mehreren Aufzeichnungen festgelegt ist, werden die Ergebnisse kumuliert.
Berichtsanzeige
Wenn Sie einen Belastungstest ausführen, generiert das Test-Tool einen die Ergebnisse zusammenfassenden Bericht. Dieser Bericht enthält die folgenden Informationen:
  • Start- und Endzeit des Tests
  • Insgesamt verstrichene Zeit
  • Minimale, maximale und durchschnittliche Anfragezeit
    Hinweis:
    Die Daten sind in folgendem Zeitformat:
    Hours : minutes: seconds: milliseconds : microseconds
  • Gesamtanzahl an Anfragen
  • Durchsatz
  • Die Anzahl der ausgeführten Tests sowie die entsprechenden Ergebnisse
Der Bericht wird in dem Verzeichnis gespeichert, in der sich die Threadsteuerungsdatei befindet.
Hinweis:
Der Name des Berichts ist der Name der Threadsteuerungsdatei mit dem Anhang "_stats". Zum Beispiel ergibt die Threadsteuerungsdatei "thread.txt" einen Bericht mit dem Namen "thread.txt_stats".
 
Control File: C:\temp\control.txt Started at: Wed Jan 24 16:26:45 2018 Finished at: Wed Jan 24 16:46:46 2018 Total Elapsed: 0:20:01 Minimum Request Time: 0:00:00.000.389 Maximum Request Time: 0:00:00.300.219 Average Request Time: 0:00:00.017.282 Total Requests 1386509 Throughput (Req/Sec): 1154.202 Request Count Yes No Timeout Error ---------------- ------------ ------------ ------------ ------------ ------------ IsProtected 55473 55473 0 0 0 IsAuthenticated 221875 221875 0 0 0 IsAuthorized 1109161 1109161 0 0 0 ---------------- ------------ ------------ ------------ ------------ ------------ Total: 1386509 1386509 0 0 0