EvoMaster:智能生成系统级测试用例的工具

【免费下载链接】EvoMaster The first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift). 【免费下载链接】EvoMaster 项目地址: https://gitcode.com/gh_mirrors/ev/EvoMaster

1. 项目介绍

EvoMaster 是一个开源的 AI 驱动的工具,它可以自动生成 Web/企业级应用的系统级测试用例。它关联于 Fuzzing 技术,能够对 REST、GraphQL 和 RPC(例如 gRPC 和 Thrift)等 API 进行模糊测试。EvoMaster 不仅能够生成导致程序崩溃的输入,还能生成小型有效的测试集(例如 Python、JS 和 Java/Kotlin JUnit 格式),用于回归测试。

EvoMaster 内部使用进化算法和动态程序分析来生成有效的测试用例。它的方法是从一组随机测试用例开始,通过进化来最大化代码覆盖率和故障检测等指标。EvoMaster 还使用了多种 AI 启发式方法来进一步提高性能,这些建立在数十年的基于搜索的软件测试研究之上。

2. 项目快速启动

以下是如何使用 EvoMaster 进行模糊测试的一个快速示例。确保您已安装 Docker。

docker run -v "$(pwd)/generated_tests":/generated_tests webfuzzing/evomaster --blackBox true --maxTime 30s --ratePerMinute 60 --bbSwaggerUrl https://petstore.swagger.io/v2/swagger.json

在执行上述命令后,您可以在 generated_tests 文件夹下查看生成的测试文件。

3. 应用案例和最佳实践

案例一:REST API 测试

假设您有一个 REST API,您可以通过 EvoMaster 生成针对该 API 的测试用例。确保您的 API 提供了 OpenAPI/Swagger 格式的架构文件。

docker run -v "$(pwd)/generated_tests":/generated_tests webfuzzing/evomaster --outputFormat PYTHON_UNITTEST --bbSwaggerUrl path_to_your_swagger_file

执行上述命令后,EvoMaster 将生成 Python 单元测试格式的测试用例。

最佳实践

  • 在开始之前,请确保您的测试环境已正确设置。
  • 对于白盒测试,编写一个驱动程序以启动和停止您的应用程序。
  • 使用 EvoMaster 生成测试用例后,请确保在您的项目中设置所有必需的第三方库。

4. 典型生态项目

EvoMaster 可以与多种生态系统项目配合使用,以下是一些典型例子:

  • 持续集成(CI): 将 EvoMaster 集成到 CI/CD 流程中,以自动生成和运行测试用例。
  • 数据库支持: EvoMaster 支持与 Postgres、MySQL 和 H2 等数据库的集成,可以自动生成用于初始化数据库的测试数据。
  • 测试框架: EvoMaster 支持多种测试框架,包括 JUnit 4、JUnit 5、Python unittest 和 JavaScript Jest 等。

通过上述介绍,您应该对 EvoMaster 有了基本的了解,并能够快速开始使用它来生成和执行测试用例。

【免费下载链接】EvoMaster The first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift). 【免费下载链接】EvoMaster 项目地址: https://gitcode.com/gh_mirrors/ev/EvoMaster

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐