【发布时间】:2021-04-15 18:30:26
【问题描述】:
public Response triggerPutRequestWithPathParamAndJsonBody(String basePath,String baseUri,String id,Object obj){
System.out.println("Base path: "+basePath+"\n");
System.out.println("Base URI: "+baseUri+"\n");
String json = GsonUtils.toJsonFromJavaObject(obj);
System.out.println("Request Body: \n"+json+"\n");
RequestSpecBuilder requestSpecBuilder = new RequestSpecBuilder();
requestSpecBuilder.addPathParam("id",id);
requestSpecBuilder.setBasePath(basePath);
requestSpecBuilder.setBaseUri(baseUri);
requestSpecBuilder.setBody(json);
requestSpecBuilder.setContentType(ContentType.JSON);
RequestSpecification requestSpecification = requestSpecBuilder.build();
Response response = RestAssured.given().spec(requestSpecification).put();
return response;
}
public Response putRequestNew(String id, String name, String job){
PutRequestPojo putRequestPojo = new PutRequestPojo();
putRequestPojo.setName(name);
putRequestPojo.setJob(job);
String basePath = "https://reqres.in";
String baseUri = "/api/users/{id}";
Response response = apiCore.triggerPutRequestWithPathParamAndJsonBody(basePath,baseUri,id,putRequestPojo);
return response;
}
@Test()
public void putTestNew(){
Response response = putRequest.putRequestNew("6", "cooper", "physicist");
System.out.println("\nResponse: ");
response.prettyPrint();
}
运行上述测试方法时出现以下异常:
java.net.URISyntaxException: Illegal character in path at index 11: /api/users/{id}
我无法弄清楚我做错了什么。我不想将整个 URL 作为硬编码字符串传递给 requestspectbuilder。我应该如何使用 RequestSpecBuilder 的 .addPathParam() 传递路径参数以使其更通用。
【问题讨论】:
标签: java api automation rest-assured qa