艱難的一天

艱難的一天2

Tough Day 2是一套應用程式,可讓您壓力測試AEM執行個體的限制。 它可在預設測試套裝的包裝盒內執行,或是設定成符合您的測試需求。 您可以觀看此錄制以呈現應用程式。

如何執行艱難日2

Adobe Repository下載Tough Day 2的最新版本。 下載應用程式後,您就可以透過提供host參數,立即執行。 在下列範例中,AEM例項會在本機執行,因此會使用localhost值:

java -jar toughday2.jar --host=localhost

新增參數後執行的預設套裝名為toughday。 它包含下列使用案例:

  • 為其建立頁面和即時副本(包括展示)
  • 取得首頁
  • 在querybuilder中執行查詢
  • 建立資產階層
  • 刪除資產

套件包含15%的寫入動作和85%的讀取動作。

若要執行套裝測試,Tough Day 2將安裝其預設內容套件。 若要避免此問題,請將installsamplecontent參數設為false,但請記住,您也應變更您要執行之測試的預設路徑。 如果jar在沒有參數的情況下運行,則Tough Day 2將顯示幫助資訊

一般而言,您可依下列模式使用應用程式:

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

艱難的第2天沒有清理的步驟。 因此,建議在複製的測試執行個體上執行Tough Day 2,而不是在主生產執行個體上。 測試後應刪除測試例項。

獲取幫助

Thugh Day 2提供多種說明選項,可從命令列存取。 例如:

java -jar toughday2.jar --help_full

在下表中,您可以找到相關的說明參數。

參數 說明 範例
--說明 打印全局資訊,例如:可用動作、預先定義的套件、執行模式和全域參數。
—help_publish 列印所有可用的發行者。
—help_tests 打印測試類及其說明。
—help_full 列印上述所有功能,以及測試、發佈器和套件元件。
—help —runmode/publishmode type=<Mode> 列出有關指定運行或發佈模式的資訊。

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

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

—help —suite=<SuiteName> 列出指定套裝的所有測試及其各自的可設定屬性。
java -jar toughday2.jar —help —suite=get_tests
—help —tag=<Tag>
列出所有具有指定標籤的項目。
java -jar toughday2.jar —help —tag=publish
—help <TestClass/PublisherClass>
列出給定測試或發佈者的所有可配置屬性。

java -jar toughday2.jar —help UploadPDFest

java -jar toughday2.jar —help CSVPublisher

全局參數

Tough Day 2提供全域參數,可設定或變更測試環境。 這些包括目標主機、埠號、使用的通訊協定、例項的使用者和密碼等等。 例如:

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

您可以在下列清單中找到相關參數:

參數 說明 預設值 可能的值
--installsamplecontent=<Val> 安裝或跳過預設的Tough Day 2內容套件。 true true或false
--protocol=<Val> 用於主機的協定。 http http或https
--host=<Val> 要定位的主機名或IP。
--port=<Val> 主機的埠。 郵編:4502
--user=<Val> 實例的用戶名。 管理員
--password=<Val> 給定使用者的密碼。 管理員
--duration=<Val> 測試的持續時間。 可以以(s)秒、(m)毫秒、(h)ours和(d)ays表示。 1d
--timeout=<Val> 測試在中斷並標籤為失敗之前會執行多久。 以秒為單位表示。 180
--suite=<Val> 值可以是預先定義測試套裝的一或一個清單(以逗號分隔)。 toughday
--configfile=<Val> 目標yaml配置檔案。
--contextpath=<Val> 實例的上下文路徑。
--loglevel=<Val> Tough Day 2引擎的記錄層級。 資訊 全部,調試,資訊,警告,錯誤,致命,關閉
--dryrun=<Val> 如果為true,則列印產生的設定,且不執行任何測試。 false true或false

自定義

定制可以通過兩種方式實現:命令行參數或yaml配置檔案。 設定檔案通常用於大型自訂套裝,而且會覆寫Tough Day 2預設參數。命令行參數會覆蓋配置檔案和預設參數。

儲存測試設定的唯一方式是以yaml格式複製。 如需詳細資訊,請參閱以下各節中的此toughday.yaml組態和yaml組態範例。

新增測試

如果您不想使用預設的toughday套件,可以使用add參數來新增您選擇的測試。 下列範例說明如何使用命令列參數或yaml組態檔新增CreateAssetTreeTest測試。

使用命令行參數:

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

使用yaml配置檔案:

globals:
  host : localhost
tests:
  - add : CreateAssetTreeTest

新增多個相同測試的例項

您也可以新增並執行相同測試的多個例項,但每個例項必須有唯一的名稱。 以下範例說明如何使用命令列參數或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

變更測試屬性

如果您需要變更一或多個測試屬性,可將該屬性新增至命令列或yaml組態檔。 要查看所有可用的測試屬性,請將--help <TestClass/PublisherClass>參數添加到命令行,例如:

java -jar toughday2.jar --help CreatePageTreeTest

請記住,yaml組態檔將會覆寫Tough Day 2預設參數,而命令列參數會覆寫組態檔和預設值。

以下示例說明如何使用命令行參數或yaml配置檔案更改CreatePageTreeTest測試的template屬性。

使用命令行參數:

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

使用預先定義的測試套裝

下列範例說明如何新增測試至預先定義的套裝,以及如何從預先定義的套裝重新設定和排除現有測試。

您可以使用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 

執行模式

Tough Day 2可在下列其中一種模式中執行:normal​和​恆定負載

normal​運行模式有兩個參數:

  • concurrency -並發表示Tough Day 2為測試執行而建立的線程數。在這些線程上,將執行測試,直到持續時間已用完或不再執行測試為止。

  • waittime -同一線程上兩個連續測試執行之間的等待時間。值必須以毫秒錶示。

以下示例說明如何使用命令行添加參數:

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

或者,使用yaml配置檔案:

runmode:
  type : normal
  waittime : 300
  concurrency : 200

恆定負載​運行模式通過生成恆定數量的啟動測試執行而不同於正常運行模式,而不是生成恆定數量的線程。 可以使用具有相同名稱的運行模式參數來設定載荷。

測試選擇

測試選擇過程對於兩種運行模式都相同,其步驟如下:所有測試都有weight屬性,可決定執行緒中的可能性。 例如,如果我們有兩項測試,一項是5,另一項是10,後者執行的可能性是前者的2倍。

此外,測試可以有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控制)。

排練

乾式執行會剖析所有指定的輸入(命令列參數或組態檔),並將其與預設值合併,然後輸出結果。 它不執行任何測試。

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

輸出

Tough Day 2輸出測試量度和記錄檔。 如需詳細資訊,請閱讀下列章節。

測試量度

艱難的第2天目前報告9個可供您評估的測試量度。 &ast;​符號的量度只會在成功執行後報告:

名稱 說明
時間戳記 上次完成測試執行的時間戳記。
已通過 成功執行的次數。
已失敗 失敗的執行數。
Min&ast; 測試執行的最短持續時間。
Max&ast; 測試執行的最長持續時間。
Median&ast; 計算所有測試執行的中值持續時間。
Average&ast; 計算所有測試執行的平均持續時間。
StdDev&ast; 標準差。
90p&ast; 90個百分點。
99p&ast; 99個百分點。
99.9p&ast; 99.9個百分點。
實數吞吐量&ast; 執行次數除以已用執行時間。

這些量度是在發佈者的協助下撰寫,而發佈者可隨add參數新增(類似於新增測試)。 目前有兩種選擇:

  • CSVPublisher —— 輸出為CSV檔案。
  • ConsolePublisher —— 輸出顯示在控制台中。

依預設,會啟用兩個發佈者。

此外,報表量度有兩種模式:

  • simple​發佈模式——報告從執行開始到發佈點的結果。
  • intervals​發佈模式——在指定的時間範圍內報告結果。 您可以使用​interval​發佈模式參數來設定時間範圍。

以下示例說明如何在命令行或通過使用yaml配置檔案來配置intervals參數。

使用命令行參數:

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

使用yaml配置檔案:

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

記錄

Tough Day 2會在您執行Tough Day 2時所在的目錄中建立記錄檔資料夾。 此資料夾包含兩種記錄檔類型:

  • toughday.log:包含與應用程式狀態、調試資訊和全局消息相關的消息。
  • toughday_<testname>.log:與指定測試相關的訊息。

不會覆寫記錄檔,後續執行會將訊息附加至現有記錄檔。 日誌有幾個級別,有關詳細資訊,請參見 [loglevel parameter](/docs/experience-manager-64/sites-developing/tough-day.html?lang=zh-Hant#global-parameters)

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now