共同ソフトウェア開発において、コードコミットのたびに手動でAPIテストを実行するのは、すぐに面倒になります。新しいコードがプッシュされるたびに、これらのテストが自動的に実行されたら、もっと良くないでしょうか?
朗報なことに、これは完全に可能です。ほとんどのチームはすでにCI/CDプラットフォームを使用してコードのビルドとデプロイを処理しており、これらのプラットフォームはGitコミットイベントをリッスンするように設計されています。コードをプッシュすると、コンパイル、パッケージング、デプロイなどの事前定義されたタスクが自動的に実行されます。
自動APIテストの実行も同様です。Apidogは、単一のコマンドで自動テストをトリガーできるCLIツールを提供しています。このコマンドをCI/CDパイプラインに追加することで、コードが提出されるたびにテストが自動的に実行されるようにすることができます。
セットアッププロセスは簡単です。重要なのは、トリガーメカニズムがどのように機能するかを理解し、次にチームが使用しているプラットフォームに基づいて適切な統合アプローチを選択することです。
自動テストトリガーはどのように機能するのか?(原則)
全プロセスの核は「イベントリスニング + コマンド実行」です。
Gitリポジトリにコードをプッシュすると、CI/CDプラットフォームはこのGitイベントをリッスンし、プリセットされた設定(パイプラインスクリプトや設定ファイルなど)に従って、Apidogテストコマンドを自動的に実行します。
この原則は次のように図示できます。

CI/CDプラットフォームがGitイベントをリッスンする方法は主に2つあります。
1つ目は、プラットフォームに組み込まれているイベントメカニズムです。例えば、GitHub Actionsでは設定ファイルに直接on: [push, pull_request]
と指定できます。コードをプッシュしたり、PRを作成したりすると、プラットフォームはこれらのGitイベントを自動的にリッスンし、テストを開始します。

2つ目はWebhook経由で、Jenkinsのようにクロスプラットフォーム通信が必要なシナリオに適しています。トリガーURLを手動で設定する必要があります。
どの方法であっても、最終的なステップは常に同じです。自動テストを開始するためにapidog run
コマンドを実行します。
人気のあるプラットフォームの統合ソリューション
GitHubやGitLabのようなコードホスティングプラットフォームを使用している場合、テストのトリガーは特に簡単です。これらのプラットフォームには、Gitイベントを直接リッスンしてタスクを実行できる組み込みのCI/CDサービス(GitHub Actions、GitLab CIなど)があります。これらのドキュメントを参照して、すぐに始めることができます。
しかし、多くのチームはより複雑なセットアップをしています。例えば、コードはGitHubまたはGitLabでホストされているが、CI/CDパイプラインはJenkinsで実行されている場合です。この場合、GitHub/GitLabとJenkinsは2つの独立したシステムであり、前者が後者を直接トリガーすることはできません。
クロスプラットフォームのシナリオでは、Webhookはシンプルで効果的なソリューションです。Webhookはコールバックメカニズムのように機能します。GitHubで特定のイベント(Gitプッシュなど)が発生すると、外部システムに警告するために、事前定義されたWebhook URLにリクエストを積極的に送信します。Webhookエンドポイントを提供することで、Jenkinsはこれらの通知を受け取り、テストタスクを自動的にトリガーできます。
特定の構成を見てみましょう。コードはGitHubでホストされているが、テストパイプラインはJenkinsで実行されているケースです。
Apidog自動テストを実行するためのGitHub + Jenkins統合
チームがGitHubにコードを保存しているが、Jenkinsを使用してビルドタスクを実行している場合、以下にセットアップ方法を示します。
ステップ1:Jenkinsを設定し、Webhook URLを取得する
まず、Jenkinsでテストタスクを準備します。Jenkinsとの連携ドキュメントに従って、プロジェクトを作成し、ビルドコマンドを設定し、CLIコマンドが適切に実行できることを確認してください。

次に、JenkinsからWebhook URLを取得します。このURLは、外部システムがJenkinsを呼び出すためのエントリポイントとして機能し、GitHubはこれを使用してテストタスクをトリガーします。
最も簡単な方法は、「Generic Webhook Trigger」プラグインをインストールすることです。Jenkinsのプラグイン管理ページで検索してインストールし、Jenkinsを再起動します。

次に、プロジェクトの設定ページに移動し、このプラグインを有効にします。Webhookアドレスは次のようになります。
http://<your Jenkins server address>/generic-webhook-trigger/invoke`

セキュリティのため、カスタムトークンを設定することをお勧めします。そうすると、アドレスは次のようになります。
http://<your Jenkins server address>/generic-webhook-trigger/invoke?token=<xxxxxx>
このURLを取得したら、GitHubでWebhookを設定できます。
ステップ2:GitHub Webhookを設定する
「GitHubリポジトリ → Settings → Webhooks」に移動し、新しいWebhookを追加し、前のステップで取得したアドレスを入力し、Content typeをapplication/json
に設定し、テストをトリガーしたいプッシュイベントまたはその他のイベントを選択して、設定を保存します。

設定後、コードをプッシュするたびにJenkinsが自動的にテストタスクを実行するようになります。いくつかのコードをプッシュしてテストし、Jenkinsのビルドログとテスト結果を確認できます。
ステップ3:プロセス全体を検証する
GitHubにコードをプッシュすると、設定されたWebhookがJenkinsに通知を送信します。Jenkinsはリクエストを受信し、ビルドタスクを自動的に開始します。Jenkinsプロジェクトの「Console」でテスト実行ログを確認し、最終的なテストレポートを見ることができます。

その他のプラットフォームのWebhook設定
GitHub以外にも、他のコードホスティングプラットフォームもWebhookをサポートしています。例えば:
設定方法は似ています。重要なのはトリガーメカニズムを理解することです。Gitコミットがイベントを生成し、それがイベントリスニングまたはWebhookを介してCI/CDプラットフォームに通知され、最終的にテストコマンドの自動実行をトリガーします。
その他のCI/CDプラットフォーム統合方法については、Apidog公式ドキュメントのCI/CD統合セクションを参照してください。