一键导入
curl-api-test
为 toLink-Service 的 HTTP 接口构建并执行全面的 curl 黑盒测试。分析待测接口与边界条件,必要时直连数据库或经接口造数,对本地已启动服务发起 curl 请求,断言响应,最终在对话中返回测试结果汇总。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
为 toLink-Service 的 HTTP 接口构建并执行全面的 curl 黑盒测试。分析待测接口与边界条件,必要时直连数据库或经接口造数,对本地已启动服务发起 curl 请求,断言响应,最终在对话中返回测试结果汇总。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
当用户要求基于某个需求、功能、改造、技术方案或项目实践生成博客文章时使用;必须结合用户给出的完整需求、当前项目真实实现逻辑、业务场景和代码/文档上下文做深入分析,输出通俗易懂且专业的 Markdown 博客到 `.specs/blog/《博客名称》.md`。
当修改 AGENTS.md/CLAUDE.md、docs/api、docs/internals、docs/ops,或代码变更影响这些文档记录的 API、MySQL schema、MQ 契约、Redis 缓存、OSS、错误码、模块架构、配置时,检查并同步更新对应文档,保证项目文档自动维护。
MySQL 建表与字段规范(面向 Java 管理端业务:用户、LLM 配置、数据集、知识文件、解析任务)。统一命名、索引、字段类型、时间戳、引擎字符集与注释要求,便于研发与 DBA 评审落地。
SpringDoc OpenAPI 3 中文注解生成工作流。为 Spring Boot Controller 和 DTO 生成符合企业级规范的中文 Swagger 注解(@Tag、@Operation、@Parameter、@Schema)。
brief.md 和 acceptance.feature 已冻结后,生成 .specs/<需求名>/technical_design.md;必须基于真实 Java 代码、组件文档和契约。
实现完成后,从当前改动创建规范分支、提交并发起 PR。
| name | curl-api-test |
| description | 为 toLink-Service 的 HTTP 接口构建并执行全面的 curl 黑盒测试。分析待测接口与边界条件,必要时直连数据库或经接口造数,对本地已启动服务发起 curl 请求,断言响应,最终在对话中返回测试结果汇总。 |
| when_to_use | 用户说『用 curl 测一下这个接口』『构建接口测试用例』『跑一遍 API 测试』『验证某个 Controller 的边界条件』『黑盒测试某接口』时使用。前提是服务已在本地启动。若用户要的是 JUnit/MockMvc 单元测试,转 auto-test;若要写验收契约,转 acceptance-generator。 |
本 skill 负责把一个或一组 HTTP 接口,转化为可执行的 curl 黑盒测试,覆盖正常路径与边界条件,对本地已启动的服务真实发起请求,校验响应,并在对话中给出结构化测试结果。
它帮助 Agent 在不写 Java 测试代码的前提下,快速验证接口的真实运行行为(参数校验、认证、权限、业务分支、错误码、统一响应结构)。
它不负责:
auto-test)。acceptance-generator)。auto-test / tdd。docs/api/api_contracts.md。执行前必须确认:
http://localhost:8080。若用户提供了其它地址,以用户为准。不满足时按"7. 工作步骤 / 步骤 0"处理,不要盲目发请求。
按需读取,只读支撑本次测试的最小集合:
Controller(link-api/.../controller/):拿到路径、HTTP 方法、@RequestMapping 前缀、参数、是否需要认证。link-model/.../dto/):拿到字段、校验注解(@NotNull、@Size、@Email 等),用于设计边界用例。link-model/.../dto/response/Result.java:统一响应结构 {code, message, data},成功 code=200。link-core 异常体系 / ErrorCode:拿到错误码与错误响应形态,用于断言失败分支。docs/api/api_contracts.md:已有接口契约,校对预期。satoken 传递。http://localhost:8080/api/v1/... 为主,以实际 @RequestMapping 为准。satoken: <token>(不是 Authorization: Bearer)。token 由登录/注册接口返回的 data.accessToken 获取。{"code":200,"message":"success","data":...},成功判定看 code 字段,不要只看 HTTP 状态码。code + message,需据 ErrorCode 断言。按以下优先级造数,越靠前越优先:
mysql 客户端查询。库名 tolink_rag_db,连接参数取环境变量(DB_HOST/DB_USERNAME/DB_PASSWORD,缺失时向用户索取)。INSERT/UPDATE。
cit_、邮箱 cit_*@test.local),便于区分与清理。注:本 skill 默认不落盘脚本与报告,但执行期可使用临时 shell/curl 命令;测试结束以对话汇总为最终交付。
curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/<已知接口>。不可达则提示用户先启动服务(mvn spring-boot:run -pl link-api),不要继续。出现以下情况,先问最阻塞的 1 个问题再继续:
用户说"你看着测"时,可基于本 skill 约定做保守假设并在汇总中说明。
读取 Controller + DTO 后,为每个待测接口列出用例矩阵,至少覆盖:
code=200 与关键 data 字段。@Size)、格式非法(如非法 email)、类型错误、数值边界(0 / 负数 / 上限)。satoken、token 非法/过期、越权访问他人资源。Result,错误码符合 ErrorCode。每条用例明确:方法、URL、请求头、请求体、预期 code / 关键断言。
按"6. 数据准备策略"造数。需要认证时先登录/注册取 accessToken,后续用例复用该 token。
curl -s -w "\n%{http_code}" 同时拿响应体与 HTTP 状态码。code、message、关键 data。示例(仅示意,实际以真实接口为准):
# 登录取 token
TOKEN=$(curl -s -X POST http://localhost:8080/api/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"account":"cit_user","password":"Test@1234"}' | sed -n 's/.*"accessToken":"\([^"]*\)".*/\1/p')
# 正常路径
curl -s -w "\n%{http_code}" http://localhost:8080/api/v1/xxx \
-H "satoken: $TOKEN"
# 边界:未认证
curl -s -w "\n%{http_code}" http://localhost:8080/api/v1/xxx
最终在对话中返回(不落盘):
auto-test 固化为自动化测试)。用例明细建议用 Markdown 表格,FAIL 项醒目标注。
出现以下任一情况即不合格,必须修正后再交付:
code 字段。auto-test / tdd 写成 JUnit/MockMvc。contract-guard / doc-maintenance-sync。acceptance-generator。run-all-tests。