このトピックでは、典型的なオンライン教育シナリオを例に、Performance Testing Service (PTS) で複数ステップのストレステストシナリオを作成し、実行する方法を説明します。
シナリオ
あるオンライン教育ウェブサイトで、コース選択ページに対してストレステストを実行する必要があります。ビジネスロジックに基づき、コース選択プロセスは 3 つのステップに分かれており、それぞれに特定のテスト要件があります。
-
オンライン教育システムへのログイン
-
ユーザー名やパスワードなどのユーザーログイン情報を準備します。
-
ログイン Cookie は、次の 2 つのリクエスト (コースリストの表示とコース選択の送信) に渡す必要があります。
-
-
コースリストの表示
コース ID をコース選択の送信リクエストに渡します。
-
コース選択の送信
-
前のリクエストのコース ID を使用して、コース選択の送信リクエストを作成します。
-
コース選択が成功したかどうかを判断します。
-
以下の図は、基本的なストレステストシナリオの設定を示しています。

前提条件
PTS サービスを有効化していること。
CSVフォーマットでパラメーターファイルを準備します。パラメーターファイルの要件の詳細については、「パラメーターファイルの仕様」をご参照ください。username,password user1,Password1 user2,Password2 user3,Password3
手順1:テストシナリオの設定
-
PTS コンソールにログインし、 を選択し、PTS をクリックします。
パラメーターファイルをデータソースに追加します。
[データソース] をクリックします。[ファイル] タブで、+ ファイルのアップロード をクリックし、アップロードするオンプレミスのパラメーターファイルを選択します。
[最初の行をパラメーター名として使用] を選択します。このオプションを選択すると、パラメーター名を指定する必要がなくなります。最初の行のデータがパラメーター名として使用されます。PTS がパラメーターファイルを読み取る際、最初の行のデータは無視されます。パラメーターファイルの最初の行のデータがパラメーター名でない場合は、ビジネスシナリオに基づいて各列のパラメーター名を指定する必要があります。
データ設定ノードを追加します。
[シナリオ設定] タブで、ストレステスト API を追加し、[命令の追加] の横にあるドロップダウン矢印をクリックして、[パラメーター] を選択します。
[データソースパラメーター] タブで、既存のパラメーター名を選択します。
説明各行を 1 回だけ使用してリクエストを組み立てる場合は、[1 回のみ使用] を選択します。必要なデータが 1 回ポーリングされると、設定された負荷レベルに関係なく、ストレステストシナリオは新しいストレステストリクエストの生成を停止します。
ストレステスト中にパラメーターを再利用する場合は、[1 回のみ使用] を選択しないでください。
[1 回のみ使用] または [ベースライン列] のいずれかを選択できますが、両方をパラメーターに選択することはできません。[1 回のみ使用] を選択した場合、[ベースライン列] は選択できません。

-
ストレステストシナリオの構築
-
ログイン API の設定
[テスト URL]:テストする URL を入力します。この例では
http://web.example.com/loginを使用します。[リクエストメソッド]:
POSTを選択します。[本文の定義]:
Content-Typeをx-www-form-urlencodedに設定します。次に、編集エリアの右上隅にある [テキスト編集] をクリックし、{"username":"${username}","password":"${password}"}を入力します。
説明このリクエストの Cookie は、ストレステストシナリオ内の他の API と自動的に共有されます。追加の設定は不要です。
-
コースリスト表示 API の設定
Add API をクリックし、HTTP を選択してから、基本的なリクエスト情報を設定します。
-
Test URL:テスト URL を入力します。
http://web.example.com/mocks/online/list。 -
[リクエストメソッド]:
POSTを選択します。
次のリクエストにコース ID を渡すには、現在の API レスポンスからコース ID を出力パラメーターとして抽出する必要があります。Output Parameter Definition タブを選択し、以下のパラメーターを設定します。

-
Output Parameter Name:パラメーターのカスタム名を入力します。
-
ソース:レスポンスボディの解析フォーマット (JSON など) を選択します。
-
Parsing Expression:レスポンスから目的の値を抽出するための式を入力します。
たとえば、以下のサンプルレスポンスボディから 2 番目のコース ID を抽出するには、解析式を
schedule_list[1].IDに設定します。{ "schedule_list": [ { "Name": "math", "ID": "001" }, { "Name": "english", "ID": "002" }, { "Name": "science", "ID": "003" } ] }説明式のデバッグ機能を使用して、解析式を定義および検証します。式を検証した後、シナリオに適用できます。詳細については、「シナリオのデバッグ」をご参照ください。
-
-
コース選択送信 API の設定
Add API をクリックし、HTTP を選択してから、基本的なリクエスト情報を設定します。
-
Test URL:テスト URL を入力します。
http://web.example.com/mocks/online/submit。 -
[リクエストメソッド]:
POSTを選択します。
Body Definition タブを選択し、前の API からエクスポートしたコース ID を
Bodyで使用します。
-
Content-Type:
x-www-form-urlencodedフォーマットを選択します。 -
[キー]:カスタムキー (例:
ID_from_last_api) を入力します。 -
[値]:ページ左下の [パラメーターリスト] をクリックして [セッションパラメーター] を表示します。パラメーター (例:「ID」) を見つけ、その横にあるコピーアイコンをクリックし、結果を [値] フィールドに貼り付けます。
Output Parameter Definition タブを選択し、以下のパラメーターを設定します。

-
Output Parameter Name:カスタムパラメーター名 (例:
result) を入力します。 -
ソース:本文の解析フォーマット (例:Body: TEXT) を選択します。
説明本文の解析フォーマットとして TEXT を選択する必要があります。また、式のデバッグ機能を使用して解析式をデバッグすることもできます。
-
Parsing Expression:結果を抽出するための式を入力します。この例では、レスポンスボディが
result:successであるため、解析式はresult:(.+)となります。
[チェックポイント (アサーション)] タブで、コースの送信が成功したことを確認するためのチェックポイントを設定します。

-
Check Point Type:[出力パラメーター] を選択します。
-
Check Object: [結果] を選択します。
-
チェック条件:は を選択します。
-
[内容]:
successと入力します。
-
-
手順2:Stress Mode Configuration
シナリオを設定した後、ストレスモードを選択し、負荷レベルを設定します。
加圧元:[パブリックネットワーク] を選択します。Alibaba Cloud 内部ネットワークのサービスをテストしている場合は、[Alibaba Cloud VPC ネットワーク] を選択します。
[プレッシャーモード]:[仮想ユーザーモード] を選択します。仮想ユーザーモードでのストレステストは、クライアント起点のシナリオにより適しています。[RPS モード] は、サーバー側の視点からシステムのスループットを測定します。
[増分モード]:[手動速度制御] を選択します。
[最大仮想ユーザー数]:仮想ユーザーモードで、最大仮想ユーザー数 (例:10) を入力します。
[合計ストレステスト時間]:たとえば、1 分とします。
他のパラメーターはデフォルト値のままでかまいません。
ストレステストの実行には料金が発生します。適切なストレスレベルを選択してください。詳細については、「課金概要」および「プレッシャーモードとボリューム設定」をご参照ください。
手順3:デバッグとテストの開始
シナリオをデバッグして設定を検証し、テストの失敗を防ぎます。最初にシナリオをデバッグすることを推奨します。
-
Save and Start をクリックします。注意 ダイアログボックスで、今すぐ実行 を選択し、The test is permitted and complies with the applicable laws and regulations. を選択してから、[テスト開始] をクリックします。
ストレステスト結果の分析
ストレステストが終了すると、システムはストレステストシナリオのメトリック、ビジネス詳細、モニタリングデータ、API サンプリングログなどのデータを自動的に収集し、ストレステストレポートを生成します。レポートは [ストレステストレポート] ページで確認できます。詳細については、「PTS ストレステストレポートの表示」をご参照ください。