
cats cats-14.0.0
自动化REST API模糊测试和负面测试工具,针对OpenAPI端点。无需编码即可生成、运行并报告数千个自我修复测试,涵盖边界和安全场景。
CATS 文档可在 https://endava.github.io/cats/ 获取
REST API 模糊测试与负面测试工具。无需编码,几分钟内运行数千个自愈式 API 测试!
- 全面:测试自动生成,涵盖每个字段和头部
- 智能:测试基于数据类型和约束生成;每个 Fuzzer 根据测试场景有特定期望
- 高度可配置:高度自定义:可过滤特定 Fuzzer、HTTP 响应码、HTTP 方法、请求路径,提供业务上下文等
- 自愈:测试生成后,任何 OpenAPI 规范变更自动识别
- 易于学习:学习曲线平缓,配置和语法直观
- 快速:自动完成测试编写、运行和报告,几分钟内覆盖数千个场景
时间紧迫?查看 1 分钟快速入门指南!
概述
通过使用简单且极简的语法,学习曲线平缓,CATS(Contract API Testing and Security,契约 API 测试与安全)使您能够在几分钟内生成数千个 API 测试,无需编码。 所有测试基于预定义的 100+ 个 Fuzzer 自动生成、运行和报告。 Fuzzer 涵盖了广泛的边界测试和负面场景,从完全随机的大 Unicode 值到基于请求数据类型和约束精心构造的上下文相关值。 更进一步,您可以利用 CATS 动态生成请求负载的能力,编写简单的端到端功能测试。
HTML 报告
命令行
关于如何使用 CATS 的教程
以下是带有步骤指南的文章列表:
CATS 发现的一些 bug
- https://github.com/hashicorp/vault/issues/13274 | https://github.com/hashicorp/vault/issues/13273
- https://github.com/hashicorp/vault/issues/13225 | https://github.com/hashicorp/vault/issues/13232
- https://github.com/go-gitea/gitea/issues/19397 | https://github.com/go-gitea/gitea/issues/19398
- https://github.com/go-gitea/gitea/issues/19399
安装
Homebrew
> brew tap endava/tap
> brew install cats
手动安装
CATS 既可作为可执行 JAR 捆绑,也可作为原生二进制文件。原生二进制文件无需安装 Java。
下载操作系统原生二进制文件后,可将其添加到 PATH,以便像其他命令行工具一样执行:
sudo cp cats /usr/local/bin/cats
您也可以下载 cats_autocomplete 脚本,并通过以下命令获得自动补全:
source cats_autocomplete
要获得持久自动补全,请将上述行添加到 .zshrc 或 .bashrc 中,但请确保使用 cats_autocomplete 脚本的完整路径。
您也可以查看 cats_autocomplete 源代码以了解其他设置方式。
Windows 没有原生二进制文件,但您可以使用 uberjar 版本。这需要安装 Java 25+。
运行方式:java -jar cats.jar。
请前往发布页面下载最新版本:https://github.com/Endava/cats/releases。
从源码构建
您可以在本地从源码构建 CATS。需要 Java 25。Maven 已捆绑。
在首次构建之前,请确保运行
./mvnw clean。CATS 使用了 OKHttp 的一个分支,该分支将本地安装为5.X.X-CATS版本,所以不用担心覆盖官方版本。
您可以使用以下 Maven 命令将项目构建为 uberjar:
./mvnw package -Dquarkus.package.type=uber-jar
最终会在 target 文件夹中得到一个 cats-runner.jar。使用 java -jar cats-runner.jar ... 运行。
您也可以使用 GraalVM Java 版本 构建原生镜像。
./mvnw package -Pnative
关于单元测试的说明
运行单元测试时,您可能会看到一些 error 日志消息。这些是测试 Fuzzer 负面场景的预期行为。
贡献
请参阅 CONTRIBUTING.md。