介绍
RestAssured 是基于java开发的开源测试框架,用于简化构建在 HTTP Builder 之上的基于 REST 服务的测试。它支持 POST、GET、PUT、DELETE、OPTIONS、PATCH 和 HEAD 请求,可用于验证和验证这些请求的响应。
github地址:
https://github.com/rest-assured/rest-assured
使用
1、环境准备
提供服务端jar包、接口文档的下载、访问地址,需下载jar运行在本地,供后续示例使用。
jar包下载地址:https://cdn.yiduoyun.space/server-0.0.1-SNAPSHOT.jar
服务端接口文档:https://console-docs.apipost.cn/preview/40d39bd75ff83aea/33534bca09371fd6
1、引入maven依赖
<!-- RestAssured 依赖 -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>5.0.1</version>
</dependency>
<!-- TestNG 依赖 -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.5</version>
</dependency>
<!-- 日志 依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.28</version>
</dependency>
2、GET 请求
import lombok.extern.slf4j.Slf4j;
import org.testng.annotations.Test;
import static io.restassured.RestAssured.given;
/**
* @author xcj
*/
@Slf4j
public class HttpRequest {
@Test
public void getInfo(){
given().param("productName","咖啡")
.param("number","1").log().all()
.when().get("http://localhost:8080/checkStock")
.then().log().all().statusCode(200);
}
}
3、POST 请求
import lombok.extern.slf4j.Slf4j;
import org.testng.annotations.Test;
import java.util.HashMap;
import java.util.Map;
import static io.restassured.RestAssured.given;
/**
* @author xcj
*/
@Slf4j
public class HttpRequest {
@Test
public void addInfo(){
Map map = new HashMap();
map.put("name","咖啡");
map.put("number","8");
given().header("Content-Type","application/json")
.body(map).log().headers().log().body()
.when().post("http://localhost:8080/addProductStock")
.then().log().body().statusCode(200);
}
}
4、PUT 请求
import lombok.extern.slf4j.Slf4j;
import org.testng.annotations.Test;
import java.util.HashMap;
import java.util.Map;
import static io.restassured.RestAssured.given;
/**
* @author xcj
*/
@Slf4j
public class HttpRequest {
@Test
public void putInfo(){
Map map = new HashMap();
map.put("name","牛奶");
map.put("number","8");
String msg = given().header("Content-Type", "application/json")
.body(map).log().all()
.when().put("http://localhost:8080/updateProductStock")
.then().log().all().statusCode(200).extract().path("msg");
log.info("提取的接口响应信息:{}",msg);
}
}
5、DELETE 请求
import lombok.extern.slf4j.Slf4j;
import org.testng.annotations.Test;
import static io.restassured.RestAssured.given;
/**
* @author xcj
*/
@Slf4j
public class HttpRequest {
@Test
public void deleteInfo(){
given().param("productName","牛奶").log().all()
.when().delete("http://localhost:8080/removeProductStock")
.then().log().all().statusCode(200);
}
}
评论区