问题:restAssure中遇到相应结果中content type 为 text/plain,无法使用Gpath的语法进行相应结果提取
解决方式1:将响应结果转化为json格式
@Test()
public void getModeRest(){
Response response =
given().log().all().
header(“token”,GlobalEnvironment.globalVar.get(“token”)).
when().
get("/xxx/admin/mode?f=pjson").
then().
using().defaultParser(Parser.JSON).//将application/ text响应结果转化为json格式
log().all().
extract().response();//提取响应结果,为json格式
Assert.assertEquals(response .path(“sitemode”),“EDITABLE”);//断言站点模式为可编辑模式
}
方式2:
@Test()
public void getModeRest(){
Response response =
given().log().all().
header(“token”,GlobalEnvironment.globalVar.get(“token”)).
when().
get("/xx/admin/mode?f=pjson").
then().
log().all().
extract().response();//提取响应结果,为json格式
//重构response,将它设置为json格式
ResponseBuilder responseBuilder=new ResponseBuilder().clone(response);
responseBuilder.setContentType(“application/json; charset=UTF-8”);
Response finalresponse=responseBuilder.build();
Assert.assertEquals(finalresponse.path("sitemode"),"EDITABLE");//断言站点模式为可编辑模式
}
方式3:
通过restassured提供的json解析的from静态方法转换response为json格式
import static io.restassured.path.json.JsonPath.from;
@Test()
public void getModeRest(){
Response response =
given().log().all().
header(“token”,GlobalEnvironment.globalVar.get(“token”)).
when().
get("/xx/admin/mode?f=pjson").
then().
log().all().
extract().response();//提取响应结果,为json格式
String response1=response.asString();
HashMap obj=from(response1).get(“sitemode”);
}