2017-08-25 31 views
1

我使用java-cucumber並放心。目前,我嘗試創建報告,我不希望爲報告中的每個請求提供完整的請求和響應信息。所以問題是: 如果可以保存變量中的所有請求和響應信息?或者用另一種方式在報告中獲取這些數據?在黃瓜報告中提供請求和響應體

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

+0

您可以使用Scenario的write()方法並傳遞響應請求文本。在Before鉤子中,您可以傳入Scenario對象並將其存儲在步驟定義類的實例變量中。 – Grasshopper

+0

歡迎來到計算器。請,你能提供一些你的具體問題的代碼嗎?這可以證明你嘗試了多遠,它會幫助其他成員更好地理解你的問題,當時,你會給他們一個你的問題的背景。請檢查以下鏈接:https://stackoverflow.com/help/mcve和https://stackoverflow.com/help/how-to-ask –

回答

0

不熟悉黃瓜但是如果它有什麼捕獲輸出報告,您可以創建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; 

    } 
} 
0

如果你可以考慮從REST-放心,空手道有確切的性能切換你正在尋找詳細的HTTP請求和響應日誌在Cucumber HTML報告中在線顯示的位置。這是一個short video demo

您可以找到詳細的比較空手道和REST保證here

聲明:我是開發者。