APIリクエストとレスポンスの検証

mabl Trainerでは、「APIリクエスト」ステップ (別名APIステップ) を介して、APIリクエストを送信し、レスポンスをやり取りすることができます。テストカバレッジを直接操作せずにUIで拡張するには、これらのステップを使用します。現在、APIステップ機能は、HTTPまたはHTTPSで公開されるAPIをサポートしています。

mabl Trainerでは、「APIリクエスト」ステップ (別名APIステップ) を介して、APIリクエストを送信し、レスポンスをやり取りすることができます。テストカバレッジを直接操作せずにUIで拡張するには、これらのステップを使用します。現在、APIステップ機能は、HTTPまたはHTTPSで公開されるAPIをサポートしています。

📘

Enterprise機能

この機能は、Enterpriseプランのお客様だけでなく、mablのすべてのトライアルでご利用いただけます。

APIリクエストステップの作成

APIステップを追加するには、mabl Trainerを使用する必要があります。既存のテストの編集に使用する "Quick Edit" トレーナーでも、これらのステップを追加できます。

590590

APIリクエストステップの使用方法

基本

表示されるモーダルの上部に、以下の項目があります。

  • APIリクエストメソッドのドロップダウン
  • URLフィールド
  • [Send] ボタン
19841984

リクエストメソッドのドロップダウンをクリックすると、指定したURLに対して実行する具体的なAPIリクエストメソッドを選択できます。選択できるリクエストメソッドはいくつかあります。各メソッドの詳細については、このリソースを参照してください。最後に [Send] ボタンをクリックすると、目的のURLにリクエストが送信されます。必要な場合は、通常の {{@variableName}} 構文を使用してURLに変数を指定できます。この構文は、通常、前のステップで作成した変数を参照するために使用します。

19861986

リクエストの変更

左下には、[Headers]、[Authorization]、[Body] というセクションで構成された大きなモジュールがあります。このオプションのセクションを使用すると、最初のAPIリクエストの各部分を実際のニーズに合わせて変更できます。たとえば、[Headers] セクションには、実際のAPIレスポンスのヘッダーがJSON形式で表示されます。さらに、リクエストの [Body] の部分では、通常のJavaScriptステップと同様に {{@variableName}} 構文の変数を使用できます。

930930

リクエストの送信

正しいリクエストメソッドを選択し、URLフィールドに入力し、上述したオプションの情報を指定すると、リクエストを送信できる状態になります。リクエストを送信するには、モーダルの右上にある [SEND] ボタンをクリックするだけです。

16401640

リクエストを送信すると、左下の [Request] モジュールが [Response] に変わり、リクエストの結果が表示されます。

19861986

レスポンスは、以下のフィールドから成るJSONオブジェクトとして表示されます。

  • headers: nameフィールドとvalueフィールドから成るHTTPレスポンスヘッダーの配列
  • status: HTTPレスポンスのステータス

レスポンスには、以下のフィールドが含まれる場合もあります。

  • body: 文字列に変換されたレスポンスボディ
  • json: 構文解析されたJSON (HTTPレスポンスのボディがJSONオブジェクトを含んでいる場合)

結果の使用方法

結果を受信した後、リクエストをいくつかの方法で操作できます。

アサーションの実行

モーダルの右側にあるモジュールのデフォルトは [Assertions] です。ここでは、結果のStatus, Header, Body (JSONまたはテキスト) をアサートすることができます。たとえば、レスポンスコードが200かどうかや、レスポンスのContent-Typeヘッダーがapplication/jsonかどうかをアサートできます。

19861986

レスポンスの抽出による変数の作成

レスポンスの一部を使用して変数を作成し、その変数を後でテストに使用することができます。さらに、ドロップダウンから [Response] オプションを選択して、レスポンス全体を特定の名前の変数として保存することもできます。この変数は、JavaScriptステップの中で使用するなど、後でさまざまな目的で使用することができます。レスポンスから特定の値を取得するために、パスを指定することもできます。

19861986

また、レスポンスから、{ "mail": "[email protected]" }などのJSONボディを取得することもできます。レスポンスからjson.mailフィールドを抽出し、それをemailAddressという変数に割り当て、標準的な「変数使用」の手順を使用して、後半のステップでアプリケーションのテキストフィールドにこの変数を入力します。

19861986

構文

レスポンスからデータを取得する方法は、階層型のJSONドキュメントからJSONの値を抽出する方法と同じです。たとえば、下のレスポンスから値1010 Park Streetを抽出する場合、[Assertions] または [Variables] で [JSON (Body)] が設定されているときには、属性people[1].addressを使用してこの値を指定します。値Juneauを抽出するには、属性capitals.Alaskaまたはcapitals["Alaska"] を使用します。

{
  "headers": [
    {
      "name": "content-type",
      "value": "application/json"
    }
  ],
  "json": {
    "people": [
      {
        name : "Ada",
        address: "1 Main Street"
      },
      {
        name : "Charles",
        address: "1010 Park Street"
      }
    ],
    "capitals": {
      "Alabama": "Montgomery",
      "Alaska": "Juneau"
    }
  },
  "status": 200
}

一連の作業の終了後に [SAVE] をクリックすると、ステップがテストに追加されます。