接口测试 Rest-Assured 使用指南
REST Assured 是一个轻量化接口测试框架,它支持发起POST,GET,PUT,DELETE,OPTIONS,PATCH和HEAD请求,并且可以用来验证和校对这些请求的响应信息。
1.配置Java环境,新建maven工程,导入jar包
2.导入RestAssured(静态导入方法,以提高使用rest-assured的效率)
import io.restassured.RestAssured.*; import io.restassured.matcher.RestAssuredMatchers.*; import org.hamcrest.Matchers.*;
3.开始编写脚本,下边是一个有参数的post请求
实列一,验证以下接口返回的数据是否包含某个值
返回数据:
使用mococo模拟,进入到路径执行以下命令、
执行成功:
验证返回参数 int类型
equalTo()方法和 hasItems()方法是属于 Hamcrest matchers 的方法,所有我们需要静态导入 org.hamcrest.Matchers
验证返回参数 double类型
使用BigDecimal验证返回参数 double类型
使用rest-assured的JsonConfig来配置返回的所有的json数值都为BigDecimal类型:
(BigDecimal,用来对超过16位有效位的数进行精确的运算)、
//Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算)
实列2.匿名JSON根节点验证
一个json文本并不一定有一个命名好的根节点属性,验证这种类型的json,这里有一个例子:
[1, 2, 3]
使用 $ 或者是 空字符串 来验证
实列3 JSON Schema validation
(Json Schema定义了一套词汇和规则,这套词汇和规则用来定义Json元数据,且元数据也是通过Json数据形式表达的。Json元数据定义了Json数据需要满足的规范,规范包括成员、结构、类型、约束等。)
自从 2.1.0 版本rest-assured开始支持Json Schema validation. 举个例子,在classpath中放置以下的schema文件(译者注:idea的话可以放在resources目录下),products-schema.json:
//schema验证(/products)这个请求是否符合规范:
JSON Schema Validation 设置项
实例4 xml解析
//todo xml解析
//TODO xml XPATH校验
Schema和DTD
XML响应体也可以验证为一个XML Schema (XSD)或DTD.
校验XSD是指:接口中返回xml响应体,针对xml生成xml schema,就是xsd后缀的文件,校验xsd文件和返回的xml响应体是否一致。
校验DTD是指:接口中返回的xml响应体中定义了DTD的文档规范,DTD文档是以dtd后缀的文件,校验dtd文件和返回的xml响应体的文档规范是否一致。
DTD文档是指在xml头中定义的DOCTYPE规范
moco文件:
xsd是xml schema definition,xml文档的结构定义。
moco的接口返回xml文档,对xml文档生成对应的xsd文档
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统