API をテストするためだけに RestAssured で無限の反復コードを記述することにうんざりしているのは、あなただけではありません。 API テストは面倒に感じるべきではありませんが、REST Assured を使用するとプロセスが退屈で不必要に時間がかかる可能性があることを認めましょう。しかし、その苦労を忘れることができたらどうでしょうか?
このガイドでは、API をテストするためのよりスマートなゼロコード方法である Keploy に切り替える方法を説明します。 API テストをより速く、より簡単に、そしてあえて言えば楽しいものにしましょう。アップグレードの準備はできましたか?
REST Assured は、RESTful Web サービスのテストに使用される人気のある Java ライブラリです。テストを作成するためのドメイン固有言語 (DSL) を提供し、開発者が API からの応答を効果的に検証できるようにします。次のような機能があります:
JUnit や TestNG などのテスト フレームワークと簡単に統合できます。
さまざまな HTTP メソッド (GET、POST、PUT、DELETE) のサポート。
しかし、API がより複雑になり、テストの要求が増大するにつれて、REST Assured に依存することが非常に困難になる可能性があります。正直に言います:
手動でのテスト作成は反復的で時間がかかります。
テストのメンテナンスは、特に API が進化する場合には悪夢です。
カバレッジレポートは組み込まれていないため、Jacoco などのライブラリを使用してセットアップする必要があります。
複雑なセットアップは開発時間を食い込み、エンジニアの集中力をコアタスクから逸らします。
ここで Keploy が介入します。Keploy はテスト プロセスを自動化し、エンジニアリングの労力を少なくとも 20% 削減し、チームは高品質のソフトウェアの提供という重要なことに集中できるようにします。
Keploy は、API インタラクションをキャプチャし、後で再生することで API テストを自動化するように設計されたオープンソース ツールです。その主な機能には次のようなものがあります:
データ モッキングの自動生成: Keploy は、マイクロサービスやデータベースなどのさまざまな依存関係との対話に基づいてモックを自動的に生成できるため、手動でモックを作成する必要性が減ります。
低コストの実行: Keploy は、専用の複雑なテスト環境のセットアップを必要としません。これにより、並列環境の管理におけるオーバーヘッドが軽減され、インフラストラクチャに関連するコストが削減されます。
ゼロコード テスト: 開発者がすべてのテストを手動で記述する必要がある RestAssured とは異なり、Keploy は API インタラクションをキャプチャしてテストを自動的に生成することにより、ゼロコード アプローチを提供します。
簡単な統合: CI/CD パイプラインや、JUnit、TestNG、GitHub Action などの他のテスト ツールとうまく統合します。
包括的なテスト カバレッジ: Keploy は、エッジ ケースを含む現実世界の API インタラクションをキャプチャするため、RestAssured で手動で作成されたテストと比較して、より広範かつ現実的なテスト カバレッジを確保するのに役立ちます。
このガイドでは、Postgres をデータベースとして使用し、Java で単純な従業員管理アプリケーションを実行します。
移行する前に、既存の RestAssured テスト スイートの包括的な評価を実施します。
既存のテスト ケースの特定: すべての既存のテスト ケースとその機能を文書化します。
依存関係に注意してください: 移行プロセスに影響を与える可能性のある依存関係を特定します。
テストケースを実行して、すべてが正常に動作しているかどうかを確認してみましょう
mvn test
すべてのテスト ケースが合格したことを観察します。jacoco がインストールされているので、カバレッジも確認できます。
テスト スイートでは約 68% をカバーしています。
keploy と移行プロセスのセットアップに進みましょう。
Keploy のインストール: Keploy GitHub リポジトリのインストール手順に従って、Keploy をセットアップできます。
ターミナルで Keploy コマンドを実行すると、インストールを確認できます。以下の出力が表示されるはずです。
既存の REST Assured テスト ケースを移行するプロセスを開始しましょう。
@BeforeEach public void setUp() { RestAssured.baseURI = "http://localhost"; RestAssured.port = 8080; // Clean up repository to ensure fresh data for each test employeeRepository.deleteAll(); // Create and save test employee testEmployee = new Employee(); testEmployee.setFirstName("John"); testEmployee.setLastName("Doe"); testEmployee.setEmail("john.doe@example.com"); employeeRepository.save(testEmployee); // save to generate ID }
アプリケーションはポート 8080 でローカルに実行されるため、RestAssured.port も 8080 で実行されるように構成しました。これにより、Keploy が API インタラクションをキャプチャし、REST Assured TestSuite の実行時に新しいテスト スイートを作成できるようになります。
mvn clean install -Dmaven.test.skip=true を実行して、アプリケーションの jar ファイルを作成しましょう。
Jar ファイルの準備ができたら、記録モードで keploy を開始してテスト ケースをキャプチャしましょう。ここで、docker-compose up postgres を使用してデータベースを起動して実行します。 -
新しいターミナルで、keploy Record -c "java -jar target/springbootapp-0.0.1-SNAPSHOT.jar": -
を実行してみましょう。これで、テスト スイートを移行するための準備とセットアップがすべて完了しました。既存の REST Assured テスト スイートを実行します。この実行により、Keploy は API リクエストとレスポンスをキャプチャできるようになります。
keploy によって生成された各テスト ケースは REST Assured テスト ケースです: -
mvn test
REST Assured テスト ケースを keploy テスト スイートに正常に移行しました。以下は、そのような keploy テスト ケースの 1 つです: -
それでは、-keploy test -c "java -jar target/springbootapp-0.0.1-SNAPSHOT.jar" --lay 10: -
を実行して、keploy テスト スイートを実行しましょう。ノイズがあるため、1 つのテストが失敗しましたが、keploy では約 70.5% のカバレッジが得られました。
REST Assured から Keploy への移行により、ゼロコード テスト、リアルタイム フィードバック、合理化された CI/CD 統合など、さまざまな利点が得られました。このガイドで説明されている手順に従うことで、API テストのニーズに対して Keploy の利点を最大限に活用しながら、スムーズな移行を確保できます。
Keploy を採用することで、開発チームはエンジニアリングの労力を削減して高品質のソフトウェアを提供することにさらに集中でき、最終的には生産性とソフトウェアの品質の向上につながります。
CI/CD - https://keploy.io/docs/ci-cd/jenkins/
クラウド トライアル版を入手する - https://keploy.io/docs/keploy-cloud/cloud-installation/
以上がREST Assured から Keploy への移行をお考えですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。