在下面的此方法中,我正在对本地运行的API进行API调用,该API仅接受一个文件作为请求,但是有任何可能的方法可以使用Rest Assured在运行时动态地使API接受多个文件作为请求时间基于该API的请求?例如如何在运行时动态地在Rest Assured中将多个文件添加为API请求?
public String restTest() {
String resp = RestAssured.given().multiPart("file", new File("C:/Local/file/path/LocalFiles/file.txt")).when().post("http://localhost:4444/local/upload").then().assertThat().statusCode(200).and().extract().body().asString();
return resp.toString();
}
答案 0 :(得分:1)
public static void main(String[] args) throws MalformedURLException {
Response response;
RequestSpecification request = RestAssured.given().header("content-type", "multipart/form-data");
for (int i = 1; i <= 2; i++) {
request.multiPart("file", new File("D:/testtemplates98_" + i + "Data.xlsx"));// File parameters will be
// dynamic
}
response = request.post(new URL("https://jquery-file-upload.appspot.com/"));
System.out.println(response.getBody().asString());
}
答案 1 :(得分:0)
请放心,使用构建器模式,这样您就可以像堆叠文件一样
given().
multiPart("file1", new File("/home/johan/some_large_file.bin")).
multiPart("file2", new File("/home/johan/some_other_large_file.bin")).
multiPart("file3", "file_name.bin", inputStream).
formParam("name", "value").
expect().
body("fileUploadResult", is("OK")).
when().
post("/advancedFileUpload");
,因此您可以发送多个文件。
答案 2 :(得分:0)
File files[] = getFileList();
RequestSpecification request = RestAssured.given().contentType(ContentType.MULTIPART_FORM_DATA.toString()).request();
for (File file: files) {
request.multiPart("files", new File(file.getAbsolutePath()));
}
request.post().then().statusCode(200);