概要
このレッスンでは、mablのAPIテスト機能について学びます。
このレッスンを受講する前に
以下のレッスンを修了していると、ここでの学習効果が一層高まります。
- mablアプリケーションの概要
- mabl Trainerの概要
学習目標 🧠
このレッスンを修了すると、以下の知識や技能が身につきます。
- API環境を構成する方法を理解する
- APIテストを作成して実行する方法を知る
- APIテストで変数とアサーションを追加する方法を知る
これが重要である理由
ブラウザーとのやり取りが必要なUIテストとは異なり、APIテストはメッセージレイヤー (httpプロトコルなど) で実行されるため、ブラウザーテストよりもはるかに高速に実行され、数分ではなく数秒で完了します。mabl APIテストエディターは、以下の機能を備えています。
- リクエストを連鎖させたり、データ駆動型テストを行ったりするための変数のサポートを含む、APIステップ (リクエスト) を作成する。
- APIリクエストを送信し、そのレスポンスデータを確認する。
- コードを記述せずに、アサーションを簡単に作成し、レスポンスに基づいて変数を作成する。
- mablとPostmanとのインテグレーションにより、JavaScriptを使用して、Postmanの関数とライブラリのサポートを含む、カスタムの事前リクエストやテストロジックを追加する。
- 左側のパネルでも変数を管理する。
- ステップをドラッグアンドドロップで並べ替える。
- [RUN TEST] ボタンを使用して、テスト全体をローカルで実行する。
ユースケース: mablのAPIテスト機能を使用して、以下のことを実現できます。
- エンドツーエンドのブラウザーテストを強化して、信頼性と速度を向上させる。
- ブラウザーテストで使用するテストデータを迅速かつ確実にセットアップ/破棄
- 変数を使用して、同じプラン内のUIテストとAPIテストの間でデータを共有
- APIが機能、信頼性、パフォーマンス、セキュリティに対する期待を満たしていることを検証することで、APIテストのカバレッジを拡大する。
使用方法
環境の設定
- APIテストを作成して実行する前に、APIエンドポイントのベースURLを追加して、mabl環境を設定することをお勧めします。
- これは、mablワークスペースの [Configuration] > [Applications] から実行できます。
- この設定では、APIリクエストの完全なURL (api/usersなど) を作成する場合に、api.urlという変数を使用することで、開発、ステージング、本番などのすべての環境でテストを簡単に実行できます。
- これにより、mablで最初のAPIテストを最初から作成したり、既存のPostmanコレクションをインポートしたりできます。
APIテストの作成
- デスクトップアプリケーションを開き、左サイドバーにある [New test] ボタンをクリックして、APIテストの作成を選択します。
- テスト作成フォームに入力し、[CREATE TEST] をクリックします。
- mabl APIテストエディターが表示され、テストを最初から作成したり、Postmanからコレクションをインポートしたりできます。
- Postmanからコレクションをインポートするには、以下の手順を実行します。
- ⬆をクリックします。
- APIリクエストのセットを含む既存のPostmanコレクション (JSONファイル) をインポートします。
- Postmanコレクションをインポートすると、PostmanからのAPIリクエストが、レビュー可能なmablテストステップに変換されます。
- 注: コレクションにフォルダーがないと、mablにインポートしても機能しないことに留意してください。
- APIテストを最初から作成するには、以下の手順を実行します。
- ➕ボタンをクリックします。
- ステップに名前を付けます。
- 目的のHTTPメソッドを選択します。
- 目的のURLを入力し、[Send] ボタンをクリックします。
- 注: APIテストの変数には@は必要ありません。例: /api/users
- テストを保存します。
アサーションの作成
- デフォルトでは、mablはステータスコードが200であることを期待するアサーションを自動的に作成します。そのAPIステップの [Validation and variable assignment] セクションから、このアサーションを変更したり、新しいアサーションを追加したりできます。
変数の作成
APIテスト内で変数を作成するには、主に以下の2つの方法があります。
- 左サイドバーの変数パネルを使用して作成
- 特定のAPIリクエストのレスポンス検証の一環として作成
通常は変数パネルを使用して、デフォルト値で変数を作成します。変数の値は後から、データテーブルや同じプラン内で実行された以前のテストからAPIテストに渡されるさまざまな値でオーバーライドできます。
上記のアプローチに従って、APIテストのステップごとに必要な数のアサーションと変数を作成できます。したがって、APIテストを実行したときにアサーションの1つが失敗すると、テスト実行は失敗としてマークされます。
- 以下のレスポンスデータに基づいて、アサーションと変数を簡単に作成できます。
- ステータスコード
- サイズ
- ヘッダー
- ボディ
- サポートされているアサーションタイプは、以下のとおりです。
- Equals (次の値に等しい)
- Does not equal (次の値に等しくない)
- Contains (次の値を含む)
- Does not contain (次の値を含まない)
- Is present (存在する)
- Not present (存在しない)
APIテストでの変数の使用
環境変数
複数の環境にまたがってAPIテストを実行する必要がある場合は、環境変数を使用して、環境固有の変数をAPIテストに渡すことができます。実行する必要がある手順は、以下のとおりです。
- APIエディターで、左側のパネルにある変数の追加ボタンを使用して、デフォルト値で変数を追加します。この変数はその後、環境に応じてオーバーライドされます。
- mablアプリケーションの [Configuration] > [Applications] で、環境名の横にある鉛筆アイコンをクリックして、環境変数を編集します。APIテストですでに定義したものと同じ変数名を使用してください。
- これで、目的の環境を選択することで、mablクラウドでAPIテストを実行できるようになり、mablはその環境から取得した変数値を使用します。
データ駆動型テスト
変数とデータテーブルを使用してテストの外部にあるテストデータを管理することで、データ駆動型ブラウザーテストと同様の方法で、データ駆動型APIテストを実行できます。以下のステップを実行します。
- APIエディターで、左側のパネルにある変数の追加ボタンを使用して、データ駆動型変数を指定のデフォルト値で追加します。
- mablアプリケーションの [Configuration] > [Datatables] で、APIテストで使用したものと同じ変数名でデータテーブルを作成し、テストするシナリオの数に応じて各変数に値を割り当てます。
- APIテストの詳細ページに戻り、左上の鉛筆アイコンをクリックしてテストを更新し、新しく作成したデータテーブルをテストに関連付けます。mablクラウドでテストを実行すると、変数名が一致する限り、mablはデータテーブルシナリオに使用される値に基づいて、デフォルトの変数値をオーバーライドします。
- データテーブルをAPIテストに関連付けたら、テスト詳細ページにある [RUN TEST] ボタンを使用して、mablクラウドでアドホックAPIテストを実行し、データテーブルの使用を選択して、すべてが期待どおりに動作するかどうかを検証することができます。
APIテストでのJavaScriptの使用
APIテストステップの以下の部分で提供されるJavaScriptコードを使用して、複雑なAPIテストやトラブルシューティングのシナリオを処理できます。
- 事前リクエストスクリプト: 条件付きロジックの実行要求が行われる前にコードが実行されます。
- テストスクリプト: 応答データの検証リクエストが行われた後にコードが実行されます。
まとめ
復習
ここで学習した内容
- APIテスト用の環境を設定する方法
- mablでAPIテストを作成して実行する方法
- APIテストで変数とアサーションを追加する方法