1.はじめに
前回に引き続き テスト自動化ツールの『T-DASH』 を使ってREST APIの自動テストを作ってみたいと思います。
前回はPythonを使って自動化しましたが、今回はRobotframeworkを使ってAPIテストの実装に挑戦してみます。
Robotframeworkについては、「Robot Framework クイックスタートガイド」にまとまっていますのでこちらを参照してください。
2.T-DASHとは
T-DASHの公式サイトでは以下のような特徴があるようです。
- 誰でもカンタンにテスト自動化ができる時代
- 日本語で書いたテストケースがスクリプトになる
- すぐに使えて操作が簡単
- 月額3,960円で開発スピードを高速化
誰でもカンタンにテスト自動化ができるというのは非常に魅力的に見えます。日本語で書いたテストケースがというのがキーになっているようなので、実際にどうなるか試してみます。
3.準備
公式サイトにある『カスタム動作を作成しよう / RobotFrameworkで作成』をみると、T-DASHで標準搭載していない機能は自分で作るようです。
例: Webアプリ操作、ファイル操作、スマホアプリ操作、DB操作、API操作などなど
T-DASHの対向になるAPIは、実際にテストで使ったサイトAPIをここに公開するわけにはいかないので、前回と同様にテスト用のサイト httpbin.org を使います。
4.テスト実行用のPythonファイルの準備
今回はPythonコードは作成しません。
5.T-DASHのカスタム動作の作成
①プロジェクトを作る
「T-DASH」を起動すると「プロジェクト一覧」が表示されます。
カスタム動作を作るには、①の「+プロジェクトを作成」をクリックします。今回は以下の値を設定しました。
- キー: API02
- プロジェクト名: RESTAPIのテスト(RobotFrameworkのみ)
上記値を入力して「作成」をクリックすると、プロジェクト一覧に追加されます。
②カスタム動作を作る
カスタム動作は、「動作定義」にある「カスタム動作」タブから作成します。
「+新規カテゴリ作成」をクリックし、作成する動作のグループを作成します。
今回は以下の値を設定しました。(色やアイコンも変更できるようです)
- キー: API2
- 動作カテゴリ: REST2
上記値を入力して「作成」をクリックすると、カスタム動作の一覧に追加されます。
T-DASHのテストケース作成するときに使う以下の動作のグループを作っています。
今回はこのグループに「REST2」を追加しようとしています。
カスタム動作で使用するライブラリの追加
「+カスタム動作を追加」をクリックして、以前の記事で作成した APITest.py
と同じ動作を作成します。
今回はこの関数のうち、上の2つ(GET送信する、ステータスコードをチェックする)を作成します。
APITest.py |
カスタム動作 |
---|---|
def send_request_get(url): | GET送信する |
def check_rest_status_code(status_code): | ステータスコードをチェックする |
応答のJSONの値を取得する | |
取得した値の一致を確認する |
「+ライブラリを追加する」をクリックし、カスタム動作で使うためのライブラリを追加します。
テストライブラリの「RESTinstance」を使用するので、pip installのテキストボックスに「RESTinstance」を入力し、「+」まをクリックします。
少し待ちます。
pipのアップデートのメッセージが出力されますが、無視して進めます。
Libraryの横にあるテキストボックスに「REST」を入力し「+」ボタンをクリックします。
「閉じる」をクリックします
これで、カスタム動作を作るためのライブラリの準備が完了しました。「動作関数作成」画面の「+ライブラリを追加する」の横に REST
が表示されていれば成功です。
カスタム動作の作成
動作名などの必要な情報の入力と、RobotFrameworkによるプログラミングを行います。
フィールド | 値 | 説明 |
---|---|---|
動作名 | GET送信する | 動作の名前を設定します。 |
利用変数 | 画面定義を使用を選択 | 「通常の変数として使用」を選択すると、後述するデータドリブンの設定が使えないようでしたので、「画面定義を使用」を選択します |
利用変数 | 設定値 | 利用する変数を選択します。設定値のみデータドリブンで設定できるようです。 |
フォーマット | URL「設定値」にGETでREST送信(RF)する | 利用変数で選択すると「設定値」 がテキストボックスに設定されるので、それを利用して文章を作ります。※埋め込み変数として使うようです。 |
動作種類 | 操作 | 何に使うかわかりませんでしたが、動作の分類っぽいので操作を選択します |
RESTInstanceの キーワードドキュメント を参照しながら作成します。以下はGETの使い方です。
RobotFrameworkのコードを以下のように作成します。
${value}(valueにURLが設定されるのを想定)の変数に入力した値が格納されますので、それを利用したコードにします。
「保存する」をクリックします。
残りも同様に作成します。
ステータスコードをチェックする
6.T-DASHのテストケースの作成
作成したカスタム動作を使うT-DASHのテストケースを作成します。
6-1.ステータスコードを確認するテストを作る
左のメニューにある「テストスイート」から「テストスイートを作成する」をクリックします。
テストスイート名を入力して「作成」をクリックします。今回は「APIのテスト(RobotFramework)」と入力しました。
「テストケースを作成する」をクリックします。
テストケース名を入力して「作成」をクリックします。今回は「GETステータスコードのチェックテスト」と入力しました。
作成したテストケースをクリックします。
先ほど作成したカスタム動作「REST
」が動作カテゴリにあるので、それをクリックします。
※作成した2つの動作もあります。
再掲:
T-DASHの対向になるAPIは、実際にテストで使ったサイトAPIをここに公開するわけにはいかないので、テスト用のサイト httpbin.org を使います。
このテストでは以下のREST APIを使用します。最後の200の数字がステータスコードで使用されます。
https://httpbin.org/status/200
動作にある「GET送信する」をクリックします。「設定値(設定値3)」が入力できるようになるので、そのセルに「https://httpbin.org/status/200
」を入力します。
2行目を選択します(どのセルでも良いので動作を作成する行をクリックします)
動作にある「ステータスコードをチェックする」をクリックします。「設定値(設定値3)」が入力できるようになるので、そのセルに「200
」を入力します。「保存する」をクリックします。
6-2.テストを実行する
6-1までで作ったテストケースを実行します。
「選択したテストを実行する」をクリックします。
テストが完了したら「テストレポート」を開くをクリックします。
レポートが表示されます。
最低限の情報だけのシンプルなレポートです。必要な情報は揃っているので十分だと思います。
7.データドリブンの設定
今回はデータドリブンは割愛します。前回の記事と同じやり方で簡単に設定してバリエーションのテストが可能でした。
8.T-DASHの良い点、悪い点
8-1.T-DASHの良い点
- RobotFrameworkで簡単に動作が増やせる
- RobotFrameworkにはSSHLibraryやSOAPLibrayなど多くのテスト用ライブラリが準備されている
- 開発できるエンジニアが動作を増やして、スキルのないテスターの人たちに配布して自動テストを布教できる
- 標準の動作だけでは、テストできない場合も、誰かが動作を作って配布するだけで、自動テストを作れる人を増やせる点は非常に良いと思う。
- 配布も作ったカスタム動作をエクスポートできるので簡単そうな印象です。
8-2.T-DASHの悪い点
悪いというわけではありませんが、躓いた点や使いにくいと感じた点について書きます。
- SetupやTeardownを設定できない?
- 前回も書きましたが、やはりこれができないのは、Setupのテストケース、Teardownのテストケースを作らねばならず、かならず実行される保証がないので使いにくい
- カスタム動作の確認をカスタム動作をつくりながら実行できない
- 前回も書きましたが、今回もカスタム動作の確認が面倒だと感じました。
9.さいごに
有料のツールははじめてではありませんが、これだけ使えて3,960円はかなりオトクだと思います。開発できるスキルがあれば、自動化の可能性は無限大だというのが、個人的に面白いと思います。
コンセプトを維持しつつ、ユーザーの声を反映している良いツールだと思うので、今後のアップデートにも期待大です。
前回と同じコメントになりますが、本当に使いやすい、広めやすいツールだと感じます。