Show Menu
THEMEN×

Tough Day

Was ist Tough Day 2?

Tag 2 ist eine Anwendung, mit der Sie die Grenzen Ihrer AEM-Instanz testen 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. After you download the application, you can run it out of the box by providing the host parameter. In the following example, the AEM instance runs locally so the localhost value is used:
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. This can be avoided by setting the installsamplecontent parameter to false , but remember that you should also change the default paths for the tests that you intend to run. If the jar is run without parameters, Tough Day 2 displays the help information .
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]

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 Beispiel
--help Druckt globale Informationen aus, z. B.: die verfügbaren Aktionen, vordefinierten Suites, Ausführungsmodi und globalen Parameter.
—help_publish Druckt alle verfügbaren Herausgeber aus.
—help_tests Druckt die Testklassen und ihre Beschreibung.
—help_full Druckt alle oben genannten Elemente sowie Tests, Herausgeber und Suite-Komponenten.
—help —runmode/publishmode type=<mode> Listet Informationen zum angegebenen Ausführungsmodus oder Veröffentlichungsmodus auf.
java -jar toughday2.jar —help —runmode type=conantload
java -jar toughday2.jar —help —publishmode type=interval
—help —suite=<SuiteName> Listet alle Tests einer angegebenen Suite und deren jeweilige konfigurierbare Eigenschaften auf. java -jar toughday2.jar —help —suite=get_tests
—help —tag=<Tag> Listet alle Elemente mit dem angegebenen Tag auf. java -jar toughday2.jar —help —tag=publish
—help <TestClass/PublisherClass> Listet alle konfigurierbaren Eigenschaften für den jeweiligen 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=<Val>
Installieren oder überspringen Sie das Standard-Inhaltspaket für Tag 2.
true
„true“ oder „false“
--protocol=<Val>
Das für den Host verwendete Protokoll.
http
http oder https
--host=<Val>
Der Hostname oder die IP-Adresse, die als Ziel verwendet werden soll.
--port=<Val>
Der Anschluss des Hosts.
4502
--user=<Val>
Der Benutzername für die Instanz.
admin
--password=<Val>
Kennwort für den angegebenen Benutzer.
admin
--duration=<Val>
Dauer der Tests. Can be expressed in ( s )econds, ( m )inutes, ( h )ours and ( d )ays.
1d
--timeout=<Val>
Wie lange ein Test ausgeführt wird, bevor er unterbrochen und als fehlgeschlagen markiert wird. In Sekunden angegeben.
180
--suite=<Val>
Der Wert kann eine oder eine Liste (durch Kommas getrennt) vordefinierter Test Suites sein.
toughday
--configfile=<Val>
Die zielgerichtete yaml-Konfigurationsdatei.
--contextpath=<Val>
Kontextpfad der Instanz.
--loglevel=<Val>
Die Protokollierungsstufe für die Tough Day 2-Engine.
INFO
ALL, DEBUG, INFO, WARN, FEHLER, FATAL, AUS
--dryrun=<Val>
Wenn "true", wird die resultierende Konfiguration gedruckt 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. For additional details, see this toughday.yaml configuration and the yaml configuration examples in the sections below.

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. To see all the available test properties add the --help <TestClass/PublisherClass> parameter to the command line, for example:
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.
The examples below show how to change the template property for the CreatePageTreeTest test either by using either command line parameters or a yaml configuration file.
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

Existing tests in a given suite can also be reconfigured using the config * *parameter. Bitte beachten Sie, dass Sie auch den Namen der Suite und den tatsächlichen Namen des Tests angeben müssen (nicht den Namen der Testklasse). Den Testnamen finden Sie in der Eigenschaft name der Testklasse. Weitere Informationen zum Finden von Testeigenschaften finden Sie im Abschnitt Ändern von Testeigenschaften .
In the example below the default asset title for the CreatePageTreeTest (named UploadAsset ) is changed to "NewAsset".
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 . Please note that you must also specify the suite name and the actual name of the test (not the Test C lass name). You can find the test name in the name property of the test class. In the example below, the CreatePageTreeTest (named UploadAsset ) test is removed from the toughday suite.
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

Tough Day 2 can run in one of the following modes: normal and constant load .
The normal run mode has two parameters:
  • concurrency - Parallelität stellt die Anzahl der Threads dar, die Tough Day 2 zur Testausführung erstellen wird. 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

The constant load run mode differs from the normal run mode by generating a constant number of started test executions, rather than a constant number of threads. Sie können die Last mit dem Parameter run mode mit demselben Namen festlegen.

Testauswahl

The test selection process is the same for both run modes and it goes as follows: all tests have a weight property, which determines the likelihood of execution in a thread. 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.
Furthermore, tests can have a count property, which limits the number of executions to a given number. 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 ermöglichen.
- add : CreateAssetTreeTest
    properties :
      name : UploadAsset
      weight : 5
      base : 3
      foldertitle : IAmAFolder
      assettitle : IAmAnAsset
      count : 100

Due to parallel executions, the actual number of test runs will not be exactly the amount configured in the count parameter. Expect a deviation proportional to the number of running threads (controlled by the concurrency parameter ).

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. Metriken mit &ast; -Symbol nur nach erfolgreicher Ausführung gemeldet werden:
Name
Beschreibung
Timestamp
Zeitstempel des letzten abgeschlossenen Testlaufs.
Bestanden
Anzahl der erfolgreichen Ausführung.
Fehlgeschlagen
Anzahl der fehlgeschlagenen Ausführung.
Min&ast;
Niedrigste Dauer der Testausführung.
Max&ast;
Höchstdauer der Testausführung.
Median&ast;
Berechnete mittlere Dauer aller Testausführungen.
Average&ast;
Berechnete durchschnittliche Dauer aller Testausführungen.
StdDev&ast;
Die Standardabweichung.
90p&ast;
90 Perzentil.
99p&ast;
99 Perzentil.
99.9p&ast;
99,9 Perzentil.
Real Throughput & amp;ast;
Anzahl der Ausführung geteilt durch die verstrichene Ausführungszeit.
These metrics are written with the help of publishers that can be added with the add parameter (similarly to adding 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:
  • The simple publish mode - reports the results from the beginning of the execution up to the point of publishing.
  • The intervals publish mode - reports the results in a given time frame. You can set the time frame with the interval publish mode parameter.
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. The logs have several levels, for more information see the [loglevel parameter](/help/sites-developing/tough-day.md#global-parameters) .