java-8 - 使用 Serenity BDD 运行时,在放心中看不到响应日志
问题描述
在我的项目中,我有以下带有 serenity-cucumber6 的版本并尝试查看 api 日志
<serenity.plugin.version>2.4.34</serenity.plugin.version>
<serenity.version>2.4.34</serenity.version>
<serenity.cucumber.version>2.4.34</serenity.cucumber.version>
<cucumber.version>6.10.4</cucumber.version>
<maven-plugin.version>3.0.0-M5</maven-plugin.version>
<java.version>1.8</java.version>
日志配置文件
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>admin.log</file>
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg..................%n
</pattern>
</encoder>
</appender>
<logger name="root" level="DEBUG"/>
<logger name="net.serenitybdd" level="DEBUG"/>
<logger name="net.thucydides" level="DEBUG"/>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE" />
</root>
</configuration>
这些是为上述宁静版本下载的放心依赖项。
代码:
public Response getRequest(String URL, RequestSpecification spec) { return SerenityRest.given() .spec(spec) .contentType("application/json") .header("Content-Type", "application/json") .get(URL ).then().extract().response();
}
我可以看到请求日志(url、标头等)和响应代码,但看不到响应负载。
以下是日志输出文件:
14:48:36.512 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - LOADING LOCAL PROPERTIES FROM C:\Repo\my-microservice\serenity.properties ..................
14:48:36.527 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - jira.project=ABCD..................
14:48:36.527 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - serenity.outputDirectory=../target/site/serenity..................
14:48:36.527 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - serenity.project.name="My Microservice - Test Result"..................
14:48:36.527 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - jira.url=https://jira.service.xxx..................
14:48:36.533 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - LOADING LOCAL PROPERTIES FROM C:\Repo\my-microservice\serenity.properties ..................
14:48:36.535 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - jira.project=ABCD..................
14:48:36.535 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - serenity.outputDirectory=../target/site/serenity..................
14:48:36.535 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - serenity.project.name="My Microservice - Test Result"..................
14:48:36.535 [main] DEBUG n.t.c.u.PropertiesFileLocalPreferences - jira.url=https://jira.service.xxx..................
14:48:39.106 [main] DEBUG o.a.h.i.c.BasicClientConnectionManager - Get connection for route {}->http://localhost:8095..................
14:48:39.120 [main] DEBUG o.a.h.i.c.DefaultClientConnectionOperator - Connecting to localhost:8095..................
14:48:39.140 [main] DEBUG o.a.h.c.protocol.RequestAddCookies - CookieSpec selected: ignoreCookies..................
14:48:39.141 [main] DEBUG o.a.h.c.protocol.RequestAuthCache - Auth cache not set in the context..................
14:48:39.142 [main] DEBUG o.a.h.c.p.RequestProxyAuthentication - Proxy auth state: UNCHALLENGED..................
14:48:39.142 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Attempt 1 to execute request..................
14:48:39.142 [main] DEBUG o.a.h.i.conn.DefaultClientConnection - Sending request: GET /m/health HTTP/1.1..................
14:48:39.143 [main] DEBUG org.apache.http.wire - >> "GET /m/health HTTP/1.1[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "Content-Type: application/json; charset=UTF-8[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "Authorization: Bearer null[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "Accept: */*[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "Content-Length: 0[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "Host: localhost:8095[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "Connection: Keep-Alive[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_281)[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "Accept-Encoding: gzip,deflate[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.wire - >> "[\r][\n]"..................
14:48:39.144 [main] DEBUG org.apache.http.headers - >> GET /m/health HTTP/1.1..................
14:48:39.144 [main] DEBUG org.apache.http.headers - >> Content-Type: application/json; charset=UTF-8..................
14:48:39.144 [main] DEBUG org.apache.http.headers - >> Authorization: Bearer null..................
14:48:39.144 [main] DEBUG org.apache.http.headers - >> Accept: */*..................
14:48:39.144 [main] DEBUG org.apache.http.headers - >> Content-Length: 0..................
14:48:39.144 [main] DEBUG org.apache.http.headers - >> Host: localhost:8095..................
14:48:39.144 [main] DEBUG org.apache.http.headers - >> Connection: Keep-Alive..................
14:48:39.145 [main] DEBUG org.apache.http.headers - >> User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_281)..................
14:48:39.145 [main] DEBUG org.apache.http.headers - >> Accept-Encoding: gzip,deflate..................
14:48:39.175 [main] DEBUG org.apache.http.wire - << "HTTP/1.1 200 [\r][\n]"..................
14:48:39.176 [main] DEBUG org.apache.http.wire - << "X-Application-Context: my-payments:it:8095[\r][\n]"..................
14:48:39.177 [main] DEBUG org.apache.http.wire - << "Content-Type: application/vnd.spring-boot.actuator.v1+json;charset=UTF-8[\r][\n]"..................
14:48:39.177 [main] DEBUG org.apache.http.wire - << "Transfer-Encoding: chunked[\r][\n]"..................
14:48:39.177 [main] DEBUG org.apache.http.wire - << "Date: Tue, 15 Jun 2021 04:48:39 GMT[\r][\n]"..................
14:48:39.177 [main] DEBUG org.apache.http.wire - << "[\r][\n]"..................
14:48:39.177 [main] DEBUG o.a.h.i.conn.DefaultClientConnection - Receiving response: HTTP/1.1 200 ..................
14:48:39.177 [main] DEBUG org.apache.http.headers - << HTTP/1.1 200 ..................
14:48:39.178 [main] DEBUG org.apache.http.headers - << X-Application-Context: my-payments:it:8095..................
14:48:39.178 [main] DEBUG org.apache.http.headers - << Content-Type: application/vnd.spring-boot.actuator.v1+json;charset=UTF-8..................
14:48:39.178 [main] DEBUG org.apache.http.headers - << Transfer-Encoding: chunked..................
14:48:39.178 [main] DEBUG org.apache.http.headers - << Date: Tue, 15 Jun 2021 04:48:39 GMT..................
14:48:39.183 [main] DEBUG o.a.h.impl.client.DefaultHttpClient - Connection can be kept alive indefinitely..................
14:48:39.199 [main] DEBUG i.r.i.RequestSpecificationImpl$RestAssuredHttpBuilder - Parsing response as: application/vnd.spring-boot.actuator.v1+json;charset=UTF-8..................
14:48:39.199 [main] DEBUG i.r.i.RequestSpecificationImpl$RestAssuredHttpBuilder - Parsed data to instance of: class org.apache.http.conn.EofSensorInputStream..................
14:48:39.211 [main] INFO n.s.r.d.r.RequestSpecificationDecorated - No BaseStepListener, GET m/health not registered.........
此外,据我了解,Serenity
这里没有专门记录其余调用相关的日志,我们在上面看到的内容来自rest-assured http-client
.
所以问题是如果需要在日志中获取响应负载,是否有现有的能力rest-assured
来做到这一点?
解决方案
推荐阅读
- javascript - 获取数组值的总和时如何修复 [Object object] 响应?
- javascript - Gulp 自定义函数返回并行不会做任何事情
- java - CompassLayer 未出现在 WorldWind 中
- reactjs - Webpack-dev-server 和 react-i18next XHR 后端
- javascript - React Native CLI 项目中的箭头函数逻辑
- google-analytics - 使用 Google Analytics Reporting API v4 自定义维度和日期范围
- java - 3rd 方系统的 Java 并行调用
- c++ - 不能用
c++中的库 - javascript - 将带有 HTML 标记的输出从 AngularJs 传递到 HTML
- qt - Ubuntu 上的 QT5 中没有定义的配置