今回の目的
今回は、Testimでテスト中にファイルのダウンロード(ダウンロードしたファイルをValidate)や、アップロードする手順を紹介します。
Testimは、Webの機能テスト自動化ソリューションですので、Windows Explorerの操作などは少し工夫が必要です。もし、Web外の操作が多い場合は、Tricentis Toscaもご検討ください。160以上のテクノロジーに対応した優れものの自動化ソリューションです。
https://qiita.com/Hiro_Tricentis/items/7e22017da49423e504f8
実装のアプローチ
正式ドキュメントは、以下を参照ください。
ファイルダウンロード:https://help.testim.io/docs/validate-download
ファイルアップロード:https://help.testim.io/docs/file-upload-step
ファイルダウンロードの実装イメージ
仮にダウンロードを実施した場合に、Windows Explorerが開きダウンロードの場所を聞かれますが、Explorerの操作は出来ないので、以下のようなアプローチをとります。
- Chromeの設定でExplorerを立ち上げずに決まった場所へファイルを保存するように設定
(この設定で、ダウンロードリンクをクリックした際に所定の場所へ自動ダウンロードされる) - 保存されたファイルをNode.jsを利用して確認(pdf-parseなどのパッケージを利用)
ファイルアップロードの実装イメージ
こちらもダウンロード同様にExplorer操作ができないので、以下のようなアプローチをとります。
- アップロードするファイルを予めTestim上に準備
- アップロードリンクを押下した際は、裏側では<input type="ファイル名">という操作を行うので、直接#1で準備したファイルを<input type=>に登録することでアップロードを実施する
事前設定
この処理はChromeのみで有効です。Chromeはversion 67以上が必要です。
-
ダウンロード時にWindows Explorerが開かないように設定
chrome://settings/downloadsを開き、以下を設定します。
保存先: 自動で保存される先を登録
ダウンロード前に各ファイルの保存場所を確認する:無効
-
PDFをブラウザで開かずに保存するように設定
chrome://settings/content/pdfDocuments
PDFをダウンロードする:有効
-
Testimからローカルファイルへのアクセス許可
chrome://extensions/
Testim Editorの詳細を開く
ファイルのURLへのアクセスを許可する:有効
テストステップ作成 - ファイルダウンロード~PDFファイル確認
- Web画面でダウンロードを実施するステップまでレコーディング
- +ボタン -> Testim Predefined Stepを選択
- Actions -> Validate Downloadを選択
- ADD STEPにて、任意の名前で登録
*Shared Stepにチェックを入れることで再利用できます
- Validate Downloadを開き、以下のコードをコピーし登録します
以下のコードはサンプルコードとなります。適宜編集してご利用ください
6. 右ペインのPROPERTIESの+PARAMSをクリックし、引数を登録します。
*PARAMS名はをクリックすることで変更できます。
*以下の引数を全て登録します
PARAMS名 | 種類 | 値 | 説明 |
---|---|---|---|
PACKAGE | pdf-parse@latest | 登録するパッケージ名。Node.jsのpdf-parseを利用 | |
customPath | JS | "<ダウンロードされるファイルの保存ディレクトリ>" | Windowsの場合は、” C:\\Users\\shuka\\Downloads“のように、¥をエスケープするように記載 |
timeoutMs | JS | 20000 | ダウンロード待ちをする際のタイムアウト(ms)。数値なのでquotationしない |
expectedText | JS | "検索する文字列" | pdf内に文字列が存在する場合はテストを正常終了。文字検索は、部分一致(contain)で実行されます |
expectedPages | JS | 1 | どのページに検索文字列が存在するか指定。数値なのでquotationしない |
例:
7. PROPERTIES内のOverride timeoutを60秒(60000)に変更
*node packageをインストールする為に、デフォルトの20秒以内に完了しない可能性あり
8. CLIの実行
テスト実行前にコマンドラインより、以下を実行します。
npm i -g @testim/testim-cli && testim connect
上記を実施しテストを実行することで、テスト内でPDFをダウンロードし、中身を確認することが可能となります
*なお自動でダウンロードしたファイル名は検知する仕組みとなっています。
テストステップ作成 - ファイルアップロード
基本的には、レコード操作で以下を登録します。
- Web上のアップロードボタンをクリック
- Explorerが立ち上がるので、ファイルを指定
上記を実行すると、以下のようなInput fileステップが自動的に作成されます
これは、Web上の<input type=>に対して、指定ファイルをアップロードするという操作です。
ですので、レコードした際の上記#1~#2の操作は不要となりますので、ステップから削除します。
*Web上でクリックを行い、Explorerが立ち上がってくる部分