在黄瓜报告

时间:2017-08-25 15:45:35

标签: java cucumber rest-assured cucumber-java

我使用java-cucumber并放心使用。目前我尝试创建报告,其中我不会为报告中的每个请求提供完整的请求和响应信息。所以问题是: 如果可以保存变量中的所有请求和响应信息?或者使用其他方式在报告中获取此数据?

P.S。我知道如何获得响应(extract().response())或在控制台日志(log().all())中打印所有请求信息。我已经设置了maven-cucumber-reporting,它生成html报告,但没有所有请求和响应API数据。

3 个答案:

答案 0 :(得分:1)

如果您可以考虑从REST保证切换,Karate具有您正在寻找的详细功能,其中详细的HTTP请求和响应日志在Cucumber HTML报告中显示在线。这是short video demo

您可以找到空手道和REST保证here的详细比较。

免责声明:我是开发者。

答案 1 :(得分:1)

import io.restassured.specification.FilterableRequestSpecification;
import io.restassured.specification.FilterableResponseSpecification;
// ...

尝试过此方法,直到我开始使用RestAssured并行运行测试为止,它都可以正常工作。该报告偶尔会破坏测试运行,因此我不得不将其注释掉,而且我现在也对另一种如何记录请求/响应数据的方式感兴趣。

答案 2 :(得分:0)

不熟悉黄瓜,但如果它有一些东西可以捕获报告的输出,你可以在REST Assured中创建一个过滤器:

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;

    }
}