ApidogはAPI協作開発プラットフォームであり、バックエンド、フロントエンド、およびテストの各チームがこのツールを使用して作業効率を向上させることができます。テストに関しては、Apidogを使用して、APIの単体テスト、結合テスト、データ駆動テスト、性能テスト、回帰テスト、CI/CD、定期監視などを実現できます。
Apidogのテスト作業における利点を最大限に活用するために、基本から始めて、テストエンジニアがApidogを使用するための完全な作業プロセスをステップバイステップで紹介します。
初期準備
APIテストを開始する前の最も重要な準備作業は、詳細なAPIドキュメントを取得することです。Apidogは既存のAPIドキュメントを直接インポートすることをサポートしており、手動で1つずつ入力する手間を省きます。APIドキュメントのインポート操作は、「プロジェクト設定 -> インポート」パネルで適切なデータ形式を選択してインポートできます。
単体テスト(ユニットテスト)
単体テストはテストプロセスにおける重要な要素であり、各APIがさまざまな状況で期待通りに動作するかどうかを確認することを目的としています。テスト担当者は詳細なテストケースを作成することで、通常、異常、および境界などのさまざまな状況を網羅し、APIの機能とパラメータの包括性を確保できます。
「ペット詳細の照会」APIを例に取ると、このAPIは整数型のペットIDを受け取る必要があります。テスト担当者はApidogの「送信」モジュールで petId
として 123
を入力し、リクエストを送信してから、正しいペット詳細が返されるかどうかを確認します。
自動化テストを実現するためには、通常、APIの後置スクリプトにアサーションを追加し、返されたデータ内の data
フィールドの下に正しいペットIDが含まれているかどうかを判断する必要があります。JSONPath式 $.data.id
を用いてIDを抽出し、アサーション条件を「存在する」と設定することで、テストが自動的に合格するかどうかを判断できます。
もちろん、「アサーション」の設定に関しては、返されたレスポンスから直接抽出することもできます(Apidogの最新版に更新する必要があります)。
これらの手順を完了すると、テストケースを保存でき、ニーズに応じて「販売中のペット」、「売り切れたペット」、「レコードが存在しない」、および「IDのフォーマットが正しくありません」などの正常および異常ケースをさらに作成できます。これにより、後続バージョンのリグレッションテストの際に、これらのケースを実行するだけでコア機能の安定性を検証できます。
結合テスト(インテグレーションテスト)
単一のAPIのテストも重要ですが、実際のアプリケーションでは、複数のAPIが連携して完全なビジネスプロセスを完了する必要があります。結合テストは、このようなシナリオに使用され、実際のユーザー操作フローを模擬し、API間のデータ交換とプロセス実行の完全性を検証します。
ペット購入プロセスを例に取ると、ユーザーは順にペット一覧を閲覧し、ペットをカートに追加し、注文を確定し、支払いを行い、注文詳細を確認する可能性があります。Apidogでは、テスト担当者が自動化テストモジュールに入り、新しいテストシナリオを作成して、上述の各APIのテストケースを導入することができます。
API間のデータ伝達は、テストフローの完全性を保証するための鍵です。ペット購入プロセスを例に、テスト担当者は次の2つの方法で異なるステップ間で注文IDを伝達できます:
- 方法1:「注文を作成」APIを実行した後、生成された注文IDを変数として保存し、後続の支払いおよび注文照会APIで使用します。
- 方法2:支払いおよび注文照会などの後続APIで、直接注文作成APIの戻り値を参照します(推奨、より便利です)。
さらに、ペットをカートに一括追加するようなバッチ操作が必要な場合は、ForEachループを追加してループ配列をペットリストに設定し、現在のペットIDを動的に挿入することで、自動化バッチ操作を実現できます。
すべての設定を完了した後、テストシナリオを実行すると、詳細なテストレポートが生成され、テスト担当者が迅速に問題を特定し解決するのに役立ちます。
データ駆動テスト
特定のテストシナリオでは、同じAPIに対して異なるデータを使用して複数回テストを行う必要があります。例えば、複数のペット情報を一括で追加する場合です。Apidogのデータ駆動テスト機能は、まさにこれを目的として設計されています。複数のデータセットを含むCSVファイルをインポートすることで、テスト担当者はテストシナリオでこれらのデータを参照し、テストを自動化して大量に実行できます。
具体的な手順には、新しいテストシナリオを作成し、「ペット情報を新規作成」APIを追加した後、「テストデータ」モジュールでCSVファイルをインポートします。CSVファイルの最初の行を変数名とし、以降の各行を1セットのデータとして設定します。
APIリクエストのJSONに対応する変数名を追加し、CSVからのデータを参照します。
適切なテストデータと環境を選択したら、テストを実行します。Apidogは各データセットに基づいて自動的にテストケースを実行し、各ラウンドのテスト実行状況とレポートを生成します。これにより、大量のテストの効率と正確性が大幅に向上します。
性能テスト(パフォーマンステスト)
機能テストを完了し、すべての脆弱性を修正した後、次のステップはパフォーマンステストを実施し、高負荷アクセス下でのシステムのパフォーマンスを評価することです。Apidogは便利なパフォーマンステスト機能を提供しており、複数の仮想ユーザーが同時にサーバーにアクセスする状況を模擬し、異なる負荷下でのシステムの応答をテストできます。
例えば、以前作成した注文テストシナリオに対して、テスト担当者はパフォーマンステストタブに切り替え、仮想ユーザー数(例:10人の仮想ユーザー)、テスト時間とランプアップ時間(例:1分間)を設定し、パフォーマンステストを開始できます。テスト中、Apidogはリアルタイムで動的グラフを生成し、毎秒のリクエスト数、サーバー応答時間、エラー率などの重要な指標を表示することで、テスト担当者がシステムのパフォーマンスボトルネックを直感的に理解し、対応する最適化を行うのに役立ちます。
回帰テスト(リグレッションテスト)
システムが継続的にイテレーションされる中で、新機能が既存のコア機能に影響を与える可能性があります。そのため、リグレッションテストは、新機能の開発が既存システムの安定性を損なわないことを確実にするために必要なステップとなります。Apidogでは、テスト担当者がリグレッションテストディレクトリを作成し、すべての重要なテストシナリオをそのディレクトリに追加できます。システムのリリース前に、これらのリグレッションテストケースを一括で実行し、詳細なテストレポートを生成してコア機能が正常に動作していることを確認するだけです。
CI/CD統合
現代の開発プロセスにおいて、継続的インテグレーション(CI)と継続的デプロイメント(CD)は、開発効率と品質を向上させるための重要な手段となっています。ApidogはJenkinsなどのビルドツールとのシームレスな統合をサポートしており、自動化テスト内のテストシナリオを自動的に実行することができます。
Apidogでは、必要なテストシナリオに入り、CI/CDモジュールに切り替えて、適切な環境とテストデータを選択し、実行結果の通知機能をオンにします(Slack、Webhook、Jenkins、Emailなどさまざまな通知方法をサポートしています)。その後、対応するCI/CDツールを選択し、生成されたコマンドをコピーしてJenkinsやその他のビルドツールに設定します。
注意が必要なのは、統合プロセスでは、Jenkinsとの認証と通信を円滑に行うためにアクセストークンを生成および設定する必要があることです。設定が完了すると、ビルドがトリガーされるたびに、Apidogは自動的にテストを実行し、結果を通知方法を通じてチームにフィードバックし、協力効率を向上させます。
定期タスク
システムの継続的な安定動作を確保するために、チームは毎日定期的にすべてのAPIを実行し、システムが正常であるかを確認する必要があります。Apidogは「定期タスク」機能を提供しており、設定された時間に自動的にテストシナリオを実行し、結果をフィードバックできます。
この機能を使用する前に、ApidogのRunnerをサーバーにインストールして、定期タスクがサーバー上で独立して実行されるようにし、ローカルコンピュータの電源状態に依存しないようにします。インストール後、テスト担当者はApidogで新しい定期タスクを作成し、実行するテストシナリオを選択し、実行時間とサーバーを設定し、通知機能をオンにします。
タスクが実行されると、システムは自動的に実行状況と結果を記録し、設定された通知方法でチームに結果をフィードバックします。これにより、潜在的な問題を迅速に発見して解決するのに役立ちます。
まとめ
以上の紹介を通じて、Apidogがテストエンジニアに提供する包括的なテスト機能、すなわち単体テストから定期タスクまで、機能検証、性能評価、継続的インテグレーションを問わず、Apidogがテスト作業の効率と品質を効果的に向上させ、テストチームがより問題の発見と解決に集中できることが分かります。
もちろん、ここにはまだ多くの詳細があり、さらに詳しい情報や高度な機能について知りたい場合は、Apidogのヘルプドキュメントを学ぶことができます。