艱苦的一天 tough-day
何謂艱難的第2天 what-is-tough-day
「艱難第2天」應用程式可讓您對AEM執行個體的限制進行壓力測試。 您可以立即使用預設的測試套件執行此檔案,也可以根據您的測試需求進行設定。 您可以觀看 此錄製 以取得應用程式的簡報。
如何執行艱難的第2天 how-to-run-tough-day
從以下網站下載最新版《艱難第2天》: Adobe存放庫. 下載應用程式後,您可以提供 host
引數。 在以下範例中,AEM執行個體會在本機執行,因此 localhost
使用的值:
java -jar toughday2.jar --host=localhost
新增引數後執行的預設套裝命名為 toughday
. 它包含下列使用案例:
- 為其建立頁面和即時副本(包括轉出)
- 取得首頁
- 在querybuilder中執行查詢
- 建立資產階層
- 刪除資產
該套裝包含15%的寫入動作和85%的讀取動作。
若要執行套裝測試,「艱難第2天」將會安裝其預設內容套件。 可藉由設定 installsamplecontent
引數至 false
,但請記住,您也應該變更要執行測試的預設路徑。 如果jar是在沒有引數的情況下執行,「第2天」會顯示 說明資訊.
一般而言,您可以遵循此模式來使用應用程式:
java -jar toughday2.jar [--help | --help_full | --help_tests | --help_publish] [<global arguments> | <actions> | --runmode | --publishmode]
取得協助 getting-help
「困難的第2天」提供多種從命令列存取的說明選項。 例如:
java -jar toughday2.jar --help_full
在下表中,您可以找到相關的說明引數。
全域引數 global-parameters
強悍的第2天提供設定或變更測試環境的全域引數。 這些包括目標主機、連線埠號碼、使用的通訊協定、執行個體的使用者和密碼等等。 例如:
java -jar toughday2.jar --host=host --protocol=https --port=4502 --duration=30m --dryrun=true
您可以在下列清單中找到相關引數:
--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>
自訂 customizing
可透過兩種方式實現自訂:命令列引數或yaml組態檔。 設定檔案用於大型自訂套件,可覆寫「艱難第2天」預設引數。 命令列引數會覆寫組態檔和預設引數。
儲存測試設定的唯一方法是以yaml格式複製它。
新增測試 adding-a-new-test
如果您不想使用預設值 toughday
套件:您可以使用 add
引數。 以下範例說明如何新增 CreateAssetTreeTest
使用命令列引數或yaml組態檔進行測試。
使用命令列引數:
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest
使用yaml組態檔:
globals:
host : localhost
tests:
- add : CreateAssetTreeTest
新增相同測試的多個執行個體 adding-multiple-instances-of-the-same-test
您也可以新增並執行相同測試的多個執行個體,但每個執行個體都必須有唯一的名稱。 以下範例說明如何使用命令列引數或yaml組態檔來新增相同測試的兩個執行個體。
使用命令列引數:
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest name=FirstAssetTree --add CreateAssetTreeTest name=SecondAssetTree
使用yaml組態檔:
globals:
host : localhost
tests:
- add : CreateAssetTreeTest
properties:
name : FirstAssetTree
- add : CreateAssetTreeTest
properties:
name : SecondAssetTree
變更測試屬性 changing-the-test-properties
如果您需要變更一個或多個測試屬性,可以將該屬性新增到命令列或yaml組態檔。 若要檢視所有可用的測試屬性,請新增 --help <TestClass/PublisherClass>
引數到命令列,例如:
java -jar toughday2.jar --help CreatePageTreeTest
請記住,yaml組態檔將覆寫「Touch Day 2」預設引數,而命令列引數將覆寫組態檔和預設值。
以下範例說明如何變更 template
的屬性 CreatePageTreeTest
使用命令列引數或yaml組態檔進行測試。
使用命令列引數:
java -jar toughday2.jar --host=localhost --add CreatePageTreeTest template=/conf/toughday-templates/settings/wcm/templates/toughday-template
使用yaml組態檔:
globals:
host : localhost
tests:
- add : CreatePageTreeTest
properties:
template : /conf/toughday-templates/settings/wcm/templates/toughday-template
使用預先定義的測試套裝 working-with-predefined-test-suites
以下範例說明如何將測試新增至預先定義的套裝,以及如何重新設定並從預先定義的套裝中排除現有的測試。
您可以使用將測試新增至預先定義的套件 add
引數並指定目標預先定義的套件。
使用命令列引數:
java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest
使用yaml組態檔:
globals:
host : localhost
suite : toughday
tests:
- add : CreatePageTreeTest
指定套件中的現有測試也可以使用重新設定 config
* *引數。 同時指定套裝名稱和測試的實際名稱(而不是「測試類別」名稱)。 您可以在以下位置找到測試名稱: name
測試類別的屬性。 如需如何尋找測試屬性的詳細資訊,請參閱 變更測試屬性 區段。
在以下範例中,的預設資產標題 CreatePageTreeTest
(已命名 UploadAsset
)變更為「NewAsset」。
使用命令列引數:
java -jar toughday2.jar --host=localhost --suite=toughday --config UploadAsset title=NewAsset
使用yaml組態檔:
globals:
host : localhost
suite : toughday
tests:
- config : UploadAsset
properties :
title : NewAsset
此外,您也可以使用,從預設設定中移除預先定義的套裝或發佈程式測試。 exclude
引數。 同時指定套裝名稱和測試的實際名稱(不是測試C) lass
名稱)。 您可以在以下位置找到測試名稱: name
測試類別的屬性。 在以下範例中, CreatePageTreeTest
(已命名 UploadAsset
)測試已從toughday套裝中移除。
使用命令列引數:
java -jar toughday2.jar --host=localhost --suite=toughday --exclude UploadAsset
使用yaml組態檔:
globals:
host : localhost
suite : toughday
tests:
- exclude : UploadAsset
執行模式 run-modes
強悍的第2天可以下列其中一個模式執行: 一般 和 恆定負載.
此 一般 執行模式有兩個引數:
-
concurrency
- concurrency代表「艱難第2天」將為測試執行建立的對話串數目。 在這些執行緒上,將會執行測試,直到持續時間耗盡或沒有更多要執行的測試為止。 -
waittime
— 相同執行緒上兩個連續測試執行之間的等待時間。 值必須以毫秒為單位表示。
以下範例說明如何使用命令列新增引數:
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest --runmode=normal concurrency=20
或使用yaml組態檔:
runmode:
type : normal
waittime : 300
concurrency : 200
此 恆定負載 執行模式與一般執行模式不同,會產生固定數量的已啟動測試執行,而不是固定數量的執行緒。 您可以使用同名的執行模式引數來設定負載。
測試選取範圍 test-selection
兩種執行模式的測試選取程式都相同,如下所示:所有測試都有 weight
屬性,判斷執行緒中執行的可能性。 例如,如果您有兩個測試,一個具有5的權重,另一個具有10的權重,則後者比前者執行的可能性高兩倍。
此外,測試可以有 count
屬性,將執行次數限制在給定數字。 通過此數字後,不會再執行測試。 所有已在執行的測試執行個體都會依照設定完成執行。 下列範例說明如何在命令列或使用yaml組態檔新增這些引數。
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest weight=5 --add CreatePageTreeTest weight=10 count=100 --runmode=normal concurrency=20
或
- add : CreateAssetTreeTest
properties :
name : UploadAsset
weight : 5
base : 3
foldertitle : IAmAFolder
assettitle : IAmAnAsset
count : 100
count
引數。 預期與執行中執行緒數量成比例的偏差(由 concurrency parameter
)。試執行 dry-run
試執行會剖析所有指定的輸入(命令列引數或組態檔),將其與預設值合併,然後輸出結果。 它不會執行任何測試。
java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest --dryrun=true
輸出 output
「艱難第2天」會輸出測試量度和記錄。 如需詳細資訊,請閱讀以下章節。
測試量度 test-metrics
「艱難第2天」目前報告九個您可以評估的測試量度。 包含的量度 * 符號只會在成功執行後報告:
這些量度是在發行者的協助下撰寫,可透過以下方式新增: add
引數(與新增測試類似)。 目前有兩個選項:
- CSVPublisher — 輸出為CSV檔案。
- ConsolePublish — 主控台中會顯示輸出。
依預設,兩個發佈程式都會啟用。
此外,有兩種模式可報告量度:
- 此 簡單 發佈模式 — 報告從執行開始到發佈時的結果。
- 此 間隔 發佈模式 — 在指定的時間範圍內報告結果。 您可以使用以下設定時間範圍 間隔 發佈模式引數。
下列範例顯示如何設定 intervals
引數,可在命令列上使用,或使用yaml組態檔案使用。
使用命令列引數:
java -jar toughday2.jar --host=localhost --add CreatePageTreeTest --publishmode type=intervals interval=10s
使用yaml組態檔:
publishmode:
type : intervals
interval : 10s
tests:
-add : CreatePageTreeTest
記錄 logging
「艱難第2天」會在您執行「艱難第2天」的同一個目錄中建立一個記錄檔資料夾。 此資料夾包含兩種型別的記錄:
- toughday.log:包含與應用程式狀態、偵錯資訊和全域訊息相關的訊息。
- toughday_<testname>.log:與指定測試相關的訊息。
不會覆寫記錄,後續執行會將訊息附加至現有記錄。 記錄有數個層級,如需詳細資訊,請參閱 loglevel引數。.