Karate 是什么
Karate 是开源的接口测试框架,用 Gherkin 风格语法编写:feature 文件直接描述请求、断言与数据,内建 JSON/XML 解析、match 断言、并行执行与 HTML 报告,无需编写 Java 代码即可开始。配置集中在 karate-config.js,适合团队快速共建接口用例。
基本信息
| 脚本载体 | .feature 文件(Gherkin 语法) |
|---|---|
| 断言机制 | match:结构匹配、模糊匹配与正则 |
| 运行方式 | JUnit 运行器或命令行,支持并行执行 |
| 配置管理 | karate-config.js 按环境切换 baseUrl 等参数 |
| 报告 | 内建 HTML 报告,含请求响应与断言明细 |
| 数据驱动 | Scenario Outline 与 Examples,或外部 JSON/CSV 文件 |
| 标签过滤 | 用 @tag 标注场景,按执行范围筛选 |
feature 示例
feature 示例
Feature: Users
Background:
* url baseUrl
Scenario: create user
Given path '/v1/users'
And request { name: 'alice' }
When method post
Then status 201
And match response.name == 'alice'
# 运行:JUnit 运行器或命令行并行执行,产出 HTML 报告典型使用场景
- 接口回归:用 feature 文件覆盖核心接口的成功与失败路径。
- 契约验证:match 校验响应结构与字段类型,捕捉不兼容变更。
- 团队协作:业务与测试可在同一份 feature 上协作评审。
- 并行提速:按 feature 并行执行,缩短回归时间。
- 数据驱动:用 Examples 表参数化多组请求数据。
- 鉴权流程复用:登录获取令牌抽成可复用片段。
惯用写法与作用
| 写法 | 作用 | 注意 |
|---|---|---|
| url + path | 拼接请求地址 | baseUrl 放配置,path 放用例 |
| request + method | 发送请求体与指定方法 | JSON 内联或读取外部文件 |
| header / param | 设置请求头与查询参数 | 鉴权头统一放配置或复用片段 |
| status | 状态码断言 | 错误场景同样要显式断言 |
| match | 响应断言 | 支持模糊匹配符与结构比较 |
| call + read | 复用片段与读取外部文件 | 公共流程抽成可复用片段 |
内置 match 断言支持 JSON 结构匹配与模糊匹配符,比字符串相等更贴近接口验证:优先 match 结构,少做字符串对比。
配置与环境分离:baseUrl、超时、鉴权参数放 karate-config.js,用例只关心业务。
标签管理执行范围:@smoke 冒烟集与回归集分开标注,CI 按需选择,减少不必要的运行。
并行执行时注意共享状态:令牌缓存、测试账号这类资源要隔离或串行化。