Java 在报告中提供请求和响应主体
我用的是爪哇黄瓜,请放心。目前,我尝试创建一个报告,在该报告中,我不会为报告中的每个请求提供完整的请求和响应信息。因此,问题是: 是否可以在变量中保存所有请求和响应信息?或者使用另一种方法在报告中获取此数据Java 在报告中提供请求和响应主体,java,cucumber,rest-assured,cucumber-java,Java,Cucumber,Rest Assured,Cucumber Java,我用的是爪哇黄瓜,请放心。目前,我尝试创建一个报告,在该报告中,我不会为报告中的每个请求提供完整的请求和响应信息。因此,问题是: 是否可以在变量中保存所有请求和响应信息?或者使用另一种方法在报告中获取此数据 另外,我知道如何获取响应(extract().response())或在控制台日志(log().all())中打印所有请求信息。我已经设置了maven cucumber reporting,它生成html报告,但没有所有请求和响应API数据 不熟悉cucumber,但如果它需要捕获报告的输出
另外,我知道如何获取响应(
extract().response()
)或在控制台日志(log().all()
)中打印所有请求信息。我已经设置了maven cucumber reporting,它生成html报告,但没有所有请求和响应API数据 不熟悉cucumber,但如果它需要捕获报告的输出,您可以在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;
}
}
<>如果您可以考虑从放心的切换,空手道具有您正在寻找的详细能力,其中详细的HTTP请求和响应日志出现在黄瓜HTML报告中。这是一本书 你可以找到空手道和“放心”的详细比较 免责声明:我是开发人员
import io.restassured.specification.FilterableRequestSpecification;
import io.restassured.specification.FilterableResponseSpecification;
// ...
我已经试过了,在我开始并行运行测试之前,它工作得很好。该报告偶尔会中断测试运行,因此我不得不对其进行注释,现在我还对另一种方法感兴趣,即如何记录请求/响应数据。您可以使用Scenario的write()方法并传入响应请求文本。在Before钩子中,您可以传入Scenario对象并将其存储在step definition类的实例变量中。欢迎使用stackoverflow。请提供您的具体问题代码。这证明了你做了多大的努力,它将帮助其他成员更好地理解你的问题,同时,你将为他们提供你的问题的背景。请检查这些链接:和