シナリオのカオス・テスト

カオス・エンジニアリング・プラットフォームからの中断イベントを,Controller シナリオに追加できます。これらのイベントは,サービスや環境に対する攻撃のシミュレーションを提供します。

カオス・テストについて

カオス・テストでは,ストレス下でシステムがどのように応答するかを確認できます。カオス・エンジニアリング・プラットフォームからの攻撃のシミュレーションを LRP テストに組み込むことで,アプリケーションに対する起こり得る障害の影響を判断できます。

攻撃のシミュレーションは,データベース,Web サーバ,CPU,メモリなど,さまざまなテクノロジやコンポーネントを対象にできます。攻撃をトリガするには,中断イベントを LRP シナリオに追加します。シナリオを実行すると,Controller マイクロサービス・コンポーネントである EventsHandlerMicroservice によってカオス・プラットフォームに要求を送信し,事前に定義された攻撃を実行します。これにより,LRP シナリオの実行と並行して,システムに対する攻撃を開始できます。

攻撃は,一般的には通常のワークフローに影響を与え,応答の制限や,パフォーマンスの低下が発生します。たとえば,通常より Web サーバの動作が遅くなり,成功するトランザクションが少なくなる可能性があります。攻撃なしで LRP シナリオを実行している場合と,システムにストレスがかかっているときに実行している場合の応答を比較できます。

ヒント: LoadRunner Professional を使用したカオス・エンジニアリングの詳細については,次のブログを参照してください。What is Chaos Engineering?

LRP は,Gremlin と Steadybit の 2 つのカオス・エンジニアリング・プラットフォームと連携します。

先頭に戻る

中断イベントを LRP シナリオに追加する

カオス・エンジニアリング・プラットフォームからの中断イベントを LRP シナリオに接続し,スクリプトと並行して実行します。

同じ LRP シナリオで,Gremlin と Steadybit の両方のイベントを実行できます。

中断イベントを組み込むには,次の手順を実行します。

  1. カオス・エンジニアリング・プラットフォームをセットアップし,テストするアプリケーションに攻撃を設定します。

  2. Controller でシナリオを実行する前に,エージェントとカオス・プラットフォーム間の接続をテストします。

  3. LRP シナリオを開きます。Controller の[デザイン]タブの[シナリオのスケジュール]ペインで,[中断イベントボタンをクリックします。

  4. 表示された[中断イベント]ダイアログ・ボックスで,[イベントの追加]をクリックします。

  5. 表示された[イベントの追加]ダイアログ・ボックスで,[タイプ]リストから関連するカオス・エンジニアリング・プロバイダを選択します。

  6. 選択したプロバイダに接続するための関連する詳細を定義します。

    Gremlin
    APIキーチームIDを入力します。
    Steadybit APIキーを入力します。プライベート・クラウド・プラットフォームを使用している場合は,[オンプレミス]チェックボックスを選択し,URL(IP アドレスと,該当する場合はポート)を入力します。

    正常に接続すると,[タイプ]フィールドの横に緑色の Gremlin または Steadybit アイコンが表示され,関連する中断イベント(選択したプロバイダで定義された攻撃シナリオまたは実験)がテーブルに入力されます。

    テーブルには次の情報が表示されます。

    • イベントの名前とタイプ。

    • イベント作成者のチームまたは電子メール。

  7. 使用する中断イベントを選択し,[追加]をクリックします。

    ヒント:  

    • 検索を使用して,名前でイベントを検索できます。これにより,検索語句でリストがフィルタリングされます。

    • Gremlin イベントの場合,[攻撃タイプ]または[テクノロジタイプ]でフィルタリングできます。

    • Steadybit イベントの場合,実験名にカーソルを合わせると,説明が表示されます(説明が Steadybit で追加されている場合)。実験タイプにカーソルを合わせると,その実験タイプに含まれるすべてのアクションのリストが表示されます。

  8. 選択したイベント・シナリオが[中断イベント]ダイアログ・ボックスに表示されます。

    • 現在のシナリオで実行するイベントを選択し,各イベントに対して必要な開始時間を定義します。

      開始時間は,テスト・シナリオ全体の開始時間を基準とした相対的な時間です。開始時間を変更すると,イベントの長さに基づいて終了時間が自動的に調整されます。

    • スケジュール・グラフは,Controller シナリオのグローバル仮想ユーザ・スケジュールに対して,選択した各イベントがどこで開始,終了するのかを示します。

      凡例からイベントを選択して,グラフのイベント行を太字にします。

    注: 次の場合には警告が表示されます。

    • リストで重複するイベント(同じ攻撃を実行するイベント)を選択した場合。
    • イベントが重なって,一方のイベントが他方のイベントを中断させる可能性がある場合。 
    • イベントの終了時間が,負荷テスト・シナリオの実行時間の後である場合。この場合,シナリオが終了するとイベントは強制的に停止します。

    設定をそのままにしておくと,警告は表示されますが,イベントは実行されます。

  9. [エラー時でも処理を継続する]を設定します。

    [混乱イベント]ダイアログ・ボックスで,[混乱イベントの設定]をクリックし,必要な動作に応じて,[混乱イベントのエラー時にシナリオを続行する]のチェックボックスをオンまたはオフにします。

    • スケジュールされた混乱イベントが失敗した場合でもシナリオの実行を継続する場合は,チェックボックスをオンにします。

    • スケジュールされた混乱イベントが失敗した場合にはシナリオを強制的に中止する場合は,チェックボックスをオフにします。

    選択した内容は,シナリオ実行中にアクティブなすべての混乱イベントに適用されます。

    変更を保存します。

  10. [混乱イベント]ダイアログ・ボックスで[保存]をクリックします。

  11. シナリオの実行中,各イベントの実際の開始時間と終了時間がシナリオ・グラフにバーとして表示され,カオス・イベントが監視対象のマシンに与える影響を確認できます。

    バーをクリックすると強調表示され,イベント名が表示されます。

    注: グラフの設定では,個々のグラフのイベント・バーの表示または非表示を設定できます。また,グローバル・グラフの設定ですべてのグラフを表示または非表示にすることもできます。

    出力ウィンドウで,すべての中断イベントの開始時と停止時の通知を表示できます。詳細については,「[出力メッセージ]ウィンドウ」を参照してください。また,出力ウィンドウには,イベントの実行時のエラー発生の有無もレポートされます。

  12. シナリオの実行後に,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 の公式ドキュメントを参照してください。

先頭に戻る

関連項目: