![](/img/trans.png)
[英]I want to take value from one API response body and use into another api request using Cucumber gherkin
[英]Provide request and response body in cucumber report
我使用java黃瓜並且放心。 目前,我嘗試創建報告,在該報告中,我不會為報告中的每個請求提供完整的請求和響應信息。 因此問題是:是否可以將所有請求和響應信息保存在變量中? 還是使用另一種方式在報告中獲取此數據?
PS我知道如何獲取response( extract().response()
)或在控制台日志( log().all()
)中打印所有請求信息。 而且我已經設置了maven-cucumber-reporting來生成html報告,但是沒有所有請求和響應API數據。
import io.restassured.specification.FilterableRequestSpecification;
import io.restassured.specification.FilterableResponseSpecification;
// ...
嘗試過此方法,在我開始使用RestAssured
並行運行測試之前,它工作正常。 該報告偶爾會破壞測試運行,因此我不得不將其注釋掉,而且我現在也對另一種如何記錄請求/響應數據的方式感興趣。
對黃瓜不熟悉,但是如果它具有捕獲報告輸出的功能,則可以在REST中確保創建過濾器:
import io.restassured.filter.FilterContext;
import io.restassured.filter.OrderedFilter;
import io.restassured.response.Response;
import io.restassured.specification.FilterableRequestSpecification;
import io.restassured.specification.FilterableResponseSpecification;
public class RcAllureFilter implements OrderedFilter {
@Override
public int getOrder() {
return LOWEST_PRECEDENCE;
}
@Override
public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
Response response = ctx.next(requestSpec, responseSpec);
//you need to implement it, refer to io.restassured.internal.print.RequestPrinter#print
printRequest(requestSpec.getMethod(), requestSpec.getURI(), requestSpec);
//you need to implement it, refer to io.restassured.internal.print.ResponsePrinter#print
printResponse(response, response, response.getStatusLine());
return response;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.