コンテンツにスキップ

選択的ルート テスト

デフォルトでは、Mayhem は指定された仕様で見つかったすべてのエンドポイントをテストします。

次のような場合、フルセットのエンドポイントをフィルタリングして対象を絞る必要があるでしょう。

  • 後続の認証済みリクエストが失敗するため、「ログアウト」エンドポイントを除外する
  • 仕様を認証の要件が異なるサブセットに分割する必要がある
  • 各ルートで最初に見つかった問題に対処してから、漸増的にルートを mapi に追加したい場合

そのほかどんな場合でも、mapi コマンドライン ツールにはいくつかの選択肢があります。

OpenAPI タグの使用

フィルタリングしたいサブセットを記述する適切な粒度でタグが付けられた OpenAPI がすでに存在する場合はラッキーです。

特定のタグが付けられたエンドポイントだけを含めるには、--include-endpoints-by-tag <tag> オプションを使用します (これは該当タグがないすべてのエンドポイントを暗黙的に除外します)。(オプションを複数回使用することで) 複数のタグを指定した場合、OR 条件が適用されます。

指定されたタグが付けられたエンドポイントを明示的に除外するには、--ignore-endpoints-by-tag <tag> オプションを使用します。複数のタグを指定した場合、OR 条件が適用されます。

上記の 2 つのオプションを組み合わせた場合、まず --include が適用され、その後 --ignore が適用されます。

エンドポイント名の使用

適切な粒度のタグがない場合、強力な (ただし、いくらか複雑な) エンドポイント名比較機能を使用してテスト対象エンドポイントを選択できます。

ℹ️ この機能は、各エンドポイント固有の「エンドポイント名」を算出します。これは、GET /ping または POST /users/{id} のように、単に HTTP 動詞およびパスを空白で連結したものです。

算出名が指定されたパターンに一致するエンドポイントだけを含めるには、--include-endpoint <pattern> オプションを使用します (これは一致しないすべてのエンドポイントを暗黙的に除外します)。(オプションを複数回使用することで) 複数のパターンを指定した場合、OR 条件が適用されます。

指定された算出名が指定されたパターンに一致するエンドポイントを明示的に除外するには、--ignore-endpoint <pattern> オプションを使用します。複数のパターンを指定した場合、OR 条件が適用されます。

上記の 2 つのオプションを組み合わせた場合、まず --include が適用され、その後 --ignore が適用されます。

ℹ️ エンドポイント名の比較に使用される「パターン」は本格的な正規表現であり、強力な比較機能が必要な場合にも対応できます。