好的,所以我在这里有一个测试,它将从restAPI下载一个zip文件夹,然后提取文件并将它们与一些本地文件进行比较,以确保它们是相同和正确的。一切正常,但我的问题是现在下载Zip文件夹,zip文件夹将下载为从get请求到端点的响应。所以我有一些快速的方法。
第一种方法是基本上设置对应用主页的请求,只需设置即可。它有自己的方法来重用当然;
public RequestSpecification downloadRequest(String testRunName){
RequestSpecification request = given()
.baseUri(url)
.config(RestAssured.config().sslConfig(new SSLConfig().allowAllHostnames()))
.cookies(cookiesSpecification())
.header("Authorization", getAuthenticationToken("Automation@smart.com", "Automation0"))
.header("Accept", "application/json, text/plain, */*")
.param("resultsPerPage", 10)
.param("pageNum", 1)
.param("names", testRunName);
return request;
}
接下来,我有一个方法,它将获取测试运行的ID和名称,并找到此特定测试运行的ID,这可以在响应中找到。这种方法很好用:
public String getTestDataID(int testRunID, String testRunName) {
log.debug("Downloading Test Data Template");
RequestSpecification request = downloadRequest(testRunName);
ResponseBody response =request
.when()
.get("/restapi/testRuns/" + testRunID + "/testData").getBody();
String testDataID = response.jsonPath().getString("id");
return testDataID;
}
最后,保持失败的方法将获取前一个ID,并使用url中的此ID向端点发送get请求。然后应该下载zip文件夹。我返回响应,然后有另一种方法转换和流式传输zip,这一切都好。问题是这个方法,我每次运行测试时都会得到Http:500内部服务器错误。但是,如果我在这里设置一个断点并从此方法开始,它将通过。
public Response getTestDataZip(String testDataID){
return getRequest(url + "/restapi/downloads/" + testDataID + "/content");
}
任何想法为什么这会在跑步时失败但是如果我突破它并且跨过每一步就通过。由于它在我走过时传递,它让我觉得它是一个缓存问题,但是这是一个500错误,所以也许一些授权似乎都已经到位了。
如果有人知道某事或能看到某些东西,那将非常感激。提前致谢。