我正在做黃瓜bdd測試,我有一個類[MyClient]
包裝restassured方法,我有多個類,調用[MyClient]
。RestAssured:如何在發送請求後獲取RequestSpecification字段或參數?
我可以做像放,發佈等方法就好了,但我想知道是否有一種方法讓我得到請求後發送的實際請求字段(標題,正文...)。
我也沒有任何問題得到和解析響應,但我無法得到請求發送。
考慮下面,我可以調用sendPostRequest()
將在RequestSpecification
實例存儲到一個名爲request
場,我可以通過調用getter
隨時隨地獲取它。但是,我不能從RequestSpecification
對象中獲取單個字段。從debugger
,我可以看到這些字段很好,所以我認爲必須有一些乾淨的方式才能得到它。
我已經試過log()
但它似乎並沒有給我我需要的東西。 任何幫助表示讚賞!
調用類:
public class MyInterfaceSteps() {
private myClient = new MyClient();
public sendPostRequest(){
myClient.post(someHeaders, someBody, someUrl);
}
}
客戶端類:
public class MyClient() {
private RequestSpecification request;
private Response response;
public getRequest() {
return request;
}
public getResponse() {
return response;
}
public Response post(Map<String, String> headers, String body, String url) {
request = given().headers(headers).contentType(ContentType.JSON).body(body);
response = request.post(url);
}
}
我希望能夠將我的請求的完整URI添加到testNG自定義報告中。爲此,我必須做'FilterableRequestSpecification httpRequest =(FilterableRequestSpecification)RestAssured.given();',然後將我的查詢參數應用於'queryParam(...)',然後執行'.get(mypath)'。通過將請求轉換爲「FilterableRequestSpecification」,而不需要過濾器,我終於可以通過'httpRequest.getURI()'訪問URI。爲什麼'getURI()'不是RequestSpecification的默認方法?將它轉換爲FilterableRequestSpecification是否會造成麻煩? – agatheblues