前端自动化测试神器-Katalon进阶用法
前言
上一篇介绍了Katalon
的基础用法,本篇继续介绍一些进阶的用法。
Keyword 和 Method Call Statement
Keyword
Keyword
就是自定义方法,该方法在当前项目下公共可用(当然,也可以将文件考到别的项目中进行复用),而Method Call Statement
则更多的是用在局部定义的方法的调用上。
在项目的Keywords
目录下,创建my.test.kits
包,并创建TestUtilities.groovy
类,其代码为:
public class TestUtilities {
@Keyword
def CheckItemExists(TestObject obj) {
return obj != null;
}
}
调用代码如下:
WebUI.openBrowser('https://news.baidu.com')
if (CustomKeywords.'my.test.kits.TestUtilities.CheckItemExists'(findTestObject('Object Repository/testKeywords/Page_/input_tn'))) {
WebUI.check(findTestObject('Object Repository/testKeywords/Page_/input_tn'))
WebUI.setText(findTestObject('Object Repository/testKeywords/Page_/input_word'), '新闻标题')
} else {
WebUI.setText(findTestObject('Object Repository/testKeywords/Page_/input_word'), 'Katalon')
}
Method Call Statement
这是一种局部方法定义和调用方式,比如我需要打开百度新闻,然后登录之后再做一些其他操作,如果将登录
这个操作封装起来,代码则大致如下:
WebUI.openBrowser('https://news.baidu.com/')
WebUI.click(findTestObject('logintest/Page_/a_'))
login('xxxxx', '123456')
WebUI.click(findTestObject('logintest/Page_/input_TANGRAM__PSP_12__submit'))
def login(userName, password) {
WebUI.setText(findTestObject('logintest/Page_/input_userName'), userName)
WebUI.setText(findTestObject('logintest/Page_/input_password'), password)
}
Data Files
很多时候,测试用例需要配合本地的文档进行测试,比如需要测若干个用户账号,这些账号都放在cvs或者excel文件中,又或者有可能需要测试一些产品的创建流程,产品信息也是存放在excel中。这些情况下,如果通过在代码里一行行赋值的方式,就显得太臃肿、太费时费力了。Katalon
提供了一个叫Data Files
的功能,将数据添加进来,并将字段绑定到脚本中即可实现。
添加数据方法如下:
如果现在我要用excel中所有的用户,依次测试登录功能,代码如下:
for(def rowIdx = 0; rowIdx < findTestData('testUsers').getAllData().size(); rowIdx++) {
WebUI.openBrowser('https://news.baidu.com/')
WebUI.click(findTestObject('logintest/Page_/a_'))
// 需要注意的是,这里的column和row的值,都是从1开始
def userName = findTestData('testUsers').getValue(1, rowIdx + 1)
def password = findTestData('testUsers').getValue(2, rowIdx + 1)
login(userName, password)
WebUI.click(findTestObject('logintest/Page_/input_TANGRAM__PSP_12__submit'))
WebUI.closeBrowser()
}
def login(def userName, def password) {
WebUI.setText(findTestObject('logintest/Page_/input_userName'), userName)
WebUI.setText(findTestObject('logintest/Page_/input_password'), password)
}
Test Suites & Reports
Katalon
可以自动生成测试报告(前提是用例是通过Test Suites
或者Test Suites Collection
执行),通过执行报告可以分析执行过程、查看异常信息等:
Katalon
还提供了一个Web版的分析工具,可以很方便的将自己本地的测试结果上传到Katalon Analytics
服务器上(传送门),仅仅需要在Katalon Studio
里关联下Katalon
账号即可:
Test Listeners
Test Listeners
有点像去其他测试框架(Nunit
/Junit
等)中像set up
/tear down
这样的全局执行函数。
Test Listeners
提供了Before Test Case
、After Test Case
、Before Test Suite Case
和After Test Suite Case
这四个方法,看名字就知道是干嘛的了,你可以做一些全局的操作(比如每次开始执行用例前初始化一些数据、配置等;又或者在用例执行之后,将测试数据进行清理等工作),根据实际需求添加相应的代码即可:
Katalon Recorder
Katalon
开发团队还提供了浏览器插件Katalon Recorder
,用户可以在浏览器里录制、调试脚本,Katalon Recorder
可以自动生成代码,极其方便:
结语
通过本篇,介绍了所有Katalon
的进阶用法,虽然实际使用中,Katalon Studio
还是有很多不完美之处,但是总的来说是个非常简单实用的工具,相信在更新的过程中,现在的这些所谓的瑕疵将会被慢慢的修复掉。
有了这么强大的工具,我们就可以在日常项目中快速地创建专属的自动化测试用例,使我们有能力在快速迭代的项目中,保障主流程的正确性。