能否修改Katalon Studio测试用例执行后的默认提示消息?
自定义Katalon Studio测试结果消息的实用方案
当然可以!Katalon Studio提供了多种灵活的方式来替换默认的技术化测试结果消息,让非技术团队(比如你的客服人员)能轻松读懂测试结果。下面是几个最常用的方法:
1. 直接给断言添加友好失败消息
默认的断言方法(比如WebUI.verifyElementPresent)会输出一堆技术细节,你可以直接在调用断言时指定自定义失败提示,把它改成业务场景化的表述。
举个例子,原来的代码:
WebUI.verifyElementPresent(findTestObject('Page_Home/btn_Submit'), 10)
改成带自定义消息的版本:
WebUI.verifyElementPresent(findTestObject('Page_Home/btn_Submit'), 10, FailureHandling.STOP_ON_FAILURE, "提交按钮未找到,无法继续完成订单提交流程")
这样测试失败时,就会显示你写的这条易懂的消息,而非默认的栈追踪信息。
2. 用自定义日志+手动标记失败
如果需要更灵活的控制,可以通过try-catch捕获异常,然后手动输出友好日志并标记测试失败,完全跳过默认的技术错误信息。
示例代码:
try { WebUI.click(findTestObject('Page_Checkout/btn_ConfirmPayment')) KeywordUtil.logInfo("已成功点击付款确认按钮") } catch (Exception e) { // 只输出友好提示,不打印技术栈 KeywordUtil.markFailed("付款确认按钮点击失败,请检查页面是否加载完成或按钮是否正常显示") }
3. 用Test Listener全局统一替换消息
如果不想逐个修改测试用例,可以用Test Listener来全局拦截测试失败事件,自动把技术术语替换成友好表述。
步骤如下:
- 右键项目里的
Test Listeners文件夹,选择New > Test Listener - 重写
onTestFailure方法,添加消息替换逻辑:
import com.kms.katalon.core.annotation.AfterTestCase import com.kms.katalon.core.context.TestCaseContext class CustomResultFormatter { @AfterTestCase def afterTestCase(TestCaseContext testCaseContext) { if (testCaseContext.getTestCaseStatus() == 'FAILED') { def originalMsg = testCaseContext.getTestCaseStatusMessage() // 批量替换常见技术术语为友好表述 def friendlyMsg = originalMsg.replaceAll("element not found", "页面元素未找到") .replaceAll("timeout exceeded", "页面加载超时") .replaceAll("Assertion failed", "测试未通过:") // 更新测试结果消息 testCaseContext.setTestCaseStatusMessage(friendlyMsg) } } }
这样所有测试用例的失败消息都会自动被替换,不用逐个修改脚本。
4. 定制HTML测试报告
如果需要在最终输出的测试报告里也隐藏技术细节,可以自定义Katalon的HTML报告模板:
- 找到Katalon安装目录下的
templates/report/html文件夹 - 复制一份默认模板,修改其中的结果展示部分(比如隐藏栈追踪代码,只保留自定义友好消息)
- 在项目设置的
Report > HTML Report里选择你修改后的模板
内容的提问来源于stack exchange,提问作者Mate Mrše
相关产品推荐
相关产品推荐

