Pom.xml
JUnit (根据项目来选择)
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
<version>2.9.0</version>
<scope>test</scope>
</dependency>
代码示例
import com.jayway.restassured.RestAssured;
import static com.jayway.restassured.RestAssured.*;
import static com.jayway.restassured.matcher.RestAssuredMatchers.*;
import static org.hamcrest.Matchers.*;
public class DouBanTest
{
@Before
public void setUP(){
//指定 URL 和端口号
RestAssured.baseURI = "http://api.douban.com/v2/book";
RestAssured.port = 8888;
}
@Test
public void testGETBook()
{
//判断body里的title 是否等于“...”
get("/1220562").then().body("title", equalTo("lycode"));
}
}
带参数的请求
@Test
public void testSearchBook(){
given().param("q", "lycode").when().get("/lycode").then().body("count", equalTo(2));
}
指定 header、cookie、content type
given().cookie("name", "xx").when().get("/xxx").then().body();
given().header("name", "xx").when().get("/xxx").then().body();
given().contentType("application/json").when().get("/xxx").then().body();
解析 JSON
get("/1220562").then()
//取顶级属性“title”
.body("title", equalTo("lycode"))
//取下一层属性
.body("rating.max", equalTo(10))
//调用数组方法
.body("tags.size()", is(8))
//取数组第一个对象的“name”属性 跟js取json一样
.body("tags[0].name", equalTo("片山恭一"))
//判断数组元素
.body("author", hasItems("[日]"));
身份验证
given().auth().basic(username, password).when().get("/secured").then().statusCode(200);
given().auth().oauth(..);
given().auth().oauth2(..);
其他 HTTP 请求
Rest-Assured 支持所有的标准 HTTP 请求:GET、POST、PUT、DELETE、PATCH、HEAD、OPTION