如何访问其他测试RESt Assured中的变量

时间:2015-07-02 10:33:16

标签: junit rest-assured

我是REST Assured框架的新手。我写了下面的代码。它工作正常。

private static String result;

@Test
    public void getStudentById() {  

    Response response = 
        given().
            header("authToken",userToken).
            pathParam("SNum", "A123").
        when().
            get("/students/{SNum}").
        then().
                contentType(ContentType.JSON).
            body("firstName",equalTo("JOHN")).
        extract().
            response(); 

      result = response.print();      
      System.out.println("Response************************" + result);
    }
@Test
    public void StTest() {
System.out.println("Response************************" + result);    
}

在响应中我得到JSON数据

{"list":
    [
        {
            "id": 0,
            "SNum": "A123",
            "title": "Mr",
            "firstName": "JOHN",
            "lastName": "Doe"
        },
        {
            "id":1 ,
            "SNum": "A12",
            "title": "Mr",
            "firstName": "James",
            "lastName": "Pesr"
        }
   ]
}

在这里,我需要id进行第二次测试。所以我在第二次测试中打印结果变量但它正在获得null。如何在第二次测试中获得结果变量。

1 个答案:

答案 0 :(得分:1)

使用以下jsonPath在第二个测试中获取id:

列表[1] .ID

所以你应该能够做到:

int id = RestAssured.with(response.asString())。getInt(" list [1] .id");