WinActor

2019.11.15
サンプルシナリオ 外部サービス連携
application/x-www-form-urlencodedのBodyを構築してHTTPでのPOSTメソッドを実行するサンプルシナリオ

WinActorのHTTPライブラリを使用して、application/x-www-form-urlencodedのBodyを構築してHTTPでのPOSTメソッドを実行するサンプルシナリオとなります。

本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。

サンプルシナリオ概要

application/x-www-form-urlencodedのBodyを構築してHTTPでのPOSTメソッドを実行するサンプルシナリオ

application/x-www-form-urlencodedのBodyを構築してHTTPでのPOSTメソッドを実行するサンプルシナリオ

はじめに

WinActorのHTTPライブラリを使用して、application/x-www-form-urlencodedのBodyを構築してHTTPでのPOSTメソッドを実行するサンプルシナリオ(以降、本サンプルシナリオ)について説明します。

本サンプルシナリオの概要

本サンプルシナリオは、以下の処理を行います。

  • 指定されたリスト(CSVファイル)を用いてapplication/x-www-form-urlencodedの要求のボディを作成します。
  • 作成した要求のボディを用いて、指定されたURLに対してHTTPのPOSTメソッドを実行します。

使用するWinActorモジュール

本サンプルシナリオでは、主に以下のWinActorモジュールを使用します。

  • 03_変数/01_csvファイル読み込み/csvファイル→変数値.ums6
  • 99_外部サービス連携/02_HTTP関連/HTTP.ums6
  • プチライブラリ/13_ファイル関連/文字コードをUTF-8にしてテキストファイルに書き込みをするライブラリ
  • プチライブラリ/13_ファイル関連/指定した文字列をURLパーセントエンコーディングするライブラリ (プチライブラリはこちらからダウンロードできます)

本サンプルシナリオの想定レベル

本サンプルシナリオのドキュメントは、以下の技術レベルのユーザを対象としています。

  • HTTPのPOSTリクエストにおける、application/x-www-form-urlencodedの仕様を理解している。

動作確認環境

本サンプルシナリオは以下の環境で動作確認しています。

  • Windows 10
  • WinActor 6.2.0
  • Python 3.6.3 (本サンプルシナリオに添付のサンプルWebサーバープログラムを実行するために使用)

制約事項

  • 本サンプルシナリオの動作を確認するために、application/x-www-form-urlencodedのPOSTリクエストを受け付けるWebサーバーが必要です。
    (本サンプルシナリオには、Pythonで動作するWebサーバープログラムのサンプル(以下、サンプルWebサーバープログラム)を同梱しています。)

本サンプルシナリオの使い方

本サンプルシナリオの使い方は以下の通りです。

Step 1. サンプルWebサーバープログラムの起動

本サンプルシナリオは、手元のPCのみで動作を確認できるようにサンプルWebサーバープログラムを同梱しています。 サンプルWebサーバーの起動にはPython 3.6.3が必要となりますので、別途インストールしてください。

ダウンロードしたZIPファイルを展開します。

  • 展開したフォルダにある「post_server.bat」をテキストエディタで開き、以下の修正を実施します。
    • 2行目の"SET PYTHONROOTPATH="の後に、Pythonがインストールされている上のフォルダを指定します。(最後のパス区切り文字\は不要です)
      例) SET PYTHONROOTPATH=C:\Users\user\AppData\Programs\Python
      (Pythonが「C:\Users\user\AppData\Programs\Python\Python36」フォルダにインストールされている場合)
  • 「post_server.bat」をダブルクリックして、サンプルWebサーバープログラムを起動します。
    ※「Python 続行するには何かキーを押してください」と表示された場合は、コントロールパネル-アプリと機能-アプリ実行エイリアス-python.exeをオフにしてください。
  • Webブラウザを起動して、"http://localhost"へアクセスします。サンプルWebサーバーが正常に動作している場合は、ページ内に"HTTP GET OK"と表示されます。
    ※WebブラウザはサンプルWebサーバーの動作確認用のため、上記の表示が確認できたあとは閉じていただいて構いません。

Step 2. サンプルシナリオの読み込み

展開したフォルダにあるサンプルシナリオをWinActorで読み込みます。

Step 3. 動作に必要な変数を設定

本サンプルシナリオを実行するために必要な値を、変数一覧で設定します。
事前に設定が必要な変数は下記の2つです。

  • PostURL
    • HTTP POSTメソッドの宛先のURLを指定します。
      例) http://localhost/
  • BodyCSVファイル
    • application/x-www-form-urlencodedの要求のボディに設定するパラメータのリストを収めたCSVファイルのファイルパス(絶対パス)を指定します。
      本サンプルシナリオは、動作確認用のサンプルデータ(body.csv)を同梱しています。
      例) C:\winactor\body.csv
変数一覧画面
変数一覧画面

Step 4. サンプルシナリオの実行

WinActorで本サンプルシナリオを実行します。
HTTP POSTメソッドの実行まで完了すると、本サンプルシナリオは終了します。

Step 5. サンプルシナリオの終了後

HTTP POSTメソッドの実行結果である応答内容(HTML)が、シナリオと同じフォルダに「Response.html」として出力されています。 Webブラウザで「Response.html」を開き、ページ内に"HTTP POST OK"と表示されていればPOSTに成功しています。 また、ページ内の「POST Body」に、本サンプルシナリオがサンプルWebサーバープログラムへ送信した要求のボディが表示されています。

トラブルシューティング

本サンプルシナリオでは、誤ったURLやファイル名/フォルダ名を指定した場合、エラーメッセージが出力されます。

詳細については、エラーメッセージ一覧を参照してください。

サンプルシナリオ解説

本サンプルシナリオで使用している実装テクニックについて解説します。

application/x-www-form-urlencodedの要求のボディの生成

本サンプルシナリオでは、変数一覧のBodyCSVファイルに指定されたCSVファイルの内容に用い、application/x-www-form-urlencoded準拠のボディを生成しています。

  • BodyCSVファイルで指定するCSVファイルの1行目は「name,value」という固定文字列です。 WinActorは、この行に基づいてcsvファイル→変数値.ums6ライブラリで値を取得しています。 BodyCSVファイルの2行目以降はリクエストパラメータです。Webサーバーへ転送したい内容を、「パラメータ名,パラメータ値」の順にカンマ区切りで指定します。(CSVの1レコード当たり1つの入力値) 各項目の内容は以下の通りです。(nameが指定されていないレコードについては、要求のボディへ出力されません)
    • name : パラメータ名を指定します。
      例)field1

    • value : パラメータ値を指定します。
      例)値1

  • プチライブラリの指定した文字列をURLパーセントエンコーディングするライブラリを用いて、name(パラメータ名)及びvalue(パラメータ値)にURLパーセントエンコーディングを施し、=で連結します。
    例)field1=%e5%80%a4%ef%bc%91
  • BodyCSVファイルのレコード部が2行以上ある場合(複数のパラメータがある場合)は、各パラメータを&で連結します。
    例)field1=%e5%80%a4%ef%bc%91&field2=%e5%80%a4%ef%bc%92
  • BodyCSVファイルのすべてのレコードの処理が完了したら、Bodyファイルで指定されているファイルに書き出します。

なお、上記のURLパーセントエンコーディングの処理は、本サンプルシナリオの「application/x-www-form-urlencoded Body作成サブルーチン」が相当します。

Body作成サブルーチン
Body作成サブルーチン

HTTP POSTの実行

HTTP POSTメソッドは、 HTTP.ums6 ライブラリを利用して実行しています。

HTTP POSTメソッド実行グループ
HTTP POSTメソッド実行グループ

HTTP.ums6 ライブラリのプロパティのうち、「基本設定」タブで与える設定は以下の通りです。

  • 「基本設定」の「メソッド」にPOSTを指定します。
  • 「基本設定」の「URL」に、アクセス先のURLの値が格納されているPostURLを指定します。
HTTP.ums6の基本設定
HTTP.ums6の基本設定

「要求」で与える設定は以下の通りです。

  • 「要求」の「ヘッダ」の「キー」に「Content-Type」を指定します。
  • 「要求」の「ヘッダ」の「値」に「application/x-www-form-urlencoded」を指定します。
HTTP.ums6の要求のヘッダ
HTTP.ums6の要求のヘッダ
HTTP.ums6の要求のボディ
HTTP.ums6の要求のボディ

「応答」で与える設定は以下の通りです。

  • 「応答」の「ボディ」に、応答結果の保存先ファイル(デフォルトはResponseファイルで、シナリオファイルと同一フォルダの「Response.html」ファイルを与えている)を指定します。
HTTP.ums6の応答のボディ
HTTP.ums6の応答のボディ
  • 「応答」の「ステータスコード」に、応答結果のHTTP ステータスコードを入れる変数(デフォルトはステータスコード)を指定します。
HTTP.ums6の応答のステータスコード
HTTP.ums6の応答のステータスコード

変更履歴

版数
日付
修正内容
版数
1.0版
日付
2019/11/15
修正内容
初版
版数
1.1版
日付
2023/6/12
修正内容

・注意事項を削除
・ファイル名を「SS1911_7709_HTTPPostXWWWFormUrlencoded_1.0.1.zip」に変更

版数
1.2版
日付
2023/08/30
修正内容

・サンプルWebサーバーの起動にはPython 3.6.3が必要の文言修正、起動しない場合はアプリ実行エイリアスの設定が必要の文言追加
・ファイル名を「SS1911_7709_HTTPPostXWWWFormUrlencoded_1.0.2.zip」に変更

本コンテンツをダウンロードする前にこちらの利用条件を必ずご確認いただき、内容に同意をしたうえでダウンロードしてください。 また、"コンテンツの利用条件"は下のボタンからダウンロードし、お手元で保管してください。

"外部サービス連携"に関連するその他のサンプルシナリオ

サンプルシナリオ一覧へ戻る
当サイトでは、お客さまに最適なユーザー体験をご提供するためにCookieを使用しています。当サイトをご利用いただくことにより、お客さまがCookieの使用に同意されたものとみなします。詳細は、「プライバシーポリシー」をご確認ください。