Sie sehen sich Hilfeinhalte der folgenden Version an:

Was ist Tough Day 2?

„Tough Day 2“ ist eine Anwendung, mit der Sie einen Stresstest Ihrer AEM-Instanz durchführen können. Sie können ihn direkt mit der standardmäßigen Test-Suite ausführen oder an Ihre Testanforderungen anpassen. In dieser Aufnahme sehen Sie eine Präsentation der Anwendung.

 

Ausführen von Tough Day 2

Laden Sie die aktuelle Version von Tough Day 2 aus dem Adobe-Repository herunter. Nach dem Download können Sie die Anwendung direkt ausführen. Sie müssen lediglich den Parameter host angeben. Beim folgenden Beispiel wird die AEM-Instanz lokal ausgeführt. Daher wird der Wert localhost verwendet:

 

java -jar toughday2.jar --host=localhost

Die Standard-Suite, die nach dem Hinzufügen des Parameters ausgeführt wird, heißt toughday. Sie enthält die folgenden Anwendungsfälle:

  • Erstellen von Seiten und zugehörigen Live Copies (einschließlich Rollouts)
  • Abrufen der Homepage
  • Ausführen von Abfragen in QueryBuilder
  • Erstellen von Asset-Hierarchien
  • Löschen von Assets

Die Suite enthält 15 Prozent Schreibaktionen und 85 Prozent Leseaktionen. 

Um die Suite-Tests auszuführen, installiert Tough Day 2 das Standard-Inhaltspaket. Um dies zu vermeiden, können Sie den Parameter installsamplecontent auf false festlegen. Denken Sie aber daran, auch die Standardpfade für die Tests zu ändern, die Sie ausführen möchten. Wenn die JAR ohne Parameter ausgeführt wird, zeigt Tough Day 2 die Hilfe-Informationen an.

Als allgemeine Regel können Sie die Anwendung verwenden, indem Sie diesem Muster folgen:

 

java -jar toughday2.jar [--help | --help_full | --help_tests | --help_publish]  [<global arguments> | <actions> | --runmode | --publishmode]

Hinweis:

Bei Tough Day 2 gibt es keinen Bereinigungsschritt. Wir empfehlen daher, Tough Day 2 auf einer geklonten Staging-Instanz auszuführen, nicht auf der Hauptproduktionsinstanz. Die Staging-Instanz sollte nach den Tests nicht mehr genutzt werden.

 

Hilfe

Tough Day 2 bietet zahlreiche Hilfeoptionen, auf die Sie über die Befehlszeile zugreifen können. Beispiel:

java -jar toughday2.jar --help_full

In der nachfolgenden Tabelle finden Sie die relevanten Hilfeparameter.

Parameter Beschreibung Beschreibung
--help Gibt globale Informationen aus, z. B.: verfügbare Aktionen, vordefinierte Suites, Ausführungsmodi und globale Parameter  
--help_publish Gibt alle verfügbaren Herausgeber aus  
--help_tests Gibt die Testklassen und ihre Beschreibung aus  
--help_full Gibt alle o. g. Informationen sowie Tests, Herausgeber und Suite-Komponenten aus  
 --help --runmode/publishmode type=<Modus> Führt Informationen zu der angegebenen Ausführung oder dem Veröffentlichungsmodus auf

java -jar toughday2.jar --help --runmode type=constantload

java -jar toughday2.jar --help --publishmode type=intervals

--help --suite=<Suite-Name> Führt alle Tests einer bestimmten Suite und ihre jeweiligen konfigurierbaren Eigenschaften auf
java -jar toughday2.jar --help --suite=get_tests
 --help --tag=<Tag>
Führt alle Elemente mit dem angegebenen Tag auf
java -jar toughday2.jar --help --tag=publish
--help <Testklasse/Herausgeberklasse>
Führt alle konfigurierbaren Eigenschaften für den genannten Test oder Herausgeber auf

java -jar toughday2.jar --help UploadPDFTest

java -jar toughday2.jar --help CSVPublisher

Globale Parameter

Tough Day 2 bietet globale Parameter, die die Testumgebung festlegen oder ändern. Dazu gehören der Ziel-Host, die Portnummer, das verwendete Protokoll, Benutzer und Kennwort für die Instanz usw. Beispiel:

java -jar toughday2.jar --host=host --protocol=https --port=4502 --duration=30m --dryrun=true 

Nachfolgend finden Sie alle relevanten Parameter:

Parameter Beschreibung Standardwert Mögliche Werte
--installsamplecontent=<Wert> Installiert das standardmäßige Inhaltspaket von Tough Day 2 oder installiert es nicht. true true oder false
--protocol=<Wert> Das für den Host verwendete Protokoll. http http oder https
--host=<Wert> Name oder IP-Adresse des Ziel-Hosts.    
--port=<Wert> Der Port des Hosts. 4502  
--user=<Wert> Der Benutzername für die Instanz. admin  
--password=<Wert> Kennwort für den genannten Benutzer. admin  
--duration=<Wert> Dauer der Tests. Kann in Sekunden (s), Minuten (m), Stunden (h) und Tagen (d) angegeben werden. 1d  
--timeout=<Wert> Legt fest, wie lange ein Test ausgeführt wird, bevor er unterbrochen und als fehlgeschlagen markiert wird. In Sekunden angegeben. 180  
--suite=<Wert> Der Wert kann eine oder eine Liste von (durch Kommas voneinander getrennten) vordefinierten Test-Suites sein. toughday  
--configfile=<Wert> Die Ziel-YAML-Konfigurationsdatei.    
--contextpath=<Wert> Kontextpfad der Instanz.    
--loglevel=<Wert> Die Protokollebene für die Tough Day 2-Engine. INFO ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF
--dryrun=<Wert> Bei „true“ wird die resultierende Konfiguration ausgegeben und es werden keine Tests ausgeführt. false true oder false

Anpassung

Die Anpassung erfolgt wahlweise über Befehlszeilenparameter oder YAML-Konfigurationsdateien. Konfigurationsdateien werden in der Regel für umfangreiche angepasste Suites verwendet. Sie überschreiben die Standardparameter von Tough Day 2. Befehlszeilenparameter überschreiben sowohl Konfigurationsdateien als auch Standardparameter.

Die einzige Möglichkeit, eine Testkonfiguration zu speichern, besteht darin, sie in das YAML-Format zu kopieren. Wenn Sie weitere Informationen benötigen, sehen Sie sich diese toughday.yaml-Konfiguration und die YAML-Konfigurationsbeispiele in den folgenden Abschnitten an.

 

 

Hinzufügen eines neuen Tests

Wenn Sie die standardmäßige toughday-Suite nicht verwenden möchten, können Sie mit dem Parameter add einen Test Ihrer Wahl hinzufügen. Die folgenden Beispiele zeigen, wie Sie den Test CreateAssetTreeTest mit Befehlszeilenparametern oder mit einer YAML-Konfigurationsdatei hinzufügen.

Mit Befehlszeilenparametern:

java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest

Mit einer YAML-Konfigurationsdatei:

globals:
  host : localhost
tests:
  - add : CreateAssetTreeTest

Hinzufügen von mehreren Instanzen desselben Tests

Sie können auch mehrere Instanzen desselben Tests hinzufügen und ausführen. Dabei muss jedoch jede Instanz einen eindeutigen Namen aufweisen. Die folgenden Beispiele zeigen, wie Sie zwei Instanzen desselben Tests mit Befehlszeilenparametern oder mit einer YAML-Konfigurationsdatei hinzufügen.

Mit Befehlszeilenparametern:

java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest name=FirstAssetTree --add CreateAssetTreeTest name=SecondAssetTree

Mit einer YAML-Konfigurationsdatei:

globals:
  host : localhost
tests:
  - add : CreateAssetTreeTest
    properties:
      name : FirstAssetTree
  - add : CreateAssetTreeTest
    properties:
      name : SecondAssetTree

Ändern der Testeigenschaften

Wenn Sie eine Testeigenschaft (oder mehrere) ändern müssen, können Sie diese Eigenschaft(en) zur Befehlszeile oder zur YAML-Konfigurationsdatei hinzufügen. Um alle verfügbaren Testeigenschaften anzuzeigen, fügen Sie den Parameter --help <Testklasse/Herausgeberklasse> zur Befehlszeile hinzu, z. B.:

 

java -jar toughday2.jar --help CreatePageTreeTest

Beachten Sie, dass die YAML-Konfigurationsdateien die Standardparameter von Tough Day 2 überschreiben und Befehlszeilenparameter sowohl die Konfigurationsdateien als auch die Standardparameter überschreiben.

Die folgenden Beispiele zeigen, wie Sie die Eigenschaft template für den Test CreatePageTreeTest mit Befehlszeilenparametern oder einer YAML-Konfigurationsdatei ändern.

 

Mit Befehlszeilenparametern:

java -jar toughday2.jar --host=localhost --add CreatePageTreeTest template=/conf/toughday-templates/settings/wcm/templates/toughday-template

Mit einer YAML-Konfigurationsdatei:

globals:
  host : localhost
tests:
  - add : CreatePageTreeTest
    properties:
      template : /conf/toughday-templates/settings/wcm/templates/toughday-template

Arbeiten mit vordefinierten Test-Suites

Die folgenden Beispiele zeigen, wie Sie einen Test zu einer vordefinierten Suite hinzufügen und einen vorhandenen Test neu konfigurieren und aus einer vordefinierten Suite ausschließen.

Um einen neuen Test zu einer vordefinierten Suite hinzuzufügen, verwenden Sie den Parameter add und geben die gewünschte Suite an.

Mit Befehlszeilenparametern:

java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest

Mit einer YAML-Konfigurationsdatei:

globals:
  host : localhost
  suite : toughday
tests:
  - add : CreatePageTreeTest

Sie können vorhandene Tests in einer bestimmten Suite mit dem Parameter config auch neu konfigurieren. Beachten Sie, dass Sie auch den Namen der Suite und den tatsächlichen Namen des Tests (also nicht den Namen der Testklasse) angeben müssen. Den Testnamen finden Sie in der Eigenschaft name der Testklasse. Weitere Informationen zum Finden von Testeigenschaften finden Sie im Abschnitt Ändern von Testeigenschaften.

Im nachfolgenden Beispiel wird der Standardtitel des Assets für den Test CreatePageTreeTest (namens UploadAsset) in „NewAsset“ geändert.

Mit Befehlszeilenparametern:

java -jar toughday2.jar --host=localhost --suite=toughday --config UploadAsset title=NewAsset

Mit einer YAML-Konfigurationsdatei:

globals:
  host : localhost
  suite : toughday
tests:
  - config : UploadAsset
    properties :
      title : NewAsset 

Außerdem können Sie auch Tests aus vordefinierten Suites oder Herausgebern von der Standardkonfiguration entfernen. Dazu dient der Parameter exclude. Beachten Sie, dass Sie auch den Namen der Suite und den tatsächlichen Namen des Tests (also nicht den Namen der Testklasse) angeben müssen. Den Testnamen finden Sie in der Eigenschaft name der Testklasse. Im nachfolgenden Beispiel wird der Test CreatePageTreeTest (namens UploadAsset) von der Tough Day-Suite entfernt.

Mit Befehlszeilenparametern:

java -jar toughday2.jar --host=localhost --suite=toughday --exclude UploadAsset

Mit einer YAML-Konfigurationsdatei:

globals:
  host : localhost
  suite : toughday
tests:
  - exclude : UploadAsset 

Ausführungsmodi

Bei Tough Day 2 stehen zwei Ausführungsmodi zur Verfügung: normal und constant load.

Für den Ausführungsmodus normal gibt es zwei Parameter: 

  • concurrency – Dieser Parameter repräsentiert die Anzahl an Threads, die Tough Day 2 für die Testausführung erstellt. Auf diesen Threads werden die Tests ausgeführt, bis entweder die Dauer abgelaufen ist oder es keine weiteren Tests zur Durchführung mehr gibt.
  • waittime – Dieser Parameter legt die Wartezeit zwischen zwei aufeinanderfolgenden Testausführungen auf demselben Thread fest. Der Wert muss in Millisekunden angegeben werden.

Das folgende Beispiel zeigt, wie Sie die Parameter hinzufügen – mit der Befehlszeile:

java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest --runmode=normal concurrency=20

oder mit einer YAML-Konfigurationsdatei:

runmode:
  type : normal
  waittime : 300
  concurrency : 200

Der Ausführungsmodus constant load unterscheidet sich vom normalen Ausführungsmodus dadurch, dass er eine konstante Anzahl an gestarteten Testausführungen erzeugt statt einer konstanten Zahl an Threads. Sie können die Last über den Ausführungsmodus-Parameter „load“ festlegen. 

Testauswahl

Der Testauswahlvorgang ist bei beiden Ausführungsmodi gleich und läuft wie folgt ab: Alle Tests verfügen über die Eigenschaft weight, die die Wahrscheinlichkeit der Ausführung in einem Thread bestimmt. Wenn es z. B. zwei Tests gibt, einen mit dem „weight“-Wert 5 und einen mit dem „weight“-Wert 10, ist die Wahrscheinlichkeit der Ausführung bei dem Test mit dem Wert 10 doppelt so hoch wie bei dem anderen Test.

Außerdem können Tests die Eigenschaft count aufweisen, die die Anzahl an Ausführungen auf eine bestimmte Zahl einschränkt. Wenn diese Anzahl erreicht ist, finden keine weiteren Testausführungen mehr statt. Alle Testinstanzen, die bereits ausgeführt werden, beenden die Ausführung wie konfiguriert. Das folgende Beispiel zeigt, wie Sie diese Parameter mit der Befehlszeile oder mit einer YAML-Konfigurationsdatei hinzufügen.

 

java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest weight=5 --add CreatePageTreeTest weight=10 count=100 --runmode=normal concurrency=20 

oder

- add : CreateAssetTreeTest
    properties :
      name : UploadAsset
      weight : 5
      base : 3
      foldertitle : IAmAFolder
      assettitle : IAmAnAsset
      count : 100

Hinweis:

Wegen parallel stattfindender Ausführungen entspricht die tatsächliche Anzahl an Testausführungen nicht exakt der Anzahl, die mit dem Parameter count konfiguriert wurde. Rechnen Sie daher mit einer Abweichung, die proportional zur Anzahl der ausgeführten Threads ausfällt (gesteuert durch den Parameter concurrency).

Probelauf

Ein Probelauf analysiert alle Eingaben (Befehlszeilenparameter oder Konfigurationsdateien), führt sie mit den Standardwerten zusammen und gibt die Ergebnisse aus. Er führt keinen Test durch.

java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest --dryrun=true

Ausgabe

Tough Day 2 gibt Testmetriken und -protokolle aus. Weitere Informationen finden Sie in den folgenden Abschnitten.

Testmetriken

Tough Day 2 meldet derzeit neun Testmetriken, die Sie auswerten können. Mit einem Asterisk (*) gekennzeichnete Metriken werden nur nach erfolgreichen Ausführungen gemeldet:

Name Beschreibung
Timestamp Zeitstempel der letzten abgeschlossenen Testausführung
Passed Anzahl an erfolgreichen Ausführungen
Failed Anzahl an fehlgeschlagenen Ausführungen
Min* Kürzeste Dauer der Testausführung
Max* Längste Dauer der Testausführung
Median* Berechnete mittlere Dauer aller Testausführungen
Average* Berechnete durchschnittliche Dauer aller Testausführungen
StdDev* Standardabweichung
90p* 90. Perzentil
99p* 99. Perzentil
99.9p* 99,9. Perzentil
Real Throughput * Anzahl an Ausführungen geteilt durch die verstrichene Ausführungszeit

Diese Metriken werden mithilfe von Herausgebern geschrieben, die mit dem Parameter add hinzugefügt werden können (ähnlich wie beim Hinzufügen von Tests). Aktuell gibt es zwei Optionen:

  • CSVPublisher: Die Ausgabe ist eine CSV-Datei.
  • ConsolePublisher: Die Ausgabe wird in der Konsole angezeigt. 

Standardmäßig werden beide Herausgeber aktiviert.

Zusätzlich gibt es zwei Modi, bei denen die Metriken gemeldet werden: 

  • Der Veröffentlichungsmodus simple meldet die Ergebnisse von Beginn der Ausführung bis zum Zeitpunkt der Veröffentlichung. 
  • Der Veröffentlichungsmodus intervals meldet die Ergebnisse in einem bestimmten Zeitrahmen. Den Zeitrahmen können Sie mit dem Parameter interval des Veröffentlichungsmodus festlegen. 

Das folgende Beispiel zeigt, wie Sie den Parameter intervals mit der Befehlszeile oder mit einer YAML-Konfigurationsdatei konfigurieren.

Mit Befehlszeilenparametern:

java -jar toughday2.jar --host=localhost --add CreatePageTreeTest --publishmode type=intervals interval=10s 

Mit einer YAML-Konfigurationsdatei:

publishmode:
     type : intervals 
     interval : 10s 
     tests: 
        -add : CreatePageTreeTest

Protokollierung

Tough Day 2 erstellt einen Protokollordner im selben Verzeichnis, in dem Sie Tough Day 2 ausgeführt haben. Dieser Ordner enthält zwei Arten von Protokollen:

  • toughday.log: enthält Meldungen zum Anwendungsstatus, Debugging-Informationen und globale Meldungen
  • toughday_<Testname>.log: Meldungen zum genannten Test

Die Protokolle werden nicht überschrieben. Bei nachfolgenden Testausführungen werden Meldungen an die vorhandenen Protokolle angehängt. Für die Protokolle gibt es mehrere Ebenen. Weitere Informationen hierzu finden Sie beim Parameter loglevel.

Anwendungsbeispiel

Bekannte Probleme

Herunterladen

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie