APIテストのトラブルシューティング

APIテストで予期しない結果をトラブルシューティングするためのヒント

APIテストが失敗した場合や予期しない結果が生じた場合に、問題を切り分けるためのステップについて説明します。

  • 失敗したステップの調査
  • 最後に成功したテストの特定
  • コンソールログ出力の追加
  • ローカル実行とクラウド実行の比較
  • プランの設定とアドホック実行の設定の比較
  • Postmanの結果との比較

失敗したステップの調査

[テスト詳細] ページで失敗したステップをクリックすると、何が起きたか詳細な情報を得ることができます。

  • 上部にレスポンスステータスが表示されます。
  • [ASSERTIONS] タブには、失敗したアサーションが表示されます。
  • [ERRORS] タブには、エラーが表示されます。
1280

[テスト詳細] ページでの個々のステップの調査

トラブルシューティングの手がかりとなるポイントには、以下のようなものがあります。

  1. このステップではどのような結果が期待されているか?
  2. このステップでは前のステップで生成された変数を使用しているか? もしそうであれば、前のステップでどのようなイベントが起きたか?
  3. APIのヘッダーやボディに必須フィールドはあるか?

📘

変数とアサーションの再確認

JSONレスポンスボディからのアサーションや変数の割り当て時にステップが失敗する場合、APIテストエディターを開いて、JSONパスが正しいかどうかを確認します。

クラウド実行での変数の初期値と最終値を確認するには、[テスト詳細] ページで [すべて表示] をクリックします。

最後に成功したテストの特定

失敗したAPIテストが以前は成功していた場合、最後に成功したテストが参考になるかもしれません。個々のステップを調査して、2つの実行の間で異なる結果が生じた原因と思われる違いを特定します。

コンソールログ出力の追加

ステップで何が起きているかについて、詳細な情報が必要な場合は、デバッグのためにコンソールログ出力を追加できます。

ローカル実行とクラウド実行の実行の比較

APIテストの結果がローカル実行とクラウド実行で異なる場合は、mablがURLエンドポイントにアクセスできるかどうかを確認する必要があります。

パブリックインターネットからURLエンドポイントにアクセスできない場合、ネットワーク問題のトラブルシューティングと設定を行うための方法がいくつか考えられます。

ワークスペースで、エンドポイントへのアクセスにmabl Linkを使用している場合は、次の手順を実行します。

  1. Link Agentがアクティブであることを確認する
    • [ワークスペース設定] > [ネットワーク] にアクセスして、Link Agentがアクティブであることを確認します。
  2. Link Agentを使用するように環境が設定されていることを確認する
    • [テスト環境設定] > [アプリケーション] にアクセスします。
    • Link Agentを使用すべき[環境]の横にある鉛筆アイコンをクリックします。環境の設定を変更するEdit environment ページが表示されます。
    • Advanced セクションで、Use link agent ボックスがオンになっていることと、ドロップダウンでLink Agentが選択されていることを確認します。

プランの設定とアドホック実行の設定の比較

APIテストがアドホックのクラウド実行では成功するのに、プラン実行では失敗する場合、プランの設定とアドホック実行の設定を比較します。

プランの設定

テストがプラン実行の一部であった場合、そのプランは [プラン] 列の上部に表示されます。プラン名をクリックすると、プランの詳細を確認できます。

2396

[テスト詳細] ページでプランの確認

アドホック実行の設定

APIテストがアドホック実行された場合、[テスト詳細] ページの [プラン] 列に「Ad hoc run」と表示されます。[すべて表示] リンクをクリックすると、アドホック実行の設定が表示されます。

2396

アドホック実行の設定を表示

トラブルシューティングの手がかりとなるポイントには、以下のようなものがあります。

  1. テストはプラン内のDataTableに関連付けられているか? (この設定はアドホック実行と異なるか?)
  2. プラン実行ではアドホック実行と同じapi.urlを利用しているか?

Postmanの結果との比較

コレクションがPostmanからインポートされたものである場合、その段階でテストが成功しているかどうかを確認します。成功している場合、Postmanの実行結果とmablの実行結果の間にどのような違いがあるかを確認します。