我们有一个 Java TAF,用于记录测试运行。我们使用 Allure 和 Report Portal(两者)。对于 API 调用,我们使用 RestAssured。
有必要隐藏敏感数据。在请求中,我们不应记录标头“授权”。
这是当前的解决方案:
public static RequestSpecification prepareRequest() {
return given()
.filters(
new ReportPortalRestAssuredLoggingFilter(42, LogLevel.INFO)
.setBodyTypeMap(BODY_TYPE_MAP)
.setContentPrettiers(MY_PRETTIERS),
new AllureRestAssured())
.config(RestAssuredConfig.config().logConfig(LogConfig.logConfig().blacklistHeader("Authorization")));
}
它帮助我们屏蔽 Allure 报告中的“授权”标题。但它们仍然存在于报告门户中。请告知如何从日志中屏蔽/隐藏/删除标题“授权”(或者,如果报告门户不允许隐藏,则可以从日志中删除所有标题)。
其他发现:
在文档(https://github.com/reportportal/logger-java-rest-assured/blob/develop/CHANGELOG.md)中,他们引入了方法 ReportPortalRestAssuredLoggingFilter.addRequestFilter() 用于跳过某些请求日志记录。但我不明白如何用它准备代码。请帮忙解决问题。
Report Portal 提供了一个解决方案:在
ReportPortalRestAssuredLoggingFilter
的实例化中,我们可以使用 SanitizingHttpHeaderConverter.INSTANCE
(随意查看实现,您可以用自己的变体替换它)
public static RequestSpecification prepareRequest() {
return given()
.filters(
new ReportPortalRestAssuredLoggingFilter(42, LogLevel.INFO,
SanitizingHttpHeaderConverter.INSTANCE,
DefaultHttpHeaderConverter.INSTANCE)
.setBodyTypeMap(BODY_TYPE_MAP)
.setContentPrettiers(MY_PRETTIERS),
new AllureRestAssured())
.config(RestAssuredConfig.config().logConfig(LogConfig.logConfig().blacklistHeader("Authorization")));
}
对于cookie也可以做同样的事情,请参阅官方自述文件中的详细信息:https://github.com/reportportal/logger-java-rest-assured?tab=readme-ov-file#sanitize-request--response-数据