1.RestAssured基础_1_简介

REST Assured是一个可以简化HTTP Builder顶层,基于REST服务的测试过程的Java DSL(针对某一领域,具有受限表达性的一种计算机程序设计语言)。它支持发起POST,GET,PUT,DELETE,OPTIONS,PATCH和HEAD请求,并且可以用来验证和校对这些请求的响应信息。

既然是基于验证rest协议,学习之前先来看一下rest和restful

1. Rest和Restful

Rest

REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。
在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格

Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。

Restful

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
RESTFUL特点包括:
1、每一个URI代表1种资源;
2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
3、通过操作资源的表现形式来操作资源;
4、资源的表现形式是XML或者HTML;
5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息

RESTful的核心思想:请求方式 + URL的方式对资源发起命令。
◆ 比如:GET /user 这个命令中,GET 查询动作,user是被查询的对象。
◆ 比如:POST /user 这个命令中,POST 新增动作,user是被新增的对象

采用这种约定之后,每个动作对应不同的请求方式,但是URL不会发生变化。对于接口的维护和测试都是非常方便的。

restful接口和其余接口的区别:

传统接口设计方式:

    /getUser?id=1
    /updateUser
    /deleteUser?id = 1

RESTful: 动作的操作资源分离

GET /user/1  查询id为1的用户
POST /user  创建用户
delete /user/1
delete/user?id=1    

通过上面对比你会发现,RESTful类型的接口更加简单轻量,需要记忆的东西也变少了,这就是RESTful魅力所在。

状态码

http状态码是一个三位数,范围100-599,以第一位数分类。
1xx: 接受的请求正在处理
2xx:请求正常处理完毕
3xx:重定向(302)相关和缓存(304)
4xx:客户端错误,服务端无法处理请求 404
5xx:服务器请求处理失败  500

在RESTful接口设计中1XX和3XX基本用不到,4XX和5XX还是和普通接口一样,出现了什么错误做出对应提示即可。

只有2XX会有一些改变,传统接口成功之后我们都会统一返回200不做区分。

而RESTful对于不同的请求方式会返回不同的状态码。
如下:

在这里插入图片描述

2.REST Assured

REST Assured是一种特定于Java 领域的语言,它简化了在HTTP Builder之上构建的测试和验证REST服务的过程,REST Assured支持多种请求格式的验证
官方文档地址:https://testerhome.com/topics/7060
github地址:https://github.com/RookieTester/rest-assured-doc

优势:

1)支持JSON数据解析和验证
2)支持XML数据解析和验证
3)支持cookies添加
4)支持Header字段设置
5)支持Content Type设置
6)正文Body的设置
7)支持Cookies的设置
8)Status状态码相关设置
9)authentication认证设置


版权声明:本文为qq_34400745原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。