CI/CD(継続的統合/継続的デリバリー)のAPIテストにおける主な目的は、デプロイメント前にAPIが機能しており、運用に準備が整っていることを確認するプロセスを自動化することです。継続的統合を使用することで、API定義が更新されるたびに自動的に機能テストが実行され、潜在的な問題を早期に特定するのに役立ちます。
ApidogはJenkins、GitLab、GitHub Actionsなど、複数のCI/CDプラットフォームとシームレスに統合されます。CI/CDモジュールの自動テストに統合用のコードスニペットがあります。これらのスニペットをCI/CDワークフローに追加することで、既存のプロセスにApidogの自動テストをスムーズに組み込むことができます。この記事では、JenkinsとApidogの統合に焦点を当て、詳細な手順を提供します。

ステップ1: Jenkinsをインストール
異なるオペレーティングシステムに対応したインストール手順については、公式Jenkinsドキュメントを参照してください。
インストール後は、http://{your-public-IP}:8080
のビジュアルユーザーインターフェースを介してJenkinsにアクセスできます。
ステップ2: Node.js環境の設定
NodeJSプラグインのインストール
- Jenkins管理ページで「Jenkinsの管理」をクリックし、「プラグインの管理」を選択してプラグイン管理ページにアクセスします。

- 「利用可能なプラグイン」タブの下で、NodeJSプラグインを検索してインストールし、Jenkinsを再起動します。

NodeJSとグローバルnpmパッケージの設定
- NodeJSプラグインのインストール後、「Jenkinsの管理」に戻り、「ツール」を選択してグローバルツールを設定します。

- NodeJSモジュールで「NodeJSを追加」をクリックし、nodejs18のようなエイリアスを提供し、v14.20.1以上のNodeJSバージョンを選択して、「インストールするグローバルnpmパッケージ」にApidog-cliをリストします。

- 「自動的にインストール」のオプションにチェックを入れて、ビルド時にパッケージがインストールされるようにし、設定を保存します。
ステップ3: 継続的インテグレーションパイプラインを作成
Jenkinsで継続的インテグレーションを達成するためにパイプラインを構築する方法は2つあります: パイプラインとフリースタイルプロジェクト。以下に両方の方法の詳細を示します。
オプション1: パイプラインの構築
- パイプラインプロジェクトを作成: Jenkinsのホームページで「新しいアイテム」をクリックし、プロジェクト名を入力して「パイプライン」を選択し、「OK」をクリックします。

- パイプラインの設定: プロジェクト設定ページで「パイプライン」オプションを見つけ、「定義」ドロップダウンから「パイプラインスクリプト」を選択します。

- スクリプトボックスにApidogからの以下のパイプラインスクリプトを入力し、設定を保存します。
pipeline {
agent any
tools {nodejs "nodejs18"}
stages {
stage('Install Apidog CLI') {
steps {
sh 'npm install -g apidog-cli'
}
}
stage('Running Test Scenario') {
steps {
sh 'apidog run --access-token $APIDOG_ACCESS_TOKEN -t 605067 -e 1629989 -n 1 -r html,cli'
}
}
}
}
このパイプラインスクリプトは、Apidog TestsのCI/CDモジュールで入手できます。

ビルド時間とリソースを節約するために、Global Tools設定に事前に構成されているため、Apidog CLIのインストールを除外してスクリプトを簡素化できます。
pipeline {
agent any
tools {nodejs "nodejs18"}
stages {
stage('Running Test Scenario') {
steps {
sh 'apidog run --access-token $APIDOG_ACCESS_TOKEN -t 605067 -e 1629989 -n 1 -r html,cli'
}
}
}
}
コマンドラインに変数を含む最新のCI/CDコマンドを使用している場合は、コード内のプレースホルダAPIDOG_ACCESS_TOKENを実際のアクセストークンに置き換えることを忘れないでください。あるいは、「ダッシュボード -> Jenkinsの管理 -> システム」に移動し、アクセストークンを値として入力することで、JenkinsにAPIDOG_ACCESS_TOKENという名前の環境変数を設定できます。この設定により、パイプライン実行中にシステムが自動的にトークンにアクセスできるようになります。

- ビルドの実行: プロジェクトページで「今すぐビルド」をクリックして実行パイプラインを開始します。

ビルドの進行状況と結果はビルド履歴で確認できます。

オプション2: フリースタイルプロジェクトの構築
- フリースタイルプロジェクトの作成: Jenkinsのホームページで「新しいアイテム」をクリックし、プロジェクト名を入力して「フリースタイルプロジェクト」を選択し、「OK」をクリックします。

- ビルド環境の設定: プロジェクト設定ページの「ビルド環境」セクションで、「Node & npm bin/フォルダーをPATHに提供する」にチェックを入れ、前回設定したNodeJSバージョン(例: nodejs18)を選択します。

- ビルドステップの追加: ビルド環境を設定した後、「ビルドステップ」セクションに移動し、「ビルドステップを追加」をクリックして「シェルを実行」を選択します(Windowsサーバーの場合は「Windowsバッチコマンドを実行」を選択)。

Apidog CLIコマンドを提供されたフィールドに貼り付けて、設定を保存します。

- ビルドの実行: プロジェクトページの「今すぐビルド」をクリックしてビルドプロセスを開始します。

ステップ4: ビルド結果をサードパーティのアプリケーションに送信
CIビルドの結果は、Slack、Jenkins、Webhook、Emailなどのサードパーティのアプリケーションに送信できます。通知を設定するには、Apidogのプロジェクト設定 -> 通知に移動し、希望する通知イベントを設定します。
よくある質問
1. ビルド中にファイルをアップロードするには?
必要なファイルをCLIを実行しているマシン(つまり、Jenkinsが動作しているホスト)に事前にアップロードすることができます。例えば、このイメージファイル: images.jpgのパスをコピーします。

ファイルアップロードが必要なエンドポイントのテストステップに移動し、「一括編集」ボタンをクリックします。

「パラメータ値」フィールドにアップロードしたファイルのパスを入力すると、ビルド中に実際のファイルを自動的に取得できます。

さらに、環境変数の「初期値」にファイルパスを置くことができます。

その後、「一括編集」で変数によってファイルパスを参照できるようになり、ビルド時にファイルパスを使用して実際のファイルを取得できます。

2. Jenkinsでスケジュールされたビルドを設定するには?
Apidogは現在、スケジュールタスクの使用をサポートしています。より詳しい情報については、スケジュールタスクを参照してください。
Jenkinsにスケジュールタスクを設定したい場合は、プロジェクトの「ビルドトリガー」を設定し、Unixのようなcron式を使用してビルドの時間と頻度を指定することで行います。
Jenkinsのプロジェクト設定ページで、「ビルドトリガー」モジュールを見つけ、「定期的にビルド」を選択し、表示されるテキストボックスにcron式を入力してビルドの時間と頻度を定義します。

結論
このガイドでは、Apidogの自動テストをJenkinsと統合する方法について説明しています。選択したビルド方法に関係なく、Apidog CLIがビルド中に自動インストールされるか、Jenkinsホストに事前にインストールされるべきです(npm install -g Apidog-cli
コマンドを使用)。