要在Allure报告中隐藏敏感数据,可以使用Allure提供的扩展功能来处理。以下是一个示例代码,演示了如何隐藏敏感数据并生成Allure报告。
import io.qameta.allure.Allure;
import io.qameta.allure.model.Label;
import io.qameta.allure.model.Link;
import io.qameta.allure.model.Parameter;
import io.qameta.allure.model.TestResult;
import io.qameta.allure.util.ResultsUtils;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.List;
import java.util.stream.Collectors;
public class SensitiveDataUtils {
public static void hideSensitiveData(TestResult testResult) {
List parameters = testResult.getParameters();
if (parameters != null) {
List updatedParameters = parameters.stream()
.map(parameter -> {
if (parameter.getName().equals("password")) {
String encryptedValue = encrypt(parameter.getValue());
return new Parameter(parameter.getName(), encryptedValue);
} else {
return parameter;
}
})
.collect(Collectors.toList());
testResult.setParameters(updatedParameters);
}
List links = testResult.getLinks();
if (links != null) {
List updatedLinks = links.stream()
.map(link -> {
if (link.getName().equals("Sensitive Link")) {
Link updatedLink = new Link();
updatedLink.setName(link.getName());
updatedLink.setUrl(link.getUrl());
return updatedLink;
} else {
return link;
}
})
.collect(Collectors.toList());
testResult.setLinks(updatedLinks);
}
List
SensitiveDataUtils.hideSensitiveData(testResult)
方法,其中testResult
是当前测试方法的TestResult
对象。例如:@Test
public void testLogin() {
// Perform login test
// Get the TestResult object
TestResult testResult = ResultsUtils.getTestResultByTitle("testLogin");
// Hide sensitive data in the Allure report
SensitiveDataUtils.hideSensitiveData(testResult);
}
请注意,这只是一个简单的示例,用于演示如何隐藏敏感数据。实际上,你可能需要根据你的需求和具体情况来修改代码。