APIステップを使用すると、ブラウザまたはモバイルテストのコンテキスト内でAPIを呼び出すことができます。テストの目標に応じて、APIステップは以下を含むさまざまな目的に使用できます:
- API レスポンスの値を変数として抽出して保存し、後続のテストステップで使用できます
- UIがバックエンドと整合していることを検証する
- テストデータをシードして、アプリケーションを特定の状態にすばやく設定し、UIセットアップをバイパスできます
この記事では、mablトレーナーのAPIステップ編集者からAPIステップを作成する方法について説明します:
APIを知る
APIステップを作成する前に、使用するAPIを理解していることを確認してください。たとえば、リクエストボディを含める場合は、適切な形式を確認し、必要なContent-Typeヘッダーを含めてください。
必要な認証、エンドポイント、ヘッダー、またはリクエストボディの形式の詳細については、APIのドキュメントを参照してください。
リクエストのフォーマット
トレーニングセッションでリクエストをフォーマットするには、APIステップ編集者を開き - + (ステップを追加) > APIリクエスト - リクエストメソッドとエンドポイントを追加します。
変数の参照
リクエストで既存の変数を参照するには、mabl変数構文を使用します:{{@variableName}}。
たとえば、エンドポイントが https://api.example.com/users の場合、ベース API URL - https://api.example.com - を変数 {{@API_URL}} に保存し、{{@API_URL}}/users をエンドポイントとして入力できます。
注
mablブラウザテストとモバイルテストでは、アプリケーション/環境のペアに関連付けられた{{@api.url}}変数にアクセスできません。アプリケーションに関連付けられたベースAPI URLにアクセスするには、APIステップ専用の新しい変数を作成する必要があります。例:{{@BASE_URL}}。
認証
API ステップ編集者には、2つのサポートされている認証タイプが含まれています:
- Basic認証
- ベアラートークン
APIがカスタムヘッダー(x-api-keyなど)を必要とする場合は、AuthorizationをNoneに設定し、Headersセクションでキーと値のペアを手動で追加してください。
リクエストボディ
APIリクエストにボディを追加すると、mablはテキストエリアに表示されているとおりにコンテンツを送信します。リクエストボディを含むリクエストには、正しいContent-Typeヘッダーを追加することを忘れないでください。
サポートされている形式は以下の通りです:
| Content-Type | 形式 | 例 |
|---|---|---|
| application/json | 標準のJSONオブジェクトまたは配列 | {"id": 123, "status": "active"} |
| application/x-www-form-urlencoded |
|
name=John+Doe&email={{@user_email}} |
| text/plain | 未加工の書式なしテキスト | This is some text. |
| text/xml | タグを含む完全なXML構造。 |
さらに多くの認証タイプやリクエスト形式をお探しですか?
mablトレーナーのAPIステップエディターは、UIテスト内での迅速なセットアップ用に設計されています。OAuth 1.0/2.0、バイナリ、Multipart/form-data、GraphQLなどの高度な認証タイプやリクエスト形式が必要な場合は、APIテストをAPIテストエディターで作成することをお勧めします。APIテストからのデータは、共有変数を使用してUIテストに渡すことができます。
レスポンスの検証
API ステップ編集者でリクエストを送信すると、mablはレスポンスステータスが200であることを確認するデフォルトのアサーションを追加します。これを変更したり、追加の検証を加えたりするには、API ステップ編集者のアサーションタブをクリックしてください。
サポートされているアサーションタイプには、次のものがあります:
- Status - リクエストが期待されるレスポンスステータス(200、201、401など)を返すことを検証します。
-
Header - JSONパスを使用して、レスポンスヘッダーからの情報を検証します。例:
content-type。 -
Body (json) - JSON pathを使用して、JSON レスポンスボディからの情報を検証します。例:
user.idまたはitems[0].name。 - Body (text) - JSON以外のレスポンスボディを検証します。このタイプのアサーションは「contains」アサーションで最も効果的に機能します。
アサーションをプレビューするには、矢印をクリックしてレスポンス値を転送します。
失敗時の動作
デフォルトでは、アサーションはすぐに失敗にするとしてマークされます。これは、アサーションが失敗した場合、テストの実行が停止し、「失敗」とマークされることを意味します。アサーションが失敗してもテストの実行を継続したい場合は、API ステップ編集者の詳細タブで失敗時の動作を更新してください。
その他の失敗オプションには、以下が含まれます:
- テスト終了時に失敗にする - アサーションが失敗した場合、テストは実行を続け、最後に「失敗」とマークされます。
- 失敗時も続行し、警告を表示する - アサーションが失敗した場合でも、ステップは成功し、警告がマークされます。
レスポンスから変数を作成する
後続のテストステップでAPIレスポンスデータを使用する場合は、変数タブで変数を作成してください。APIステップを保存した後、mablトレーナーの他の変数と同様に新しい変数を使用できます。
変数は、次のいずれかのソースから作成できます:
- Response - API レスポンス全体を変数に保存します
- Status - レスポンスステータスを変数に保存します。
- Header - 特定のレスポンスヘッダーの値を変数に保存します。
-
Body (json) - JSON pathを使用して、特定の値を変数に保存します。例:
user.idまたはitems[0].name。 - Body (text) - レスポンスボディをテキストとして変数に保存します。
レスポンスからCookieを設定する(ブラウザのみ)
APIレスポンスにSet-Cookie headerが含まれている場合、詳細セクションのブラウザでレスポンスCookieを設定チェックボックスをオンにすることで、それらのCookieをブラウザセッションに自動的に適用できます。
Cookieへのアクセス
-
ドメインマッチング - Cookieはドメイン固有です。APIステップが
api.example.comのCookieを設定しても、次のテストステップがwww.different-domain.comに移動する場合、ブラウザはそのCookieを使用しません。APIステップがUIテストステップと同じベースドメインを使用していることを確認してください。 -
HTTP only Cookie -
HttpOnlyCookie は JavaScript 経由でアクセスできないことに注意してください