「Tough Day 2」は、AEMインスタンスの制限に応じてテストできるアプリケーションです。 デフォルトのテストスイートですぐに使用できる状態にすることも、テストのニーズに合わせて設定することもできます。 ご覧いただけます この録画 アプリのプレゼンテーション用に。
Tough Day 2 には Java™ 8 が必要です。
アドビのリポジトリから最新バージョンの Tough Day 2 をダウンロードします。アプリケーションをダウンロードしたら、host
パラメーターを指定することでアプリケーションをそのまま実行できます。次の例では、AEM インスタンスがローカルで実行されているので、値 localhost
が使用されています。
java -jar toughday2.jar --host=localhost
パラメーターを追加した後に実行されるデフォルトスイートの名前は toughday
です。次の使用例が含まれます。
このスイートには 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]
Tough Day 2 にはクリーンアップ手順はありません。 その結果、メインの実稼動インスタンスではなく、クローンのステージングインスタンスで Tough Day 2 を実行することをお勧めします。 テストの後に、ステージングインスタンスを削除する必要があります。
Tough Day 2 には、コマンドラインからアクセスできる様々なヘルプオプションが用意されています。 次に例を示します。
java -jar toughday2.jar --help_full
次の表に、関連するヘルプパラメーターを示します。
パラメーター | 説明 | 例 |
--help | グローバルな情報を出力します。例えば、利用可能なアクション、事前定義済みスイート、実行モード、グローバルパラメーターなどです。 | |
--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 UploadPDFTest 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> |
インスタンスのユーザー名。 | admin | |
--password=<Val> |
指定されたユーザーのパスワード。 | admin | |
--duration=<Val> |
テストの期間。(秒)単位、(分)単位、(時)単位、(日)単位で表現できます。 | 1d | |
--timeout=<Val> |
テストが中断され、失敗としてマークされるまでのテストの実行時間。秒単位で表現できます。 | 180 | |
--suite=<Val> |
値は、事前定義済みのテストスイートの 1 つまたはリスト(コンマ区切り)にすることができます。 | toughday | |
--configfile=<Val> |
ターゲットの yaml 設定ファイル。 | ||
--contextpath=<Val> |
インスタンスのコンテキストパス。 | ||
--loglevel=<Val> |
Tough Day 2 エンジンのログレベル。 | INFO | ALL、DEBUG、INFO、WARN、ERROR、FATAL、OFF |
--dryrun=<Val> |
true の場合は、結果の設定が出力され、テストは実行されません。 | false | true または false |
カスタマイズは、コマンドラインパラメーターと yaml 設定ファイルの 2 つの方法で実行できます。 設定ファイルは大規模なカスタムスイートで使用され、Tough Day 2 のデフォルトパラメーターを上書きします。 コマンドラインパラメータは、設定ファイルとデフォルトパラメータの両方を上書きします。
テスト設定を保存するには、yaml 形式でコピーする方法しかありません。
デフォルトの toughday
スイートを使用しない場合は、add
パラメーターを使用して任意のテストを追加できます。以下の例は、 CreateAssetTreeTest
コマンドラインパラメーターまたは yaml 設定ファイルを使用してテストします。
コマンドラインパラメータを使用する場合:
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest
yaml 設定ファイルを使用すると、次のことができます。
globals:
host : localhost
tests:
- add : CreateAssetTreeTest
また、同じテストの複数のインスタンスを追加して実行することもできますが、各インスタンスには一意の名前を付ける必要があります。 以下の例は、コマンドラインパラメーターまたは yaml 設定ファイルを使用して、同じテストの 2 つのインスタンスを追加する方法を示しています。
コマンドラインパラメータを使用する場合:
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
1 つ以上のテストプロパティを変更する必要がある場合は、そのプロパティをコマンドラインまたは yaml 設定ファイルに追加できます。 使用可能なすべてのテストプロパティを表示するには、コマンドラインに --help <TestClass/PublisherClass>
パラメーターを追加してください。次に例を示します。
java -jar toughday2.jar --help CreatePageTreeTest
yaml 設定ファイルは Tough 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
事前定義済みのスイートにテストを追加する方法、事前定義済みのスイートの既存のテストを再設定および除外する方法を以下の例に示します。
事前定義済みのスイートに新しいテストを追加するには、add
パラメーターを使用して、ターゲットとなる事前定義済みのスイートを指定します。
コマンドラインパラメータを使用する場合:
java -jar toughday2.jar --host=localhost --suite=toughday --add CreatePageTreeTest
yaml 設定ファイルを使用すると、次のことができます。
globals:
host : localhost
suite : toughday
tests:
- add : CreatePageTreeTest
また、特定のスイート内の既存のテストは、config
* *パラメーターを使用して再設定することもできます。また、(テストクラス名ではなく)テストのスイート名と実際の名前も指定します。 テスト名は、テストクラスの name
プロパティで確認できます。テストプロパティの確認方法について詳しくは、テストプロパティの変更を参照してください。
以下の例では0、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
プロパティで確認できます。以下の例では、(UploadAsset
という名前の)CreatePageTreeTest
テストを toughday スイートから削除しています。
コマンドラインパラメータを使用する場合:
java -jar toughday2.jar --host=localhost --suite=toughday --exclude UploadAsset
yaml 設定ファイルを使用すると、次のことができます。
globals:
host : localhost
suite : toughday
tests:
- exclude : UploadAsset
Tough Day 2 は、標準モードと定負荷モードのいずれかで実行できます。
標準実行モードには、次の 2 つのパラメーターがあります。
concurrency
- テストの実行のために Tough Day 2 によって作成されるスレッドの数を表します。これらのスレッドでは、実行時間が終了するか、実行するテストがなくなるまでテストが実行されます。
waittime
- 同じスレッド上の連続した 2 つのテスト実行の間の待機時間。値はミリ秒単位で表す必要があります。
次の例は、コマンドラインを使用してパラメータを追加する方法を示しています。
java -jar toughday2.jar --host=localhost --add CreateAssetTreeTest --runmode=normal concurrency=20
または、yaml 設定ファイルを使用します。
runmode:
type : normal
waittime : 300
concurrency : 200
定負荷実行モードは、通常実行モードとは異なり、一定数のスレッドではなく一定数の開始されたテスト実行を生成します。同じ名前の実行モードパラメーターを使用して負荷を設定できます。
テストの選択プロセスはどちらの実行モードでも同じで、次のように進みます。すべてのテストには weight
プロパティがあり、これによって、スレッドでの実行の可能性が決定します。例えば、2 つのテストがあり、一方は重み付けが 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 は、テスト指標とログの両方を出力します。 詳しくは、次の節を参照してください。
Tough Day 2 では、現在、評価できる 9 つのテスト指標がレポートされます。 * 記号が付いた指標は、実行に成功した後にのみ報告されます。
名前 | 説明 |
---|---|
Timestamp | 最後に完了したテスト実行のタイムスタンプ。 |
渡された | 成功した実行の数。 |
失敗 | 失敗した実行の数。 |
Min* | テスト実行の最短期間。 |
Max* | テスト実行の最長期間。 |
Median* | すべてのテスト実行の算出された中央値時間。 |
平均* | すべてのテスト実行の算出された平均時間。 |
StdDev* | 標準偏差。 |
90p* | 90 パーセンタイル。 |
99p* | 99 パーセンタイル。 |
99.9p* | 99.9 パーセンタイル。 |
実際のスループット* | 実行数を経過した実行時間で割った値。 |
これらの指標は、(テストの追加と同様に)add
パラメーターを使用して追加できる公開者を利用して記述されています。現在、次の 2 つのオプションがあります。
デフォルトでは、両方の公開者が有効になっています。
また、指標がレポートされるモードは次の 2 つです。
次の例は、コマンドラインまたは 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 を実行したディレクトリにログフォルダーが作成されます。このフォルダーには、次の 2 種類のログが含まれます。
ログは上書きされず、その後の実行で既存のログにメッセージが追加されます。 ログには複数のレベルがあります。詳しくは、 [loglevel parameter](/docs/experience-manager-65/developing/testing/tough-day.md#global-parameters)
を参照してください。