Apidogの自動テストをJenkinsと統合してCI/CDを実現する方法
APIテストにおけるCI/CD(継続的インテグレーション/継続的デリバリー)の主な目的は、検証プロセスを自動化し、APIが機能しており、本番環境にデプロイする前に準備が整っていることを確認することです。継続的インテグレーションを使用することで、API定義に変更が加えられるたびに機能テストを自動的に実行でき、潜在的な問題を早期に検出できます。
Apidogは、Jenkins、GitLab、GitHub Actionsなど、さまざまなCI/CDプラットフォームとの統合をサポートしています。Apidogの自動テストのCI/CDモジュールに、統合コードスニペットがあります。これらのスニペットをCI/CDワークフローに追加することで、既存のCI/CDプロセスにApidogの自動テストをシームレスに組み込むことができます。
この記事では、Apidogの自動テストをJenkinsと統合することに焦点を当て、具体的な手順を詳述します。
手順1:Jenkinsのインストール
異なるオペレーティングシステムに合わせたインストール手順については、公式のJenkinsドキュメントを参照してください。
インストールが完了したら、http://{your-public-IP}:8080
を通じてJenkinsの視覚インターフェースにアクセスできます。
Apidog CLIコマンドの実行のためにJenkinsを設定します。
Node.js環境の設定
NodeJSプラグインのインストール
Jenkinsの管理ページから「Jenkinsの管理」をクリックし、「プラグインの管理」を選択してプラグイン管理ページに入ります。
「利用可能」タブの下でNodeJSプラグインを検索し、インストール後にJenkinsを再起動します。
NodeJSとグローバルnpmパッケージの設定
NodeJSプラグインがインストールされた後、「Jenkinsの管理」ページに戻り、「ツール」を選択してグローバル設定ツールページにアクセスします。
NodeJSモジュールを探し、「NodeJSを追加」をクリックし、NodeJSエイリアス(例:nodejs18)を入力し、NodeJSのバージョン(v14.20.1より大きい必要があります)を選択し、「グローバルnpmパッケージにインストールする」にApidog-cli
を入力します。
「自動的にインストール」をチェックして、ビルドプロセス中にパッケージがインストールされるようにし、設定を保存します。
継続的インテグレーションパイプラインの作成
Jenkinsで継続的インテグレーションを達成するためには、パイプラインとフリースタイルプロジェクトの二つの方法があります。以下に両方の方法の詳細を示します。
1:パイプラインの構築
パイプラインプロジェクトの作成:Jenkinsのホームページで「新しいアイテム」をクリックし、プロジェクト名を入力して「パイプライン」を選択し、「OK」をクリックします。
2. パイプラインの設定:
プロジェクト設定ページで、「パイプライン」オプションを見つけ、「定義」ドロップダウンメニューから「パイプラインスクリプト」を選択します。
以下の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自動化テストのCI/CDモジュールで利用できます。
上記のパイプラインスクリプトは、Apidog CLIをインストールするスクリプトを削除することによって、次のように簡略化できます。これにより、ビルドを行うたびにapidog-cliをインストールする必要がなくなり、ビルド時間とリソース消費を削減できます。これは、NodeJSとグローバルnpmパッケージ(すなわち、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を追加し、その値をアクセストークンに設定することもできます。これにより、パイプラインの実行時にシステムがアクセストークンを読み取れるようになります。
3. ビルドの実行
プロジェクトページで「今すぐビルド」をクリックして実行パイプラインを開始します。
ビルドの進捗状況と結果は、ビルド履歴で確認できます。
フリースタイルプロジェクトの構築
- フリースタイルプロジェクトの作成
Jenkinsのホームページで「新しいアイテム」をクリックし、プロジェクト名を入力して「フリースタイルプロジェクト」を選択し、「OK」をクリックします。
2. ビルド環境の設定
プロジェクト設定ページで、「ビルド環境」セクションの下にある「Node&npm bin/フォルダーをPATHに提供」をチェックし、先に設定したNodeJSのバージョン(例:nodejs18)を選択します。
3. ビルドステップの追加
ビルド環境を設定したら、「ビルドステップ」セクションに移動し、「ビルドステップを追加」をクリックし、「シェルを実行」(またはWindowsサーバーの場合は「Windowsバッチコマンドを実行」)を選択します。
提供されたフィールドにApidog CLIコマンドを貼り付けて、設定を保存します。
4. ビルドの実行
プロジェクトページで「今すぐビルド」をクリックしてビルドプロセスを開始します。
手順4:ビルド結果をサードパーティアプリケーションに送信する
CIビルドの結果は、FeishuやDingTalkなどのサードパーティアプリケーションに送信できます。通知を設定するには、Apidogのプロジェクト設定 -> 通知設定 -> 外部通知に移動し、必要な通知イベントを設定します。
よくある質問
- インターフェースにアップロードが必要なファイルがある場合、ビルド時にそのファイルをどう取得しますか?
必要なファイルをCLIを実行しているマシン(Jenkinsが実行されているホスト)に事前にアップロードできます。たとえば、この画像ファイル:images.jpgを、そのパスをコピーして持っておくことができます。
Apidogでファイルアップロードが必要なAPIに移動し、「一括編集」ボタンをクリックします。
アップロードしたファイルのファイルパスを「パラメータ値」フィールドに入力することで、ビルド中に自動的に実際のファイルを取得できます。
さらに、環境変数の「初期値」にファイルのパスを入れることもできます。
その後、「一括編集」で変数としてファイルパスを参照することで、ビルド時にもファイルパスを使って実際のファイルを取得できます。
2. Jenkinsで定期ビルドを設定するには?
Apidogはいまのところ定期タスクをサポートしており、ヘルプファイルの「定期的に機能テストを実行する」モジュールを参照してください。これはより親しみやすく、便利です。
Jenkinsで定期的なタスクを設定したい場合は、プロジェクトの「ビルドトリガー」を設定し、Unix系のcron式を使用してビルドの時間と頻度を指定できます。
Jenkinsプロジェクト設定ページで、「ビルドトリガー」モジュールを見つけ、「定期的にビルド」をチェックし、表示されるテキストボックスにcron式を入力してビルドの時間と頻度を定義します。ここではcron式の使用について詳しくは述べません。
結論
このガイドは、Apidog自動テストをJenkinsと統合する方法を概説しています。選択したビルド方法に関係なく、Apidog CLIが事前にインストールされていることを確認してください。これは、ビルド中の自動インストールまたはJenkinsホスト上でのプレインストール(コマンドnpm install -g Apidog-cli
を使用)によって行うことができます。