APIレスポンスの検証で有意義な結果を得るには、テストの目標に沿った対象を絞ったチェックを作成することが重要です。この記事では、APIテストのアサーションを最大限に活用するためのベストプラクティスについて説明します。
ステータスコードに注意する
APIテストエディターで新しいステップを実行すると、ステータスコードが200のデフォルトのアサーションが追加されます。201や204など、異なるステータスコードを返すAPIを検証する場合は、このステップが成功するようにアサーションを更新します。
複雑なアサーションを分割する
複数の検証を1つのアサーションにまとめないようにします。代わりに、検証する各対象領域に特化した小さなアサーションを複数作成します。こうすることで、テストの柔軟性が向上し、テストが失敗した場合のトラブルシューティングが容易になります。
APIがカリフォルニア州の連絡先リスト (名前、住所、電話番号を含む) を返していることを検証する必要があると仮定します。レスポンスボディ全体に対してアサーションを行う場合は、APIが期待どおりに機能していても、小さな変更が原因でテストが失敗する可能性があります。この問題を回避するには、小さなアサーションを複数作成して、このAPIの機能に不可欠なフィールドの検証を行います。以下に例を示します。
- APIが適切な数の結果を返していることをチェックする
- 1つ目の結果の名前を確認する
- 2つ目の結果の住所に
CA
が含まれていることを確認する - 3つ目の結果の電話番号が正規表現パターン
\(\d{3}\) \d{3}-\d{4}
と一致していることを確認する
JSONパス
JSONレスポンスボディを検証するには、JSONパスに関する知識が必要です。JSONパスの書き方がよくわからない場合は、JSONの構造と構文に関する記事を参照してください。
部分一致を活用する
mablでは、starts with
、ends with
、contains
、matches regular expression
など、部分一致に対してアサートするオプションを利用できます。部分一致のオプションを利用すると、応答が変化しても、テストを中断することなく、最も重要な点に着目することができます。部分一致のアサーションの例を以下に示します。
-
Content-Type
ヘッダーがimage/
で始まることをアサートする - ファイル名が
.jpg
で終わることを確認する - 日付フィールドの形式が正規表現パターン
20\d{2}-\d{2}-\d{2}
と一致していることを確認する
大文字と小文字を区別しない設定
部分一致のオプションに加えて、大文字/小文字が変動する値を検証する場合には、大文字と小文字の区別をオフにすることもできます。
ネガティブテストを含める
APIがエラーを正しく処理することを確認するには、失敗条件でのネガティブテストを含めます。たとえば、認証されていないリクエストを送信するステップを作成し、レスポンスのステータスコードが401であることをアサートします。
テストできる一般的なエラーステータスコードは、次のとおりです。
- 400 - bad request
- 401 - unauthorized
- 403 - forbidden
- 404 - not found
可能な限りローコードのアサーションを使用する
mablでは、ローコードのアサーションおよびカスタムスクリプトの検証を使ってAPIレスポンスの検証を行うことができます。可能な限り、ローコードのアサーションを使用します。ローコードのアサーションは保守しやすく、mablアプリケーションで結果を簡単に確認できます。
カスタムスクリプトの検証は次の場合に使用します。
- XMLレスポンスボディの検証
- ローコードのアサーションでは確認できない複雑なシナリオの検証 (フィールドのチェックサムが期待される値と一致していることを確認する場合など)