Giorno duro

Che cosa è il giorno 2

Tough Day 2 è un'applicazione che ti consente di testare allo stress i limiti della tua istanza AEM. Può essere eseguito con la suite di test predefinita oppure può essere configurato per soddisfare le tue esigenze di test. È possibile guardare questa registrazione per una presentazione dell'applicazione.

Come eseguire Tough Day 2

Scarica la versione più recente di Tough Day 2 dal Adobe Repository. Dopo aver scaricato l'applicazione, è possibile eseguirla fuori dalla casella fornendo il parametro host . Nell'esempio seguente, l'istanza AEM viene eseguita localmente in modo che venga utilizzato il valore localhost :

java -jar toughday2.jar --host=localhost

La suite predefinita che viene eseguita dopo l’aggiunta dei parametri è denominata toughday. Contiene i seguenti casi d’uso:

  • Creare pagine e Live Copy per esse (inclusi i rollout)
  • Pagina principale
  • Esegui query in querybuilder
  • Creare gerarchie di risorse
  • Eliminare le risorse

La suite contiene 15% azioni di scrittura e 85% azioni di lettura.

Per eseguire i test della suite, Tough Day 2 installerà il suo pacchetto di contenuti predefinito. Per evitare questo problema, impostare il parametro installsamplecontent su false, ma tenere presente che è necessario modificare anche i percorsi predefiniti per i test che si intende eseguire. Se il jar viene eseguito senza parametri, nel Giorno 2 vengono visualizzate le informazioni della Guida a1/>.

Come regola generale, è possibile utilizzare l'applicazione seguendo questo pattern:

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

Il Duro Giorno 2 non ha un passo di pulizia. Di conseguenza, si consiglia di eseguire Tough Day 2 su un'istanza di staging clonata e non sull'istanza di produzione principale. L'istanza di staging deve essere eliminata dopo i test.

Assistenza

Tough Day 2 offre un'ampia gamma di opzioni di aiuto accessibili dalla riga di comando. Esempio:

java -jar toughday2.jar --help_full

Nella tabella seguente, puoi trovare i parametri della guida pertinenti.

Parametro Descrizione Esempio
--aiuto Stampa informazioni globali, ad esempio: le azioni disponibili, le suite predefinite, le modalità di esecuzione e i parametri globali.
—help_publish Stampa tutti gli editori disponibili.
—help_test Stampa le classi di test e la relativa descrizione.
—help_full Stampa tutti gli elementi di cui sopra, oltre a test, editori e componenti della suite.
—help —runmode/publishmode type=<Mode> Elenca informazioni sulla modalità di esecuzione o pubblicazione specificata.

java -jar toughday2.jar —help —runmode type=costantload

java -jar toughday2.jar —help —publishmode type=ranges

—help —suite=<SuiteName> Elenca tutti i test di una determinata suite e le relative proprietà configurabili.
java -jar toughday2.jar —help —suite=get_test
—help —tag=<Tag>
Elenca tutti gli elementi con il tag specificato.
java -jar toughday2.jar —help —tag=publish
—help <TestClass/PublisherClass>
Elenca tutte le proprietà configurabili per il test o l'editore specificato.

java -jar toughday2.jar —help UploadPDFTest

java -jar toughday2.jar —help CSVPublisher

Parametri globali

Il Dough Day 2 offre parametri globali che impostano o modificano l’ambiente per i test. Questi includono l'host di destinazione, il numero di porta, il protocollo utilizzato, l'utente e la password per l'istanza e molti altri. Esempio:

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

Puoi trovare i parametri rilevanti nell’elenco seguente:

Parametro Descrizione Valore predefinito Valori possibili
--installsamplecontent=<Val> Installa o ignora il pacchetto di contenuto predefinito Tough Day 2. vero true o false
--protocol=<Val> Il protocollo utilizzato per l'host. Http http o https
--host=<Val> Nome host o IP di destinazione.
--port=<Val> La porta dell'host. 4502
--user=<Val> Il nome utente dell'istanza. admin
--password=<Val> Password per l'utente specificato. admin
--duration=<Val> Durata delle prove. Può essere espresso in (s)secondi, (m)minuti, (h)ore e (d)giorni. 1d
--timeout=<Val> Per quanto tempo un test verrà eseguito prima che venga interrotto e contrassegnato come non riuscito. Espresso in secondi. 180
--suite=<Val> Il valore può essere uno o un elenco (separato da virgole) di suite di test predefinite. giorno difficile
--configfile=<Val> Il file di configurazione dello yaml di destinazione.
--contextpath=<Val> Percorso del contesto dell'istanza.
--loglevel=<Val> Livello di log per il motore Tough Day 2. INFO TUTTO, DEBUG, INFORMAZIONI, AVVERTENZA, ERRORE, GRASSETTO, DISATTIVATO
--dryrun=<Val> Se true, stampa la configurazione risultante e non esegue alcun test. false true o false

Personalizzazione di

La personalizzazione può essere ottenuta in due modi: parametri della riga di comando o file di configurazione dello stile. I file di configurazione vengono generalmente utilizzati per le suite personalizzate di grandi dimensioni e sostituiranno i parametri predefiniti del Giorno 2 difficile. I parametri della riga di comando sostituiscono sia i file di configurazione che i parametri predefiniti.

L’unico modo per salvare una configurazione di test è copiarla in formato yaml. Per ulteriori dettagli, consulta questa configurazione toughday.yaml e gli esempi di configurazione dello yaml nelle sezioni seguenti.

Aggiunta di un nuovo test

Se non desideri utilizzare la suite toughday predefinita, puoi aggiungere un test scegliendo utilizzando il parametro add . Gli esempi seguenti mostrano come aggiungere il test CreateAssetTreeTest utilizzando i parametri della riga di comando o un file di configurazione dello stile.

Utilizzando i parametri della riga di comando:

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

Utilizzando un file di configurazione yaml:

globals:
  host : localhost
tests:
  - add : CreateAssetTreeTest

Aggiunta di più istanze dello stesso test

Puoi anche aggiungere ed eseguire più istanze dello stesso test, ma ogni istanza deve avere un nome univoco. Gli esempi seguenti mostrano come aggiungere due istanze dello stesso test utilizzando i parametri della riga di comando o un file di configurazione dello stile.

Utilizzando i parametri della riga di comando:

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

Utilizzando un file di configurazione yaml:

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

Modifica delle proprietà del test

Nel caso sia necessario modificare una o più proprietà di test, è possibile aggiungere tale proprietà alla riga di comando o al file di configurazione dello stile. Per visualizzare tutte le proprietà di test disponibili, aggiungi il parametro --help <TestClass/PublisherClass> alla riga di comando, ad esempio:

java -jar toughday2.jar --help CreatePageTreeTest

Tieni presente che i file di configurazione yaml sovrascriveranno i parametri predefiniti di Tough Day 2 e i parametri della riga di comando sovrascriveranno sia i file di configurazione che i valori predefiniti.

Gli esempi seguenti mostrano come modificare la proprietà template per il test CreatePageTreeTest utilizzando i parametri della riga di comando o un file di configurazione yaml.

Utilizzando i parametri della riga di comando:

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

Utilizzando un file di configurazione yaml:

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

Utilizzo di suite di test predefinite

Gli esempi seguenti mostrano come aggiungere un test a una suite predefinita e come riconfigurare ed escludere un test esistente da una suite predefinita.

Puoi aggiungere un nuovo test a una suite predefinita utilizzando il parametro add e specificando la suite predefinita di destinazione.

Utilizzando i parametri della riga di comando:

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

Utilizzando un file di configurazione yaml:

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

È inoltre possibile riconfigurare i test esistenti in una determinata suite utilizzando il parametro config* *. È inoltre necessario specificare il nome della suite e il nome effettivo del test (non il nome della classe di test). Puoi trovare il nome del test nella proprietà name della classe di test. Per ulteriori dettagli su come trovare le proprietà di test, consulta la sezione Modifica delle proprietà di test .

Nell’esempio seguente il titolo della risorsa predefinita per CreatePageTreeTest (denominato UploadAsset) viene modificato in "NewAsset".

Utilizzando i parametri della riga di comando:

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

Utilizzando un file di configurazione yaml:

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

Inoltre, è possibile rimuovere i test da suite o editori predefiniti dalla configurazione predefinita utilizzando il parametro exclude . È inoltre necessario specificare il nome della suite e il nome effettivo del test (non il nome del test C lass). Puoi trovare il nome del test nella proprietà name della classe test. Nell’esempio seguente, il test CreatePageTreeTest (denominato UploadAsset) viene rimosso dalla suite per giorni difficili.

Utilizzando i parametri della riga di comando:

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

Utilizzando un file di configurazione yaml:

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

Modalità di esecuzione

Il Dough Day 2 può essere eseguito in una delle seguenti modalità: normale e carico costante.

La modalità di esecuzione normale ha due parametri:

  • concurrency - concurrency rappresenta il numero di thread che verranno creati per l'esecuzione del test con il Tough Day 2. Su questi thread, i test verranno eseguiti fino a quando non viene eseguita la durata o non sono disponibili altri test da eseguire.

  • waittime - il tempo di attesa tra due esecuzioni di prova consecutive sullo stesso thread. Il valore deve essere espresso in millisecondi.

L’esempio seguente mostra come aggiungere i parametri utilizzando una riga di comando:

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

o utilizzando un file di configurazione yaml:

runmode:
  type : normal
  waittime : 300
  concurrency : 200

La modalità di esecuzione a carico costante differisce dalla modalità di esecuzione normale generando un numero costante di esecuzioni di test avviate, anziché un numero costante di thread. Puoi impostare il caricamento utilizzando il parametro della modalità di esecuzione con lo stesso nome.

Selezione del test

Il processo di selezione del test è lo stesso per entrambe le modalità di esecuzione ed è il seguente: tutti i test dispongono di una proprietà weight che determina la probabilità di esecuzione in un thread. Ad esempio, se disponiamo di due test, uno con un peso di 5 e l'altro con un peso di 10, è due volte più probabile che vengano eseguiti rispetto al primo.

Inoltre, i test possono avere una proprietà count che limita il numero di esecuzioni a un determinato numero. Una volta superato questo numero, non si verificheranno più esecuzioni del test. Tutte le istanze di test già in esecuzione termineranno l'esecuzione come configurato. L'esempio seguente mostra come aggiungere questi parametri alla riga di comando o utilizzando un file di configurazione yaml.

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

o

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

A causa di esecuzioni parallele, il numero effettivo di esecuzioni di test non sarà esattamente la quantità configurata nel parametro count . Si prevede una deviazione proporzionale al numero di thread in esecuzione (controllati da concurrency parameter).

Prova

Un'esecuzione a secco analizza tutti gli input (parametri della riga di comando o file di configurazione), unendoli con i valori predefiniti e quindi genera i risultati. Non esegue nessuno dei test.

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

Output

Il Dough Day 2 restituisce sia le metriche di test che i registri. Per ulteriori dettagli, consulta le sezioni seguenti.

Metriche di test

Al momento il "Dough Day 2" indica 9 metriche di test che puoi valutare. Le metriche con il simbolo &ast; vengono riportate solo dopo l'esecuzione corretta:

Nome Descrizione
Timestamp Timestamp dell'ultima esecuzione del test completata.
Passato Numero di esecuzioni riuscite.
Non riuscito Numero di esecuzioni non riuscite.
Min&ast; Durata inferiore dell’esecuzione del test.
Max&ast; Durata massima dell’esecuzione del test.
Median&ast; Durata media calcolata di tutte le esecuzioni dei test.
Media&ast; Durata media calcolata di tutte le esecuzioni dei test.
StdDev&ast; La deviazione standard.
90p&ast; 90 percentile.
99p&ast; 99 percentile.
99.9p&ast; 99,9 percentile.
Throughput reale &ast; Numero di esecuzioni diviso per il tempo di esecuzione trascorso.

Queste metriche vengono scritte con l’aiuto degli editori che possono essere aggiunte con il parametro add (in modo analogo all’aggiunta di test). Al momento sono disponibili due opzioni:

  • CSVPublisher - l'output è un file CSV.
  • ConsolePublisher : l'output viene visualizzato nella console.

Per impostazione predefinita, entrambi gli editori sono abilitati.

Inoltre, esistono due modalità in cui le metriche vengono riportate:

  • La modalità di pubblicazione semplice riporta i risultati dall'inizio dell'esecuzione fino al momento della pubblicazione.
  • La modalità di pubblicazione Intervalli riporta i risultati in un determinato intervallo di tempo. È possibile impostare l'intervallo di tempo con il parametro della modalità di pubblicazione Interval .

L'esempio seguente mostra come configurare il parametro intervals nella riga di comando o utilizzando un file di configurazione yaml.

Utilizzando i parametri della riga di comando:

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

Utilizzando un file di configurazione yaml:

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

Registrazione

Tough Day 2 crea una cartella di log nella stessa directory in cui è stato eseguito Tough Day 2. Questa cartella contiene due tipi di registri:

  • toughday.log: contiene messaggi relativi allo stato dell'applicazione, alle informazioni di debug e ai messaggi globali.
  • toughday_<testname>.log: messaggi relativi al test specificato.

I registri non vengono sovrascritti, le esecuzioni successive aggiungono messaggi ai registri esistenti. I registri hanno diversi livelli. Per ulteriori informazioni, consulta [loglevel parameter](/docs/experience-manager-64/sites-developing/tough-day.md#global-parameters).

In questa pagina