首页/开发/软件测试速查/REST Assured 基础

REST Assured 基础

REST Assured 是 Java 接口测试的常用 DSL:given/when/then 结构、链式配置参数与请求头、JsonPath 断言响应;与 JUnit 或 TestNG 集成后在 CI 中执行接口回归。

软件测试速查开发更新于 2026-10-13

REST Assured 是什么

REST Assured 是 Java 生态的接口测试库,用接近自然语言的方式组织请求与断言:given 里准备请求头、参数、认证与请求体,when 里发请求,then 里断言状态码、响应体字段与响应时间。它与 JUnit、TestNG 无缝集成,断言链式书写可读性强,适合把接口回归直接纳入 Java 项目的构建流水线。

基本信息

依赖坐标io.rest-assured:rest-assured,按需加 json-path 等解析组件
核心结构given 准备、when 发起、then 断言三段式
常用断言statusCode、body 字段路径取值、contentType、响应时间
参数化基于 JUnit 参数化或数据驱动,多组输入复用同一用例
生态集成与 Maven 或 Gradle、CI 流水线天然衔接
辅助能力JSON Schema 校验、请求响应日志开关、全局配置(baseURI 等)

最小用例

最小用例
given()
  .baseUri("https://api.example.com")
  .header("Authorization", "Bearer " + token)
  .queryParam("id", 42)
.when()
  .get("/orders/detail")
.then()
  .statusCode(200)
  .body("data.status", equalTo("PAID"))
  .body("data.amount", greaterThan(0));
// given 准备、when 发起、then 断言,失败信息带实际值,联调效率高

典型使用场景

  • 接口回归:核心接口断言状态码与关键字段,纳入每日构建。
  • 契约校验:用 JSON Schema 锁定响应结构,结构破坏立刻失败。
  • 鉴权场景:同一接口多组 token 与权限矩阵批量验证。
  • 性能粗筛:断言响应时间上限,拦住明显退化。
  • 联调支持:用测试用例固化接口行为,替代口口相传的接口文档补丁。
断言要落到业务字段:只断言状态码 200 会漏掉返回体里业务失败的情况。
凭据与地址外置:token、域名放进配置或环境变量,测试代码里不出现生产秘密。
数据自给自足:用例自己创建再清理数据,避免依赖固定测试数据的顺序。

断言层次与示例

层次断言内容示例
传输层状态码与响应头statusCode(200)、contentType 校验
结构层字段存在与类型JSON Schema 或字段类型断言
业务层字段取值符合规则订单状态与金额关系断言
时延层响应时间上限time 小于约定阈值
失败信息要可读:链式断言天然输出实际值,配合明确的用例命名,排障一步到位。

易错点

  • 断言过浅:只看状态码不看业务字段,接口静默变错无人发现。
  • 硬编码环境信息:域名与 token 写死在用例里,换环境批量失败。
  • 用例互相依赖:前一条用例造的数据被后一条假定存在,执行顺序一变全崩。
  • 不做数据清理:测试数据越积越多,断言被历史数据干扰。
  • 日志常开:全量请求响应日志拖慢流水线,调试结束应关掉。

数据来源与参考

  • REST Assured 官方文档(rest-assured.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌