1、什么是REST Assured?

REST Assured 是一个java库,主要用来测试RESTful Web服务。
用来调用web服务并检查响应。
可以用来测试基于Web服务的XML、JSON。
支持POST,GET,PUT,DELETE,HEAD,PATCH和OPTIONS请求,可以用来验证和确认请求对应的响应。
可以用来集成Juint、TestNG等测试框架。
REST Assured 底层对httpclient又进行了一次封装,而且使用了groovy语言。

2、需要准备的东西:

Java,配置java环境
IDE(比如Eclipse、IntelliJ等)
Maven(通过pom.xml文件的配置获取jar包,不用手动的去添加jar包。如果不是在终端命令行执行,可暂不安装)TestNG(一个测试框架,可运用于单元测试和集成测试中。为REST Assured 创建测试)

编写测试的三步骤:

  • 编写测试的业务逻辑,并在代码中插入TestNG的注释(Annotations)
  • 在testing.xml或build.xml文件中添加测试相关信息(例如,希望运行的类名,组名)
  • 运行TestNG


    3、在Eclipse中创建Java项目

    1)、创建Maven项目

    image.png
    注:初次学习框架,可勾选 跳过Archetype选择。后续仅需填写groupId,artifactId信息。(groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。)

image02.png

2)、在POM.XML 文件中添加依赖

image03.png
当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库查找下载。

Maven中央存储库网站: https://mvnrepository.com/
全局搜索后,进入相应的库,根据需要,找到具体版本,复制依赖到POM.XML dependencies标签中。
image04.png

3)、保存POM.XML后,可在Maven dependencies中检查是否已经成功添加了依赖。

注:出现了相应版本的jar包,说明已经成功添加
image05.png

4)、在Eclipse安装TestNG插件

注:在POM.XML中添加testNG是为了在代码中引用,以编写testNG测试代码。添加testNG插件,是为了能在Eclipse中运行testNG编写的测试代码。

a、选择安装新软件image06.png
**

b、在testNG官网,找到eclipse插件链接,点击进入
image07.png**

c、复制链接到eclipse中,添加并进行安装
image08.png**

d、确认已经安装完成
image09.png

4、编写简单的测试

a)、在src/test/java中创建package
image10.png**

b)、在该Package中创建Class
image11.pngimage12.png
c)、创建简单的get请求,断言请求后响应的状态码是否正确
https://reqres.in/ 官网提供了不同请求的url、请求体等信息。
image13.png
image14.pngimage15.png

d)、可通过点击run执行该测试、或者右键选择run as testng(没有的话可以选择run configuration进行配置)
image16.pngimage17.png
e)、运行之后,可查看最终测试的结果**
成功:
image18.pngimage19.png

出现失败的情况,可查看控制台打印信息或者查看testNG提供失败测试分析
image20.pngimage21.png**

**

f)、其他请求方法示例
image22.png**

关于静态输入
从下列类中静态导入方法,以更高效的使用REST Assured。(注:静态导入可直接调用类中的方法,不用写类名再调用类中的方法)
import static io.restassured.RestAssured.*
import static io.restassured.matcher.RestAssuredMatchers.*
import static org.hamcrest.Matchers.*
RestAssuredMatchers :提供的Hamcrest 匹配器,在验证响应时非常有用
Hamcrest :是用于Java的单元测试的框架,它使用matcher匹配器来进行断言,可以组合创建灵活的表达匹配器进行断言