如何在Report Builder中打印日志

可调用srw包的message方法
例子: srw .message(1,'请输入对应的工单,销售订单或者装配件');
好的,以下是一个示例的Groovy脚本,实现了你的要求。请注意,需要在Katalon Studio安装并引入java-diff-utils和ReportGenerator库。 ``` import difflib.* import com.kms.katalon.core.reporting.ReportUtil import com.kms.katalon.core.util.KeywordUtil // 定义对比文件夹的路径 def folder1 = new File("path/to/folder1") def folder2 = new File("path/to/folder2") // 定义ReportGenerator生成HTML报告的路径 def reportPath = "path/to/report.html" // 定义保存比较结果的列表 def diffList = [] // 定义一个函数,用于比较两个文件并保存比较结果到diffList def compareFiles(file1, file2) { def lines1 = file1.readLines() def lines2 = file2.readLines() def patch = DiffUtils.diff(lines1, lines2) if (!patch.getDeltas().isEmpty()) { def diffLines = [] patch.getDeltas().each { delta -> def lines = delta.getRevised().getLines() def lineNum = delta.getRevised().getPosition() + 1 lines.each { line -> diffLines << [lineNum, line] lineNum++ } } diffList.add([file1.getName(), file2.getName(), diffLines]) } } // 遍历文件夹1的所有文件,并与文件夹2同名文件比较 folder1.eachFile { file1 -> def file2 = new File(folder2, file1.getName()) if (file2.exists()) { compareFiles(file1, file2) } else { diffList.add([file1.getName(), "", "Only in folder1"]) } } // 遍历文件夹2的所有文件,并查找文件夹1不存在的文件 folder2.eachFile { file2 -> def file1 = new File(folder1, file2.getName()) if (!file1.exists()) { diffList.add(["", file2.getName(), "Only in folder2"]) } } // 生成HTML报告 def reportBuilder = new StringBuilder() reportBuilder.append("<html><body>") diffList.each { diff -> reportBuilder.append("<h2>File: ${diff[0]} / ${diff[1]}</h2>") if (diff[2].startsWith("Only")) { reportBuilder.append("<p>${diff[2]}</p>") } else { reportBuilder.append("<table><tr><th>Line Number</th><th>Content</th></tr>") diff[2].each { line -> def lineNum = line[0] def content = line[1] if (content.contains(',')) { content = content.tokenize(',') reportBuilder.append("<tr><td>${lineNum}</td>") content.each { field -> if (field.contains(':')) { def fieldName = field.tokenize(':')[0] def fieldValue = field.tokenize(':')[1] reportBuilder.append("<td>${fieldName}: <span style=\"background-color: yellow;\">${fieldValue}</span></td>") } else { reportBuilder.append("<td><span style=\"background-color: yellow;\">${field}</span></td>") } } reportBuilder.append("</tr>") } else { reportBuilder.append("<tr><td>${lineNum}</td><td><span style=\"background-color: yellow;\">${content}</span></td></tr>") } } reportBuilder.append("</table>") } } reportBuilder.append("</body></html>") ReportUtil.generateReport(reportBuilder.toString(), reportPath) // 打印日志,告知报告生成的路径 KeywordUtil.logInfo("HTML report generated at: ${reportPath}") ``` 在以上脚本,我们首先定义了要比较的两个文件夹的路径,以及生成报告的路径。然后,我们定义了一个函数`compareFiles`,用于比较两个文件。该函数使用了java-diff-utils库的`DiffUtils.diff()`函数来比较文件内容,并将差异数据保存到一个列表。最后,我们遍历文件夹的所有文件,调用`compareFiles`函数比较同名文件,并将比较结果保存到`diffList`列表。如果一个文件只在一个文件夹存在,则直接将信息输出到`diffList`。最后,我们使用ReportGenerator库来生成HTML报告,并将报告保存到指定路径。 在HTML报告,我们将差异数据高亮显示出来,具体实现方法是:首先将差异数据按逗号分隔,并保存到一个列表。然后,我们遍历列表的每个字段,如果字段包含冒号,则表明这是一个键值对,需要将键和值分开,并将值高亮显示。如果字段不包含冒号,则直接将整个字段高亮显示。最后,我们将所有差异数据以表格的形式展示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值