簡體   English   中英

在黃瓜報告中提供請求和響應正文

[英]Provide request and response body in cucumber report

我使用java黃瓜並且放心。 目前,我嘗試創建報告,在該報告中,我不會為報告中的每個請求提供完整的請求和響應信息。 因此問題是:是否可以將所有請求和響應信息保存在變量中? 還是使用另一種方式在報告中獲取此數據?

PS我知道如何獲取response( extract().response() )或在控制台日志( log().all() )中打印所有請求信息。 而且我已經設置了maven-cucumber-reporting來生成html報告,但是沒有所有請求和響應API數據。

如果您可以考慮從REST保證的情況下切換,則Karate具有您正在尋找的確切功能,即詳細的HTTP請求和響應日志在Cucumber HTML報告中內嵌顯示的位置。 這是一個簡短的視頻演示

您可以在此處找到空手道和REST保證的詳細比較。

免責聲明:我是開發人員。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM