コンテンツにスキップ

ヒントとトラブルシューティング

Warning

自分が所有または管理しているアプリケーション以外をテストしないでください。何が起きているかを認識していない組織にとって、テストは最悪の場合は攻撃のように、最善の場合でも探りを入れているように見えます。 必ず自身の API 資産だけをテストするようにしてください。ご理解をお願いいたします。

以下は、API のテストの価値を最大化するための推奨事項です。

  • テストは非常に破壊的である場合があるため、実運用中のサービスをテスト しないようにします。テストは相当な負荷を生成し、削除されたくないリソースを 削除する可能性があります。QA またはステージング インスタンスに対してテストを行うよう推奨します。

  • サービスに現実的なデータを入力すると、ファザーがより多くの問題を発見する のに役立ちます。

  • ファザーはテスト対象サービス内で多数の新規エンティティを作成する可能性が あるため、複数のランの間で状態をリセットすると、API が前回のファジングの 状態にとらわれるのを防ぐことができます。

トラブルシューティング

CLI ログ記録

デフォルトでは、mapi CLI は info レベルのログを出力します。 --verbosity フラグを使用すると、ログ記録の冗長性を制御し、 CLI の処理に関してより詳細な情報を取得できます。

たとえば、debug 出力を記録するには、サブコマンドの前に --verbosity debug フラグを指定します。

     Must come BEFORE subcommand
     v
mapi --verbosity debug run ...
                       ^
                       subcommand

MAPI_LOG 環境変数を使用して同じ効果を得ることもできます。

MAPI_LOG=debug mapi run ...

以下のログ記録レベルがあります (大文字/小文字は区別されません)。

off
critical
error
warn
info
debug
trace

  • trace レベルのログ記録には tracedebuginfo およびこれより高いレベルが含まれます。
  • debug レベルのログ記録には debuginfo およびこれより高いレベルが含まれます。 ... 以上同様

ラン

  • ランのログにはエラー (エラーがある場合) が含まれます。 ログは処可能なフィードバックを提供し、問題解決方法を明確にするよう意図されています。 たとえば、ジョブのログには、ターゲット API に接続できないという問題に関するメッセージが含まれる場合があります。

  • エンドポイント カバレッジ テーブルは、ファザーがどの対象を検証できたかについ て多くの情報を提供します。 すべてのエンドポイントで 2xx レスポンス コードが表示されるのが理想的です。 そうではない場合、ファザーが有効なリクエストを生成できなかったことを意味します。 401 unauthorized レスポンスだけが表示されている場合、ファザーは認証の 問題があります。 400 レスポンス コードだけが表示されている場合、ファザーはエンドポイントに対して有効な入力値を生成できなかったことを意味します。 ファザーで生成するには入力値が複雑すぎたり、仕様が動作と一致していなかったり といった理由が考えられます。 ファザーが 2xx レスポンスを生成できない理由が不明な場合はお問い合わせください。 ファザーの改善のため、問題を確認いたします。

  • ランのログに当社に起因するエラーが含まれる場合があります。 そのようなエラーに遭遇した場合、support@forallsecure.com にお問い合わせください。

  • Swagger 2.0 仕様がある場合、OpenAPI 3 への変換が試行されます。 変換が失敗した場合、swagger2openapi コマンド ライン ツールを 使用してみることもできます。

npm install -g swagger2openapi
swagger2openapi -p -y swagger-spec.json > openapi-spec.yaml
  • より効果的にファジングし、より多くの機能を利用するには、エクスポートされた Postman ファイルではなく、Postman API キーおよびコレクション ID を指定すること を検討してください。エクスポートされた Postman 2.x 仕様を使用している 場合、OpenAPI 3 への変換が試行されます。変換が失敗した場合、 postman-to-openapi を 使用してみることもできます。

問題のトレース

問題から仕様にさかのぼってトレースすることができます。 問題には OpenAPI の operationId、サマリー、およびタグが付加されます。同様に、 Postman のリクエスト ID、リクエスト名、およびフォルダーが 問題に付加されます。

issue-specification-details

さらに、問題や機能リクエストのフィードバックがある場合、 お気軽に Discord または support@forallsecure.com までご連絡ください。 喜んでお手伝いいたします。

シークレット ヘッダーの抑制

テスト対象サービスへのリクエストまたはサービスからのレスポンスに存在する ヘッダーによって機密性のある詳細が表示されている場合、 --redact-header オプションによって問題を軽減する方法を説明した「ヘッダー シークレットの抑制」を 参照してください。