有很多方法可以做到这一点,从简单的 system.out.println() 调用,使用你最喜欢的 java 库将一些 scala 代码保存到文件中,但取决于你需要响应体的内容,最简单的可能是让 logback.xml 配置为您完成。
如果您已经从 gatling maven 原型构建了您的项目,它将已经包含一个 logback.xml,其中包含一些注释掉的代码行,其中包含将整个 http 请求/响应打印到控制台的附加程序,请在这些代码中添加注释。如果您只需要查看响应主体来开发或调试模拟,则启用其中一组可能正是您所需要的:
<!--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" />-->
如果要将响应正文打印到文件中,也可以使用 logback-file。我更喜欢使用以下简单配置,因为它会将所有失败的请求/响应日志打印到与存储加特林模拟结果相同的目录中的文件中,这有助于更详细地查看您在模拟中遇到的错误类型一个专用文件。
对于加特林 2.3:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
</encoder>
<immediateFlush>false</immediateFlush>
</appender>
<appender name="ERROR" class="ch.qos.logback.core.FileAppender">
<file>target/gatling/simulation-errors.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
</encoder>
<immediateFlush>false</immediateFlush>
<param name="Append" value="false" />
</appender>
<logger name="io.gatling.http.ahc" level="DEBUG" additivity="false">
<appender-ref ref="ERROR"/>
</logger>
<logger name="io.gatling.http.response" level="DEBUG" additivity="false">
<appender-ref ref="ERROR"/>
</logger>
<root level="WARN">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
对于 Gatling 3.0,上面的两个记录器必须替换为以下附加程序:
<logger name="io.gatling.http.engine.response" level="DEBUG" additivity="false">
<appender-ref ref="ERROR"/>
</logger>