Rest-Assured 测试框架

Rest-Assured 是一个测试 Restful Web Service 的 Java 类库,我们能够测试各种各样的请求组合,依次测试核心业务逻辑的不同组合。

它是通过发送特定的rest api,通过服务器返回的HTTP响应,来做功能性测试。

REST API的概念

REST API就是符合REST风格,要了解REST API首先需要弄清楚REST风格的具体含义。REST的全称是Representational State Transfer,中文是表述性状态转移,这个是什么意思等会再解释,先说明为什么会出现REST,以及它对整个网络服务API发展的重要性。

在互联网服务刚刚起步的时候,网页大部分是静态的,用户与服务器之间的交互比较少,但是随着动态网页的发展,操作的种类也越来越繁复,接口冗余且复杂,开发难度大大提升,扩展困难,而且网络traffic的负担也增大了。针对这些问题,2000年一篇论文提出了REST这个设计理念。REST宗旨是从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。REST与平台、语言等均无关,但是目前仅有HTTPREST的实现案例。

REST使用URL来定位资源,通过HTTP动作来表述操作,如

GEThttp://www.TEST.com/users/user

POSThttp://www.TEST.com/users

HTTP动作常用的是PUTPOSTGETDELETE,分别对应着对资源的更新、插入、获取和删除操作。数据是保存在Headers中传输的,其中PUT还有数据在Body中传输。

REST是无状态的,即前一次的动作对后一次的动作是没有影响的,在HTTP应用中,无状态即不能使用Session

REST-Assured实例

通过Maven引入:

<dependency> 

<groupId>io.rest-assured</groupId> 

<artifactId>rest-assured</artifactId> 

<version>3.0.0</version>

<scope>test</scope>

</dependency>

通过HTTP动作获得请求,在对请求进行断言判断,来完成一系列集成测试。例如:

RestAssured.requestSpecification =

new RequestSpecBuilder().addHeaders(“token”,”xxx”).build();

通过given()设置HTTP动作和附带的参数,例如:

given().contentType("application/json")
.pathParam("organizationId",orgId)
.body(data)
.when().post("/v1/organizations/{organizationId}/users");

 传入键值对通常使用map传递,可以通过工具类转换成json等格式,如JSON.toJSONString(map)。

每一次完成后需要RestAssured.reset();来重置状态,避免影响其它的测试用例。

对于返回的response的内容,比如对body中的数据进行验证,可以使用body("id", equalTo(2))或者使用包装好的Assert方法进行验证。

刚刚学习这方面的知识,内容可能有错误,希望在以后的学习中,逐渐完善自己的知识,并且不断改进。

猜你喜欢

转载自www.cnblogs.com/takemytime/p/9387567.html