Gatling 2 - Logback 调试不输出 JSON 正文 - 内容类型 Application/Json

Gatling 2 - Logback Debug Not Outputting JSON Body - Content Type Application/Json

我正在使用 Gatling 2,下面是我的 logback.xml 配置。

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
        <immediateFlush>false</immediateFlush>
    </encoder>
</appender>

 <!--Uncomment for logging ALL HTTP request and responses-->
    <logger name="io.gatling.http.ahc" level="TRACE" />
<!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
<!--    <logger name="io.gatling.http.ahc" level="DEBUG" /> -->

<root level="WARN">
    <appender-ref ref="CONSOLE" />
</root>

在控制台查看日志时我看到

Content-Length: [1381]
Keep-Alive: [timeout=5, max=98]
Connection: [Keep-Alive]
Content-Type: [application/json]

但是,我在调试信息中没有看到任何 JSON 正文。我破解了我的代码并将 Content-Typeapplication/json 更改为 text/html 并收到以下内容:

Connection: [Keep-Alive]
Content-Type: [text/html]
Content-Encoding: [gzip]
Content-Length: [1381]

body=
{"items":[data_here]}}

有什么方法可以配置 gatling 或 logback 来显示这个 JSON 正文?

好的。加特林很奇怪。

它会自动记录 text/html 的正文,但不会记录 application/json 的正文,除非它认为有理由记录它!

为了输出 json 主体,我将 .check(bodyString.exists) 添加到我的 http 请求中,它在日志文件中正确显示。

编辑:

Properly fixed in this commit

在我的 logback.xml

中添加了额外的行
<!-- Uncomment for logging ALL HTTP request and responses -->
        <logger name="io.gatling.http.ahc" level="TRACE" />
        <logger name="io.gatling.http.response" level="TRACE" />
<!-- Uncomment for logging ONLY FAILED HTTP request and responses -->
<!--    <logger name="io.gatling.http.ahc" level="DEBUG" /> -->
<!--    <logger name="io.gatling.http.response" level="DEBUG" /> -->

作为初学者,有些东西不能像您期望的那样工作,并不一定意味着它很奇怪。这种行为可能有充分的理由。

这里是为了让块不保存在内存中,在不需要时组装和解码。 Reading the documentation 通常有帮助。

然后,您还可以在 "io.gatling.http" 记录器上启用 DEBUG 日志记录。 为了记录,我填写了一个 issue 来改进它。