Show Menu
ARGOMENTI×

Giorno Duro

Che cosa è difficile giorno 2

"Tough Day 2" è un’applicazione che consente di sottoporre a stress test i limiti dell’istanza di AEM. Può essere eseguito con la suite di test predefinita oppure può essere configurato in base alle esigenze di test. Potete guardare questa registrazione per una presentazione dell'applicazione.

Come eseguire il giorno difficile 2

Scaricate l'ultima versione di Tough Day 2 dall'archivio Adobe. Dopo aver scaricato l'applicazione, è possibile eseguirla fornendo il host parametro. Nell’esempio seguente, l’istanza di AEM viene eseguita localmente, quindi viene utilizzato il localhost valore:
java -jar toughday2.jar --host=localhost

Viene denominata la suite predefinita che viene eseguita dopo l'aggiunta dei parametri toughday . Contiene i seguenti casi di utilizzo:
  • Creazione di pagine e Live Copy per esse (inclusi i rollout)
  • Get Homepage
  • Eseguire query in querybuilder
  • Creare gerarchie di risorse
  • Eliminare le risorse
La suite contiene azioni di scrittura del 15% e azioni di lettura dell'85%.
Per eseguire i test della suite, Tough Day 2 installerà il pacchetto di contenuto predefinito. Questo può essere evitato impostando il installsamplecontent parametro su false , ma ricordare che è necessario anche modificare i percorsi predefiniti per i test che si intende eseguire. Se il Jar viene eseguito senza parametri, Tough Day 2 visualizza le informazioni della 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]

Tough Day 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

Il Giorno 2 intensivo offre un'ampia gamma di opzioni di aiuto accessibili dalla riga di comando. Esempio:
java -jar toughday2.jar --help_full

Nella tabella seguente sono riportati 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_ests Stampa le classi di test e la relativa descrizione.
—help_full Stampa tutti i componenti di cui sopra, oltre a test, editori e suite.
—help —runmode/publishmode type=<Modalità> Elenca le informazioni sulla modalità di esecuzione o pubblicazione specificata.
java -jar toughday2.jar —help —runmode type=costantload
java -jar toughday2.jar —help —publishmode type=intervalli
—help —suite=<SuiteName> Elenca tutti i test di una determinata suite e le relative proprietà configurabili. java -jar toughday2.jar —help —suite=get_ests
—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

Tough Day 2 offre parametri globali che impostano o modificano l'ambiente per i test. Questi includono l'host di destinazione, il numero della 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

I parametri pertinenti sono elencati di seguito:
Parametro
Descrizione
Valore predefinito
Valori possibili
--installsamplecontent=<Val>
Installate o saltate il pacchetto di contenuto predefinito "Giorno difficile 2".
vero
true o false
--protocol=<Val>
Il protocollo utilizzato per l'host.
Http
http o https
--host=<Val>
Il nome host o l'IP di destinazione.
--port=<Val>
La porta dell'host.
4502
--user=<Val>
Nome utente per l’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>
Il tempo di esecuzione di un test 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 registro per il motore Tough Day 2.
INFO
ALL, DEBUG, INFO, AVVERTENZA, ERRORE, FATTO, OFF
--dryrun=<Val>
Se true, stampa la configurazione risultante e non esegue alcun test.
false
true o false

Personalizzazione

La personalizzazione può essere realizzata 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 ignorano i parametri predefiniti del Giorno 2 Tough. I parametri della riga di comando ignorano sia i file di configurazione che i parametri predefiniti.
L'unico modo per salvare una configurazione di prova è copiarla in formato yaml. Per ulteriori dettagli, consultate questa configurazione hardday.yaml e gli esempi di configurazione dello yaml nelle sezioni seguenti.

Aggiunta di un nuovo test

Se non desiderate utilizzare la toughday suite predefinita potete aggiungere un test di vostra scelta utilizzando il add parametro. Gli esempi seguenti mostrano come aggiungere il CreateAssetTreeTest test utilizzando i parametri della riga di comando o un file di configurazione del modello.
Utilizzando i parametri della riga di comando:
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest

Utilizzando un file di configurazione del modello:
globals:
  host : localhost
tests:
  - add : CreateAssetTreeTest

Aggiunta di più istanze dello stesso test

Potete anche aggiungere ed eseguire più istanze dello stesso test, ma ciascuna di esse 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 del modello.
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 del modello:
globals:
  host : localhost
tests:
  - add : CreateAssetTreeTest
    properties:
      name : FirstAssetTree
  - add : CreateAssetTreeTest
    properties:
      name : SecondAssetTree

Modifica delle proprietà del test

Se è necessario modificare una o più proprietà di test, è possibile aggiungere tale proprietà alla riga di comando o al file di configurazione del modello. Per visualizzare tutte le proprietà di test disponibili, aggiungete il --help <TestClass/PublisherClass> parametro alla riga di comando, ad esempio:
java -jar toughday2.jar --help CreatePageTreeTest

Tenete presente che i file di configurazione dello 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 template proprietà del CreatePageTreeTest test utilizzando i parametri della riga di comando o un file di configurazione del modello.
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 del modello:
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 prestabilita e come riconfigurare ed escludere un test esistente da una suite predefinita.
Potete aggiungere un nuovo test a una suite predefinita utilizzando il add parametro 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 del modello:
globals:
  host : localhost
  suite : toughday
tests:
  - add : CreatePageTreeTest

I test esistenti in una determinata suite possono essere riconfigurati utilizzando il parametro config * *. È inoltre necessario specificare il nome della suite e il nome effettivo del test (non il nome della classe di test). È possibile trovare il nome del test nella name proprietà della classe Test. Per ulteriori dettagli su come trovare le proprietà di test, consultate la sezione Modifica delle proprietà di test.
Nell’esempio riportato di seguito, il titolo predefinito della risorsa per la risorsa CreatePageTreeTest (denominata 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 del modello:
globals:
  host : localhost
  suite : toughday
tests:
  - config : UploadAsset
    properties :
      title : NewAsset

Inoltre, con il exclude parametro potete rimuovere i test da suite o editori predefiniti dalla configurazione predefinita. È inoltre necessario specificare il nome della suite e il nome effettivo del test (non il lass nome del test C). È possibile trovare il nome del test nella name proprietà 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 del modello:
globals:
  host : localhost
  suite : toughday
tests:
  - exclude : UploadAsset

Modalità di esecuzione

Il Giorno 2 duro può essere eseguito in una delle seguenti modalità: carico normale e costante .
La modalità di esecuzione normale ha due parametri:
  • concurrency - la concurrency rappresenta il numero di thread che verrà creato nel Giorno 2 per l'esecuzione del test. Su questi thread, i test verranno eseguiti fino a quando la durata non sarà terminata o non saranno più eseguiti test.
  • waittime - il tempo di attesa tra due esecuzioni di test 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 del modello:
runmode:
  type : normal
  waittime : 300
  concurrency : 200

La modalità di esecuzione del carico ​costante è diversa dalla modalità di esecuzione normale generando un numero costante di esecuzioni di prova avviate, anziché un numero costante di thread. Potete impostare il caricamento utilizzando il parametro della modalità di esecuzione con lo stesso nome.

Selezione test

Il processo di selezione del test è lo stesso per entrambe le modalità di esecuzione ed è il seguente: tutti i test dispongono di una weight proprietà che determina la probabilità di esecuzione in un thread. Ad esempio, se abbiamo due test, uno con un peso di 5 e l'altro con un peso di 10, è probabile che vengano eseguiti due volte di più rispetto al primo.
Inoltre, i test possono avere una count proprietà, che limita il numero di esecuzioni a un dato numero. Dopo il superamento di questo numero, non si verificheranno ulteriori esecuzioni del test. Tutte le istanze di test già in esecuzione termineranno l'esecuzione come configurata. L'esempio seguente mostra come aggiungere questi parametri alla riga di comando o utilizzando un file di configurazione del modello.
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

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

Prova

Una prova a secco analizza tutti i dati immessi (parametri della riga di comando o file di configurazione), unendoli con i valori predefiniti, quindi genera i risultati. Non esegue nessuno dei test.
java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest --dryrun=true

Output

Il Giorno 2 difficile produce sia metriche di test che registri. Per ulteriori dettagli, consultare le sezioni seguenti.

Metriche di test

Il Giorno 2 intensivo attualmente segnala 9 metriche di test misurabili. Le metriche con il simbolo * 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*
Durata minima dell'esecuzione del test.
Max*
Durata massima dell'esecuzione del test.
Mediana*
Durata media calcolata di tutte le esecuzioni del test.
Media*
Durata media calcolata di tutte le esecuzioni del test.
StdDev*
La deviazione standard.
90p*
90 percentile.
99p*
99 percentile.
99,9p*
99,9 percentile.
Throughput reale*
Numero di esecuzioni divise per il tempo di esecuzione trascorso.
Queste metriche vengono scritte con l'aiuto di editori che possono essere aggiunti con il add parametro (in modo simile 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 vengono riportate le metriche:
  • Modalità di pubblicazione semplice : riporta i risultati dall’inizio dell’esecuzione fino al momento della pubblicazione.
  • Modalità di pubblicazione a intervalli : i risultati vengono riportati in un determinato intervallo di tempo. Potete impostare l’intervallo di tempo con il parametro della modalità di pubblicazione dell’ intervallo .
L'esempio seguente mostra come configurare il intervals parametro alla riga di comando o utilizzando un file di configurazione del modello.
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 del modello:
publishmode:
     type : intervals
     interval : 10s
     tests:
        -add : CreatePageTreeTest

Registrazione

Tough Day 2 crea una cartella di file di registro nella stessa directory in cui hai eseguito Tough Day 2. Questa cartella contiene due tipi di file di registro:
  • 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 aggiungeranno messaggi ai registri esistenti. I file di registro hanno diversi livelli. Per ulteriori informazioni, consulta [loglevel parameter](/help/sites-developing/tough-day.md#global-parameters) .

Esempio di utilizzo

Problemi noti