【Day23】ファイルをアップロードする / runnチュートリアル
はじめに
一人アドベントカレンダーとしスタートしてそろそろラストスパートです。
本記事は API シナリオテストツールでもある runn のチュートリアルをステップバイステップで理解して貰おう!というのが趣旨です。
25 日間のチュートリアルを経て、 runn を使っての API シナリオテストや、 API と連動させる自動化処理を一人で行えるようになることを目標にしています。
runn is 何?という方は、以下に紹介記事を書いていますのでよろしくお願いします。
チュートリアルを実際に試し、もし躓いた箇所があれば、記事のコメント欄にお知らせいただけると幸いです。
前日の記事は「CIに組み込んでみる」でした。
ファイルをアップロードする
ニッチなリクエストパターンとして multipart/form-data がありますが、今回はファイルアップロードをやっていきます。
今回も Cookie を利用します。
Cookie を利用したシナリオについては "リクエストJSONを外部ファイル化する" にありますので、参照ください。
ステップ毎にみていきます。
アップロード対象のファイルをダウンロードします。
ダウンロードには外部コマンドの curl を利用しています。
外部コマンドの実行については "外部コマンドを実行してみる" を参照ください。
本記事のメインである multipart/form-data 形式によるリクエスト方法になります。
body がいつもは application/json
だったのが multipart/form-data
となります。
multipart/form-data 以下は、パラメータを指定しますがファイルパスを指定すると、multipart にしてリクエスト送信されます。
こちらの画像アップロードの API は成功時に 201 となるようです。
文字列の比較で startsWith
というのがありますが、こちらは先頭文字が同一であれば true になります。
以下は実行コマンドになります。debug
オプションをつけてみると挙動がわかっていいです。
% SESSION="miserarenaiyo" runn run --scopes run:exec day23/file-upload.yml --verbose
=== ファイルアップロードする (day23/file-upload.yml) ... ok
--- ファイルをダウンロードしてくる (downloadFile) ... ok
--- ファイルをアップロードする (fileUpload) ... ok
1 scenario, 0 skipped, 0 failures
明日は「runn を利用したちょっとしたツール作成してみる」です。
Discussion