No, you can’t.
The program which compiles the built-in reports (both HTML and PDF) is not customizable at all. You are wasting your time. I would recommend you to abandon your idea.
I would explain by code what I stated above. The com.kms.katalon.core.reporting.ReportUtil
is the program that compiles the reports. You can find the full souce code in the <Katalon Studio installed folder>/Contents/Eclipse/configuration/resources/source/com.kms.katalon.core/com.kms.katalon.core-sources.jar
file.
Let me quote a method:
public class ReportUtil {
....
private static StringBuilder generateVars(List<String> strings, TestSuiteLogRecord suiteLogEntity,
StringBuilder model) throws IOException {
StringBuilder sb = new StringBuilder();
List<String> lines = IOUtils
.readLines(ResourceLoader.class.getResourceAsStream(ResourceLoader.HTML_TEMPLATE_VARS));
for (String line : lines) {
if (line.equals(ResourceLoader.HTML_TEMPLATE_SUITE_MODEL_TOKEN)) {
sb.append(model);
} else if (line.equals(ResourceLoader.HTML_TEMPLATE_STRINGS_CONSTANT_TOKEN)) {
appendReportConstantValues(strings, sb);
} else if (line.equals(ResourceLoader.HTML_TEMPLATE_EXEC_ENV_TOKEN)) {
StringBuilder envInfoSb = new StringBuilder();
envInfoSb.append("{");
envInfoSb.append(String.format("\"host\" : \"%s\", ", suiteLogEntity.getHostName()));
envInfoSb.append(String.format("\"os\" : \"%s\", ", suiteLogEntity.getOs()));
envInfoSb.append(String.format("\"" + StringConstants.APP_VERSION + "\" : \"%s\", ",
suiteLogEntity.getAppVersion()));
if (suiteLogEntity.getBrowser() != null && !suiteLogEntity.getBrowser().equals("")) {
if (suiteLogEntity.getRunData().containsKey("browser")) {
envInfoSb.append(
String.format("\"browser\" : \"%s\",", suiteLogEntity.getRunData().get("browser")));
} else {
envInfoSb.append(String.format("\"browser\" : \"%s\",", suiteLogEntity.getBrowser()));
}
}
if (suiteLogEntity.getDeviceName() != null && !suiteLogEntity.getDeviceName().equals("")) {
envInfoSb.append(String.format("\"deviceName\" : \"%s\",", suiteLogEntity.getDeviceName()));
}
if (suiteLogEntity.getDeviceName() != null && !suiteLogEntity.getDeviceName().equals("")) {
envInfoSb.append(String.format("\"devicePlatform\" : \"%s\",", suiteLogEntity.getDevicePlatform()));
}
envInfoSb.append("\"\" : \"\"");
envInfoSb.append("}");
sb.append(envInfoSb);
} else {
sb.append(line);
sb.append("\n");
}
}
return sb;
}
...
As you see, the content of “the Execution environment section of the report” is hard-coded in the ReportUtil
class.
You would need to “change” the source code of the ReportUtils
class. But in fact you can’t do it.