如果您厌倦了在 RestAssured 中编写无数行重复代码只是为了测试您的 API,那么您并不孤单。 API 测试不应该像拔牙一样困难,但让我们面对现实吧——REST Assured 会让这个过程变得无聊并且不必要地耗时。但如果你能把那些磨难抛在脑后呢?
在本指南中,我们将向您展示如何切换到 Keploy,这是一种更智能的零代码测试 API 的方法。让我们让您的 API 测试更快、更轻松,而且,我们敢说,还很有趣!准备好升级了吗?
REST Assured 是一个流行的 Java 库,用于测试 RESTful Web 服务。它提供了用于编写测试的领域特定语言 (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 中手动编写的测试相比,它有助于确保更广泛、更现实的测试覆盖率。
我们将使用 Java 运行一个简单的员工经理应用程序,并使用 Postgres 作为本指南的数据库。
迁移之前,对您现有的 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 测试用例之一:-
因此,让我们通过运行 - keploy test -c "java -jar target/springbootapp-0.0.1-SNAPSHOT.jar" --delay 10: -
来运行我们的 keploy 测试套件由于我们有噪音,这就是一次测试失败的原因,而我们使用 keploy 获得了约 70.5% 的覆盖率。
从 REST Assured 迁移到 Keploy 具有多种优势,例如零代码测试、实时反馈和简化的 CI/CD 集成。通过遵循本指南中概述的步骤,您可以确保平稳过渡,同时最大限度地发挥 Keploy 的优势来满足您的 API 测试需求。
通过采用 Keploy,您的开发团队可以更加专注于交付高质量的软件,同时减少工程工作量,最终提高生产力和软件质量。
CI/CD - https://keploy.io/docs/ci-cd/jenkins/
获取云试用版 - https://keploy.io/docs/keploy-cloud/cloud-installation/
以上是想要从 REST Assured 迁移到 Keploy?的详细内容。更多信息请关注PHP中文网其他相关文章!