シナリオのカオス・テスト
カオス・エンジニアリング・プラットフォームからの中断イベントを,Controller シナリオに追加できます。これらのイベントは,サービスや環境に対する攻撃のシミュレーションを提供します。
カオス・テストについて
カオス・テストでは,ストレス下でシステムがどのように応答するかを確認できます。カオス・エンジニアリング・プラットフォームからの攻撃のシミュレーションを LRP テストに組み込むことで,アプリケーションに対する起こり得る障害の影響を判断できます。
攻撃のシミュレーションは,データベース,Web サーバ,CPU,メモリなど,さまざまなテクノロジやコンポーネントを対象にできます。攻撃をトリガするには,中断イベントを LRP シナリオに追加します。シナリオを実行すると,Controller マイクロサービス・コンポーネントである EventsHandlerMicroservice によってカオス・プラットフォームに要求を送信し,事前に定義された攻撃を実行します。これにより,LRP シナリオの実行と並行して,システムに対する攻撃を開始できます。
攻撃は,一般的には通常のワークフローに影響を与え,応答の制限や,パフォーマンスの低下が発生します。たとえば,通常より Web サーバの動作が遅くなり,成功するトランザクションが少なくなる可能性があります。攻撃なしで LRP シナリオを実行している場合と,システムにストレスがかかっているときに実行している場合の応答を比較できます。
ヒント: LoadRunner Professional を使用したカオス・エンジニアリングの詳細については,次のブログを参照してください。What is Chaos Engineering?
LRP は,Gremlin と Steadybit の 2 つのカオス・エンジニアリング・プラットフォームと連携します。
![閉じた](../../Skins/Default/Stylesheets/Images/transparent.gif)
LRP は,クラウド上の Gremlin カオス・エンジニアリング・プラットフォームと連携します。Gremlin では,複数の攻撃を含むシナリオを定義し,Gremlin シナリオを LRP シナリオに追加します。
Gremlin エージェントを AUT マシンで実行する必要があります。次に,LRP は,統合された Gremlin API を使用して,カオス・テストを調整します。
![閉じた](../../Skins/Default/Stylesheets/Images/transparent.gif)
LRP は,パブリッククラウド上の Steadybit,またはプライベート・クラウド・プラットフォームのオンプレミスのSteadybitと連携します。Steadybit では,複数の攻撃を含む experiments(実験)を定義し,Steadybit の実験を LRP シナリオに追加します。
Steadybit エージェントを,AUT マシンで実行する必要があります。次に,LRP は統合された Steadybit API を使用して,カオス・テストを調整します。
Steadybit と連携する場合,複数の短い実験を次々に実行するのではなく,1 つの実験で複数の攻撃を定義することをお勧めします。
中断イベントを LRP シナリオに追加する
カオス・エンジニアリング・プラットフォームからの中断イベントを LRP シナリオに接続し,スクリプトと並行して実行します。
同じ LRP シナリオで,Gremlin と Steadybit の両方のイベントを実行できます。
中断イベントを組み込むには,次の手順を実行します。
-
カオス・エンジニアリング・プラットフォームをセットアップし,テストするアプリケーションに攻撃を設定します。
-
Controller でシナリオを実行する前に,エージェントとカオス・プラットフォーム間の接続をテストします。
-
LRP シナリオを開きます。Controller の[デザイン]タブの[シナリオのスケジュール]ペインで,[中断イベント]
ボタンをクリックします。
-
表示された[中断イベント]ダイアログ・ボックスで,[イベントの追加]をクリックします。
-
表示された[イベントの追加]ダイアログ・ボックスで,[タイプ]リストから関連するカオス・エンジニアリング・プロバイダを選択します。
-
選択したプロバイダに接続するための関連する詳細を定義します。
Gremlin APIキーとチームIDを入力します。 Steadybit APIキーを入力します。プライベート・クラウド・プラットフォームを使用している場合は,[オンプレミス]チェックボックスを選択し,URL(IP アドレスと,該当する場合はポート)を入力します。 正常に接続すると,[タイプ]フィールドの横に緑色の Gremlin または Steadybit アイコンが表示され,関連する中断イベント(選択したプロバイダで定義された攻撃シナリオまたは実験)がテーブルに入力されます。
テーブルには次の情報が表示されます。
-
イベントの名前とタイプ。
-
イベント作成者のチームまたは電子メール。
-
-
使用する中断イベントを選択し,[追加]をクリックします。
ヒント:
-
検索を使用して,名前でイベントを検索できます。これにより,検索語句でリストがフィルタリングされます。
-
Gremlin イベントの場合,[攻撃タイプ]または[テクノロジタイプ]でフィルタリングできます。
-
Steadybit イベントの場合,実験名にカーソルを合わせると,説明が表示されます(説明が Steadybit で追加されている場合)。実験タイプにカーソルを合わせると,その実験タイプに含まれるすべてのアクションのリストが表示されます。
-
-
選択したイベント・シナリオが[中断イベント]ダイアログ・ボックスに表示されます。
-
現在のシナリオで実行するイベントを選択し,各イベントに対して必要な開始時間を定義します。
開始時間は,テスト・シナリオ全体の開始時間を基準とした相対的な時間です。開始時間を変更すると,イベントの長さに基づいて終了時間が自動的に調整されます。
-
スケジュール・グラフは,Controller シナリオのグローバル仮想ユーザ・スケジュールに対して,選択した各イベントがどこで開始,終了するのかを示します。
凡例からイベントを選択して,グラフのイベント行を太字にします。
注: 次の場合には警告が表示されます。
- リストで重複するイベント(同じ攻撃を実行するイベント)を選択した場合。
- イベントが重なって,一方のイベントが他方のイベントを中断させる可能性がある場合。
-
イベントの終了時間が,負荷テスト・シナリオの実行時間の後である場合。この場合,シナリオが終了するとイベントは強制的に停止します。
設定をそのままにしておくと,警告は表示されますが,イベントは実行されます。
-
-
[エラー時でも処理を継続する]を設定します。
[混乱イベント]ダイアログ・ボックスで,[混乱イベントの設定]をクリックし,必要な動作に応じて,[混乱イベントのエラー時にシナリオを続行する]のチェックボックスをオンまたはオフにします。
-
スケジュールされた混乱イベントが失敗した場合でもシナリオの実行を継続する場合は,チェックボックスをオンにします。
-
スケジュールされた混乱イベントが失敗した場合にはシナリオを強制的に中止する場合は,チェックボックスをオフにします。
選択した内容は,シナリオ実行中にアクティブなすべての混乱イベントに適用されます。
変更を保存します。
-
-
[混乱イベント]ダイアログ・ボックスで[保存]をクリックします。
-
シナリオの実行中,各イベントの実際の開始時間と終了時間がシナリオ・グラフにバーとして表示され,カオス・イベントが監視対象のマシンに与える影響を確認できます。
バーをクリックすると強調表示され,イベント名が表示されます。
注: グラフの設定では,個々のグラフのイベント・バーの表示または非表示を設定できます。また,グローバル・グラフの設定ですべてのグラフを表示または非表示にすることもできます。
出力ウィンドウで,すべての中断イベントの開始時と停止時の通知を表示できます。詳細については,「[出力メッセージ]ウィンドウ」を参照してください。また,出力ウィンドウには,イベントの実行時のエラー発生の有無もレポートされます。
-
シナリオの実行後に,Analysis で結果を表示します。[カオスイベント]グラフが自動的に表示され,中断イベントのデータが表示されます。
イベントの開始時間と終了時間は,[サマリ レポート]の[シナリオのスケジュール]にも表示されます。
中断イベントのログ
中断イベントのログを表示できます。
-
マイクロサービス関連のログ:<LoadRunner のルート・フォルダ>\Logs\EventsHandlerSrv\events_handler.log
-
Controller 関連のログ:%TEMP%\lr_disruption_events_err.log
ログ・レベルは,次のファイルで設定します。
-
%LR_PATH%\bin\disruption\*log
-
%LR_PATH%\bin\disruption\*config
ログ・レベルは,優先度の高い順に次のようになります。
.*config ファイル![]() |
.*json ファイル![]() |
値が推奨されるケース![]() |
---|---|---|
All | Trace | |
Debug | Debug | デバッグ |
Info | Information | |
Warn | Warning | 通常のワークフロー |
Error | Error | |
Fatal | Critical | |
Off | None |
詳細については,Apache log4net および.NET Core の公式ドキュメントを参照してください。
関連項目: