REST Assured 系列汇总 之 REST Assured 1 - REST Assured 介绍
REST Assured是什么?
REST-assured是一个开源的Java 库,用来测试和验证REST APIs。动态语言如Groovy,Ruby执行API测试非常有益和简单,而对Java来说就有点费力了。但REST Assured使得用Java语言测试API跟使用Ruby和Groovy一样简单。
REST Assured 是一种JAVA DSL(Domain Specific Language)领域特定语言 [ 通常被定义为一种特别针对某类特殊问题的计算机语言,它不打算解决其领域外的问题。],用来简化测试REST Services,它简化HTTP Builder顶层。REST Assured支持发起任意HTTP请求POST, GET, PUT, DELETE, OPTIONS, PATCH和HEAD, 包括详述清单,比如:参数,头部,cookie和实体。它可以用来验证这些请求的响应。
REST Assured基于Apache Http Client(提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议)之上,那为啥不直接用HTTP Client呢?下面的截图可以给出答案。
REST Assured 由Johan Haleby开发和维护. 他于2010年工作于Jayway开始启动项目,现在由Parkster赞助。
REST Assured的版本
当你在Maven Central Repo搜索Rest Assured依赖是,你会发现有两个不同的group ids。初学者可能会有疑惑,我们还是用最新的那个版本。
com.jayway.restassured – 这个是停产的
io.rest-assured – 这个是最新的
REST Assured的优点
- 开源,免费
- 相比Http Client,REST Assured所需代码量更少
- 发起一个HTTP 请求,前期准备步骤更简单直接
- 更容易解析响应中的JSON或XML
- 提取字段和断言更简单利用内置的hamcrest Matchers
- 自2.0版本后,支持BDD 关键字如given(), when(), then() 使得代码可读,干净
- 丰富的语法
- 非常丰富的现成的断言
- 快速的断言状态码和响应时间
- 运行中验证Headers, cookies, Content-Type等
- 强大的日志机制
- 非常容易集成其它java类库,如TestNG,Junit作为测试框架和其它扩展的Report插件
- 支持不同的身份验证机制
- 可以集成Selenium-Java实现端到端的UI automation
- 内置支持JsonPath和XmlPath用来解析响应中的JSON,XML格式消息。
- 可以用来验证JSON Schema利用JSON Schema Validation库
- 也包括 XML schema 验证
- 可以集成Maven和CICD
- REST Assured 4.1.2 支持 Java 13.
- 支持 multi-part 形式数据
- 支持Spring Mock Mvc, Spring Web Test Client, Scala and Kotlin.
REST Assured的缺点
- 不显示支持测试SOAP APIs
- 需要java编程能力
- 没有内置的reporting,BDD是一个比较好的选择