Kav*_*ana 3 java rest rest-assured
任何人都可以帮我解决这个问题:
我是新手RestAssured并JSON在自动化脚本中处理.我API的反应是JSONArray,
[{
"id": 1002,
"entity": "testcase",
"fieldName": "TextName",
"displayName": "Name"
}, {
"id": 1003,
"entity": "testcase",
"fieldName": "steps",
"displayName": "TestSteps"
}]
Run Code Online (Sandbox Code Playgroud)
自动化,验证我需要获取响应.我尝试了下面的一个但没有得到预期的输出
String API = "/field/entity/testcase"
Response response = given().auth().preemptive().basic("test.manager", "test.manager").when().get(API);
JSONObject JSONResponseBody = new JSONObject(response.body().asString());
Assert.assertEquals(JSONResponseBody.getString("fieldName"), "TextName");
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
JSONArray array = new JSONArray();
JsonObject JSONResponseBody = array.getJsonObject(0);
Run Code Online (Sandbox Code Playgroud)
提前致谢
这种验证可以直接使用restAssured - ValidatableResponseOptions本身来实现
String API = "/field/entity/testcase"
given().auth().preemptive().basic("test.manager", "test.manager").
when().get(API).
then().assertThat().body("fieldName[0]", equalTo("TextName");
Run Code Online (Sandbox Code Playgroud)
注 - 静态导入后需要"equalTo"验证
import static org.hamcrest.Matchers.equalTo;
Run Code Online (Sandbox Code Playgroud)
你应该尝试这个:
String API = "/field/entity/testcase"
Response response = given().auth().preemptive().basic("test.manager", "test.manager").when().get(API);
JSONArray JSONResponseBody = new JSONArray(response.body().asString());
Assert.assertEquals(JSONResponseBody.getJsonObject(0).getString("fieldName"), "TextName");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15154 次 |
| 最近记录: |