Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以字符串形式获取放心的请求规范_Java_Rest Assured_Web Api Testing - Fatal编程技术网

Java 以字符串形式获取放心的请求规范

Java 以字符串形式获取放心的请求规范,java,rest-assured,web-api-testing,Java,Rest Assured,Web Api Testing,我试图以字符串形式获取所有请求详细信息(请求url、代理、头、正文等),因为我需要将其重定向到一个logback日志文件。我声明了一个公共基类,其中声明了请求变量(io.restasured.specification.RequestSpecification) 我在stepDef类的默认构造函数中使用这个基类。每个stepDef类都有其唯一的log实例。我在这里尝试过使用这些解决方案,但没有成功 我尝试了以下解决方案: RestAssured.config=RestAssured.config

我试图以字符串形式获取所有请求详细信息(请求url、代理、头、正文等),因为我需要将其重定向到一个logback日志文件。我声明了一个公共基类,其中声明了请求变量(io.restasured.specification.RequestSpecification)

我在stepDef类的默认构造函数中使用这个基类。每个stepDef类都有其唯一的log实例。我在这里尝试过使用这些解决方案,但没有成功

我尝试了以下解决方案:

  • RestAssured.config=RestAssured.config().logConfig(新的logConfig(baseClass.loggerPrintStream.getPrintStream(),false))

  • baseClass.request.config(RestAssured.config().logConfig(新logConfig(baseClass.loggerPrintStream.getPrintStream(),true)).log().all()

  • baseClass.request.filter(新的RequestLoggingFilter(baseClass.loggerPrintStream.getPrintStream())


  • 以上这些似乎都没能帮到我。我只想将完整的请求规范(baseClass.request)作为字符串获取,这样我就可以将字符串写入日志文件,并提供更多详细信息。

    如果您有
    RequestSpecification
    ,您可以使用
    queryablerequestspecification
    从请求中获取数据,如下所示:

            RequestSpecification requestSpecification = given()
                .auth()
                    .preemptive()
                        .basic("username", "password")
                .contentType("application/json")
                .header("x-api-key", "some api key");
            QueryableRequestSpecification queryable = SpecificationQuerier.query(requestSpecification);
            System.out.println("Header is: " + queryable.getHeaders().get("x-api-key"));
    
    您可以将规范保存到文件中,而不是将其打印到控制台