如何使用库 CurlRestAssuredConfigFactory 存储由 curl 生成的日志

How to store logs generated by curl , using the library CurlRestAssuredConfigFactory

我正在使用库 CurlRestAssuredConfigFactory ,并使用以下代码

   private final Options options = Options.builder().useLogLevel(Level.INFO).build();
   private final RestAssuredConfig config = CurlRestAssuredConfigFactory.createConfig(options);

RequestSpecification spec = getRequestSpecification(RestAssured.given());
    return spec.config(config).when().get(this.url).then().extract().response();

执行最后一段代码后,生成带有完整 URI 的 curl 日志,headers,我希望存储这些日志并将它们传递到报告中。 请帮忙

如果您使用 Allure 进行报告,我建议您使用 allure-rest-assured 库来存储和查看直接附加到报告中相应测试的日志.

https://mvnrepository.com/artifact/io.qameta.allure/allure-rest-assured/2.13.2

只需将此依赖项添加到您的项目中,然后在 ReqestSpecification 的第 1 行中用作过滤器:

  private static RequestSpecification getReqSpec() {
    return new RequestSpecBuilder()
      .addFilter(new AllureRestAssured())
      .setBaseUri(BASE_URI)
      .addHeader("Authorization", "Bearer " + getAuthToken())
      .setAccept(ContentType.JSON)
      .setContentType(ContentType.JSON)
      .build();
  }

然后:

  • 运行 你的测试
  • 生成并打开 Allure 报告
  • 查看所需测试的附件
https://github.com/dzieciou/curl-logger#custom-curl-handling

final List<String> curls = new ArrayList<>();
CurlHandler handler = new CurlHandler() {
  @Override
  public void handle(String curl, Options options) {
    curls.add(curl);
  }
};
List<CurlHandler> handlers = Arrays.asList(handler);
CurlRestAssuredConfigFactory.createConfig(handlers)