APIテストの概要

mablは、ブラウザを介したE2Eテスト内で、APIステップを追加できます。それとは別に、テストしたいアプリケーションのAPIをエンドツーエンドで自動テストする「APIテスト」も可能になりました。ブラウザを介する必要があるブラウザテストとは異なり、APIテストはHTTPプロトコルといったメッセージレイヤで実行されるため、ブラウザテストよりもはるかに高速に実行されます。

ユースケース

APIテストのユースケースとして以下が考えられます。

  • ブラウザテストが依存するテストデータを高速に、確実にセットアップ・リセット(teardown)したい場合
  • ブラウザテストとAPIテストを同じPlanに設定して、変数の形でテストデータを共有したい場合
  • APIテストが機能性、信頼性、パフォーマンス、セキュリティに対して期待を満たしているか確認したい場合

APIテストにはmabl Linkを利用してください

APIテストはSettings > Networking に表示されている静的IPからのアクセスになりません。mabl Linkを介してのアクセスが必要になります。

mabl API test run results.

mabl API test run results.

APIテストを利用する際の流れ

APIテストをする場合の、おおまかな流れは以下のようになります。

  • Configuration > Application からAPIのURLを設定します。これによってさまざまな環境(Environment)からAPIテストを簡単に実行できます。
  • APIテストの有名ツールであるPostmanを使ってAPIテストを作りましょう。作成したテストはmablにインポートできるため、すでにPostmanスクリプトがある場合は、それを簡単に取り込めます。
  • mablでAPIテストを実行し、結果を確認します。
  • APIテストを更新する場合は、mablからも更新できますし、Postmanを使ってAPIテストを更新し、再度、mablにimportすることも可能です
  • mablでスケジューリング設定を行えば、デプロイや定期的なタイミングで自動実行可能です

Postmanと統合する

アーリーアクセスプログラムでは、アサーションの作成や変数の設定を行う場合、PostmanのJavaScriptを利用する必要があります。将来的にはJavaScriptを使わずに、APIのレスポンスに応じてアサーションを作成したり、変数を設定できるようになるよう開発を行っています。

環境の設定

mablでAPIテストを作成実行する前に、APIのURLを設定します。設定は、 Configuration > Applications から行い、URLを追加したときに「ウェブアプリ」か「API」を選択できるので、「API」を選択しましょう。

環境にAPIのURLを追加

環境にAPIのURLを追加

この設定によってシステム変数「api.url」が利用できるようになります。もし、APIリクエストを投げるためにフルパスを指定したい場合は「{{api.url}}/api/users」のように指定できます。

APIテストの作成

すでにPostmanを利用しているならば、Postmanのテスト(JSONファイル)をインポートして、APIテストを開始するのがおすすめです。Postmanの pm functionによって、APIリクエストやそのレスポンス検証が可能になります。

変数を扱いたい場合のベストプラクティスは、環境変数に「api.url」を定義し、PostmanのスクリプトをのURL部分を以下のように修正してください。

そうすることで、Postmanスクリプトをインポートしたときに、mabl内のシステム変数「api.url」を自動で使えるようになります。これによってインポート時の修正の手間も省けます。

変数の記述について

Postman上で変数を利用する場合、Postmanの記述方法である「{{variableName}}」を使用してください。この記述方法だと、mablにインポートされたときに問題なく動作します。ただし、mablでブラウザテストを操作する場合は、mablの変数記述方法である「{{@variableName}}」を利用する必要があります。違いにご注意ください。

データ駆動型のテストを作成する場合、コレクションレベルで定義されたPostman変数を利用することを推奨します。そうしておくことで、mablにPostmanをインポートしたときに、データ駆動型変数(data-driven variables)に変換されます。Postmanでこのような変数を定義するには「Edit」をクリックし、「View more actions」メニューから「Variables」タブに移動して行います。

Postman上の変数はコレクションレベルで管理

Postman上の変数はコレクションレベルで管理

mablでは、これらの変数を使用して、Plan内のAPIテストとブラウザテスト間でデータを共有したり、データテーブルを利用して同じAPIテストで複数のデータ駆動型シナリオを実行できます。

Postmanコレクションのエクスポート

Postmanコレクションのエクスポート

ポストマン関数(pm function)を利用してテストをスクリプト化する方法は、Postmanでスクリプトを作成する を参考にしてください。

PostmanのコレクションをJSONファイルとしてエクスポートしておき、mablでそれを使ってAPIテストを作成します。

mablデスクトップアプリでは、左のサイドバーにある「New test」ボタンをクリックすると、ブラウザテストとAPIテストを選択する画面が表示されます。

mablでテスト作成する場合は、最初にテストの種類を選択

mablでテスト作成する場合は、最初にテストの種類を選択

テスト作成時のフォームを入力し、「Create test」ををクリックします。すると、mablのAPIテスト作成エディタが表示されます。以下のアイコンをクリックし、先程エクスポートしたPostmanのJSONファイルをインポートすれば、新しくAPIテストが作成されます。

Postmanコレクションをmablにインポート

Postmanコレクションをmablにインポート

Postmanコレクションをインポートするだけで、APIリクエストがmablのステップに変換されます。

APIテストの実行

mablデスクトップアプリを利用すれば、テスト編集しながらAPIテスト実行を試せます。

もちろん、mablクラウドからAPIテストを実行することもできます。アドホックに実行するなら、テストの詳細画面に移動し、「Run test」ボタンをクリックするだけです。ボタンを押したあとすぐに、結果へのリンクが表示されます。

APIテストをスケジュールやデプロイごとに実行する場合は、Planに追加すればOKです。PlanにはブラウザテストもAPIテストも療法を含めることができ、Plan内のテスト間で変数を共有することもできます。

最大実行時間について

APIテストの最大実行時間は9分です。もしもっと長い時間実行したい場合は、 [email protected] からサポートチームに連絡し、オプション設定についてご相談ください。

APIテストのアップデート

APIテストを更新するには、テストの詳細ページから「Edit steps」をクリックしてください。

「Edit steps」ボタンをクリックして編集

「Edit steps」ボタンをクリックして編集

mablのAPIエディターをつかって、既存のリクエストを修正したり、Postmanコレクションから更新された部分をインポートできます。

APIテストもリビジョン管理されているため、テストの詳細ページにある「Change history(変更履歴)」タブから簡単に以前のバージョンにリバートも可能です。

Updated 3 months ago


APIテストの概要


mablは、ブラウザを介したE2Eテスト内で、APIステップを追加できます。それとは別に、テストしたいアプリケーションのAPIをエンドツーエンドで自動テストする「APIテスト」も可能になりました。ブラウザを介する必要があるブラウザテストとは異なり、APIテストはHTTPプロトコルといったメッセージレイヤで実行されるため、ブラウザテストよりもはるかに高速に実行されます。

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.