3.1.3. リクエスト単体テストの実施方法(ファイルアップロード)¶
ファイルアップロードのテストは、ウェブアプリケーションのテストの一種である。 したがって、ファイルアップロードのテストを実施するには、ウェブアプリケーションのリクエスト単体テストの実施方法が前提となる。
ファイルアップロードのテストをする場合、HTTPリクエストパラメータにアップロードファイルを指定する必要がある。本項では、HTTPリクエストパラメータにアップロードファイルを指定する方法を解説する。
3.1.3.1. アップロードファイルの記述方法¶
HTTPリクエストパラメータの値に、以下の記述をすることで、 HTTPリクエストパラメータにアップロードファイルを指定できる。
${attach:ファイルパス}
補足
ファイルパスは、テスト実行時のカレントディレクトリからの相対パス、すなわち、プロジェクトルートディレクトリからの相対パスで記述する。
3.1.3.2. バイナリファイルの場合¶
画像ファイル等、バイナリファイルをアップロードする場合は、事前にファイルを配置しておき、 そのファイルへのパスを指定する。
以下の例では、uploadfileというキーで、プロジェクト配下のtest/resources/imagesディレクトリにあるpicture.pngをアップロードする。
<project_root>
+ test
+ resources
+ images
+ picture.png
LIST_MAP=requestParams
uploadfile | comment | public |
---|---|---|
${attach:test/resources/images/picture.png} |
アップロードします。 | false |
3.1.3.3. 固定長ファイル、CSVファイルの場合¶
固定長ファイルや CSVファイルをアップロードする場合、そのファイル内容をテストデータシートに記載する。テスト実行時に、自動テストフレームワークがこのデータを元にファイルを作成する。
以下の例では、workディレクトリ配下にmember_list.csvファイルを作成し、 そのファイルをアップロード対象として指定している。
LIST_MAP=requestParams
uploadfile | comment |
---|---|
${attach:work/member_list.csv} |
10月度新規会員を登録 |
SETUP_FIXED=work/member_list.csv
// ディレクティブ
text-encoding | Windows-31J | |
record-separator | CRLF |
// データ
name | age | address |
---|---|---|
山田太郎 | 30 | 東京都港区芝浦1-1 |
田中次郎 | 20 | 大阪府門真市東田町2-2 |
補足
固定長ファイルやCSVファイルをアップロードする場合でも、 バイナリファイルと同様に、事前にファイルを用意しておくことも可能であるが、 テストデータの保守容易性を考慮するとテストデータシートに記載しておくべきである。