Giorno difficile tough-day
Che cosa è difficile il giorno 2 what-is-tough-day
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. Puoi guardare questa registrazione per la presentazione della domanda.
Come eseguire Tough Day 2 how-to-run-tough-day
Scarica l'ultima versione di Tough Day 2 dal Archivio Adobe. Dopo aver scaricato l'applicazione, è possibile eseguirla automaticamente fornendo host
parametro . Nell'esempio seguente, l'istanza AEM viene eseguita localmente in modo che il localhost
viene utilizzato il valore:
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 questa situazione, imposta la variabile installsamplecontent
parametro a false
, ma ricorda che è necessario modificare anche i percorsi predefiniti per i test che intendi eseguire. Se il barattolo viene eseguito senza parametri, nel Giorno 2 viene visualizzato il valore informazioni sulla guida.
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]
Aiuto getting-help
Tough Day 2 offre un'ampia gamma di opzioni di aiuto accessibili dalla riga di comando. Ad esempio:
java -jar toughday2.jar --help_full
Nella tabella seguente, puoi trovare i parametri della guida pertinenti.
Parametri globali global-parameters
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. Ad esempio:
java -jar toughday2.jar --host=host --protocol=https --port=4502 --duration=30m --dryrun=true
Puoi trovare i parametri rilevanti nell’elenco seguente:
--installsamplecontent=<Val>
--protocol=<Val>
--host=<Val>
--port=<Val>
--user=<Val>
--password=<Val>
--duration=<Val>
--timeout=<Val>
--suite=<Val>
--configfile=<Val>
--contextpath=<Val>
--loglevel=<Val>
--dryrun=<Val>
Personalizzazione customizing
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 giorno.yaml configurazione e gli esempi di configurazione dello schema nelle sezioni seguenti.
Aggiunta di un nuovo test adding-a-new-test
Se non desideri utilizzare il valore predefinito toughday
puoi aggiungere un test a tua scelta utilizzando la add
parametro . Gli esempi seguenti mostrano come aggiungere CreateAssetTreeTest
eseguire il test 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 CreateAssetTreeTest
Utilizzando un file di configurazione yaml:
globals:
host : localhost
tests:
- add : CreateAssetTreeTest
Aggiunta di più istanze dello stesso test adding-multiple-instances-of-the-same-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 changing-the-test-properties
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 la --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 il template
per CreatePageTreeTest
eseguire il test 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 working-with-predefined-test-suites
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 add
e specifica 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
I test esistenti in una determinata suite possono essere riconfigurati utilizzando config
* *parametro. È 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 name
della classe di test. Per ulteriori dettagli su come trovare le proprietà di test, consulta il Modifica delle proprietà del test sezione .
Nell’esempio sotto 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 exclude
parametro . È inoltre necessario specificare il nome della suite e il nome effettivo del test (non il Test C) lass
nome). Puoi trovare il nome del test nella name
della classe test. Nell’esempio seguente, la 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 run-modes
Il Dough Day 2 può essere eseguito in una delle seguenti modalità: normale e carico costante.
La normale la modalità di esecuzione 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 carico costante la modalità di esecuzione 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 test-selection
Il processo di selezione del test è lo stesso per entrambe le modalità di esecuzione ed è il seguente: tutte le prove hanno 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 un count
, che limita il numero di esecuzioni a un numero specifico. 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
oppure
- add : CreateAssetTreeTest
properties :
name : UploadAsset
weight : 5
base : 3
foldertitle : IAmAFolder
assettitle : IAmAnAsset
count : 100
count
parametro . Si prevede una deviazione proporzionale al numero di thread in esecuzione (controllati dal concurrency parameter
).Prova dry-run
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 output
Il Dough Day 2 restituisce sia le metriche di test che i registri. Per ulteriori dettagli, consulta le sezioni seguenti.
Metriche di test test-metrics
Al momento il "Dough Day 2" indica 9 metriche di test che puoi valutare. Metriche con * i simboli vengono segnalati solo dopo l'esecuzione corretta:
Queste metriche vengono scritte con l’aiuto degli editori che possono essere aggiunti con add
(simile all’aggiunta di test). Al momento sono disponibili due opzioni:
- CSVPublisher - l’output è un file CSV.
- ConsoleEditore - 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 semplice modalità di pubblicazione : riporta i risultati dall’inizio dell’esecuzione al momento della pubblicazione.
- La intervalli modalità di pubblicazione : riporta i risultati in un intervallo di tempo specificato. È possibile impostare l'intervallo di tempo con il intervallo parametro della modalità di pubblicazione.
L’esempio seguente mostra come configurare il 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 logging
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.
- giorni difficili_<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 la sezione [loglevel parameter](/docs/experience-manager-64/developing/testing/tough-day.md#global-parameters)
.