チュートリアル:フォームからPOSTするシナリオを作成する
最終更新日:2020/12/02 14:39:55

https://example.com/form に設置されたフォームから、https://example.com/form/submit対してPOSTするシナリオを作成します。
1つめのリクエストには、フォームが設置された画面へののパスとして、/formを設定します。



「リクエスト追加」ボタンを押下し、POSTするリクエストを追加します。パスには「/form/submit」を設定し、メソッドをGETからPOSTに変更します。



メソッドがPOSTの場合は、「ボディ」タブが表示され、パラメータの送信方法をフォーム・Body・Body(変数)から選べます。今回はフォームからPOSTするシナリオを作成するため、「フォーム」を選択します。送信するパラメータを「追加」ボタンから追加します。



対象のフォームが、以下のHTMLだと仮定します。

<form>
  <input type="text" name="email" />
  <input type="password" name="password" />
</form>
フォームから送信される、email, passwordを以下の通り設定します。



以上でシナリオは完成です。ですが、実際にはフォーム内にCSRF対策用のトークンが埋め込まれていて、ケースが多いため、トークンの取得・送信に対応したシナリオに変更します。フォームのHTMLは以下だと仮定します。

<form>
  <input type="hidden" name="_token" value="yd9iu2256k" />
  <input type="text" name="email" />
  <input type="password" name="password" />
</form>
1回目のリクエストのレスポンスから_tokenの値を取得するよう設定します。「レスポンス」タブを選択し、「追加」ボタンを押下してください。



一番左のセレクトボックスから「HTML(CSSセレクタ)」を選択します。その右のCSSセレクタに取得したい対象を取得する「input[name="_token"]」を入力します。(CSSセレクタで該当の要素を特定さえできれば良いです。)さらに右の属性に対して「value」を指定します。最後に右端のフォームに変数名として「token」を入力します。(変数名は、取得した値を後から参照するときの名前です。自分がわかる名前であれば自由につけられます)



取得した値を、次のリクエストのパラメータに含めます。「追加」ボタンからパラメータを追加し、左端のセレクトボックスから「セッション変数」を選択します。キー名に「_token」を入力し、右端のセレクトボックスから「token」を選択します。



以上でCSRFトークンの送信に対応したシナリオが完成です。