自动化测试工具Katalon 之核心概念全解析
·
上一篇对Katalon进行了快速介绍: 自动化测试工具Katalon 之快速介绍和示例 , 本篇来看看Katalon 中的一些核心概念。

1. Test Case(测试用例)
- 定义:自动化测试的最小执行单位,包含一系列操作步骤
- 组成:
- 手动视图:图形化操作界面(拖拽式)
- 脚本视图:Groovy 脚本编写(推荐高级用户)

- 特点:
- 支持数据驱动(参数化)
- 可添加验证点(Checkpoints)
- 支持关键字调用
- 示例结构:
WebUI.openBrowser('https://example.com')
WebUI.click(findTestObject('Object Repository/btn_Login'))
WebUI.setText(findTestObject('Object Repository/input_Username'), 'testuser')
WebUI.verifyElementPresent(findTestObject('Object Repository/welcome_message'))
2. Test Suite(测试套件)
- 定义:测试用例的集合容器,用于批量执行
- 类型:
- 静态测试套件:手动添加测试用例
- 动态测试套件:基于标签/条件自动收集用例
- 关键功能:
- 设置执行顺序
- 配置失败重试机制
- 绑定数据文件
- 定义环境变量
- 执行方式:
- IDE 内执行
- 命令行执行:
katalon -runMode=console -testSuitePath="Test Suites/MySuite"
3. Object Repository(对象仓库)
- 定义:UI 元素的中央存储库
- 对象类型:
- Web 元素:按钮、输入框等
- 移动元素:Android/iOS 控件
- API 端点:REST 请求
- 管理功能:
- 智能定位器生成(XPath/CSS)
- 元素截图捕获
- 分层结构管理
- 最佳实践:
/* 推荐使用相对定位 */
//input[@id='username']
.login-button
4. Data Files(数据文件)
- 作用:数据驱动测试的源文件
- 支持格式:
| 格式 | 特点 | 适用场景 |
|---|---|---|
| Excel | 多sheet支持 | 复杂数据结构 |
| CSV | 轻量级 | 大数据量 |
| Internal | Katalon 内置表格 | 快速原型 |
| Database | JDBC 连接 | 实时数据 |
- 使用示例:
def data = findTestData("LoginData")
for (int i = 0; i < data.getRowNumbers(); i++) {
WebUI.setText(findTestObject('input_Username'), data.getValue("Username", i))
// ...
}
5. Checkpoints(检查点/验证点)
- 目的:验证应用状态是否符合预期
- 类型:
- UI 验证:
WebUI.verifyElementText(findTestObject('title'), "Welcome")
- **API 响应验证**:
WS.verifyResponseStatusCode(response, 200)
- **数据库验证**:
def result = SQL.execute('SELECT * FROM users')
KeywordUtil.verifyEqual(result.size(), 5)
- **自定义脚本验证**:
assert System.getProperty("os.name").contains("Windows")
6. Keywords(关键字)
- 定义:可重用的测试逻辑单元
- 分类:
| 类型 | 来源 | 示例 |
|---|---|---|
| 内置关键字 | Katalon 预置 | WebUI.click(), WS.sendRequest() |
| 自定义关键字 | 用户创建 | loginToSystem(), generateTestData() |
- 创建示例:
@Keyword
def login(String user, String pass) {
WebUI.setText(findTestObject('input_User'), user)
WebUI.setEncryptedText(findTestObject('input_Password'), pass)
WebUI.click(findTestObject('btn_Login'))
}
7. Test Listeners(测试监听器)
- 作用:监控测试生命周期事件
- 关键事件:
@BeforeTestSuite
void beforeTestSuite(TestSuiteContext context) {
// 测试套件开始前执行
}
@AfterTestCase
void afterTestCase(TestCaseContext context) {
if(context.status == TestCaseStatus.FAILED) {
// 失败时截图
WebUI.takeScreenshot("screenshots/fail_${context.testCaseId}.png")
}
}
@BeforeTestExecution
void beforeTestExecution(TestCaseContext context) {
// 每个测试用例执行前
}
8. Reports(报告系统)
- 报告类型:
- 默认 HTML 报告:
- 执行统计
- 步骤级日志
- 失败截图
- 增强报告:
- Allure 报告(需插件)
- JUnit 报告(CI 集成)
- 自定义报告(通过监听器生成)
- 默认 HTML 报告:
- 配置示例:
// 在监听器中发送自定义报告
@AfterTestSuite
void sendEmailReport(TestSuiteContext context) {
def reportFile = new File("Reports/${context.testSuiteId}.html")
EmailUtil.send(reportFile, "team@example.com")
}
9. Include(包含机制)
- 作用:实现测试逻辑复用
- 两种方式:
- 调用测试用例:
WebUI.callTestCase(
findTestCase('Common/Login'),
[('username') : 'admin', ('password') : '123456'],
FailureHandling.STOP_ON_FAILURE
)
2. **包含脚本文件**:
// 在Scripts目录创建Utils.groovy
class Utils {
static String generateEmail() {
return "user${System.currentTimeMillis()}@test.com"
}
}
10. Plugins(插件系统)
- 功能:扩展 Katalon 核心能力
- 插件类型:
| 插件类别 | 示例插件 | 功能 |
|---|---|---|
| 报告增强 | Allure Report | 生成交互式报告 |
| 集成扩展 | Jira Integration | 自动提交缺陷 |
| 工具增强 | Mobile Utilities | 高级移动测试功能 |
| 自定义 | Katalon SDK | 开发私有插件 |
- 管理:
- 通过 Plugins > Marketplace 安装
- 自定义插件存放路径:
plugins目录
架构关系图


最佳实践组合示例
// 测试用例示例:结合多个组件
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVar
// 从数据文件获取凭证
def creds = findTestData("Credentials").getObjectValue("Admin", 1)
// 调用包含的登录关键字
CustomKeywords.'com.utils.Auth.login'(creds.username, creds.password)
// 验证主界面加载
WebUI.verifyElementPresent(findTestObject('Dashboard/welcome_header'), 10)
// API检查点(混合测试示例)
def apiResponse = CustomKeywords.'com.utils.API.getUserProfile'()
KeywordUtil.verifyEqual(apiResponse.status, "ACTIVE")
// 失败时通过监听器自动截图(已配置)
学习路径建议
- 基础:Test Case → Object Repository → Checkpoints
- 进阶:Keywords → Data Files → Test Suite
- 高级:Test Listeners → Plugins → 自定义报告
- 架构:CI/CD 集成 → 分布式执行 → 自定义插件开发
更多推荐
所有评论(0)