前端自动化测试神器-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的功能,将数据添加进来,并将字段绑定到脚本中便可实现。测试

添加数据方法以下:ui

若是如今我要用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帐号便可:excel


Test Listeners

Test Listeners有点像去其余测试框架(Nunit/Junit等)中像set up/tear down这样的全局执行函数。

Test Listeners提供了Before Test CaseAfter Test CaseBefore Test Suite CaseAfter Test Suite Case这四个方法,看名字就知道是干吗的了,你能够作一些全局的操做(好比每次开始执行用例前初始化一些数据、配置等;又或者在用例执行以后,将测试数据进行清理等工做),根据实际需求添加相应的代码便可:


Katalon Recorder

Katalon开发团队还提供了浏览器插件Katalon Recorder,用户能够在浏览器里录制、调试脚本,Katalon Recorder能够自动生成代码,极其方便:

结语

经过本篇,介绍了全部Katalon的进阶用法,虽然实际使用中,Katalon Studio仍是有不少不完美之处,可是总的来讲是个很是简单实用的工具,相信在更新的过程当中,如今的这些所谓的瑕疵将会被慢慢的修复掉。

有了这么强大的工具,咱们就能够在平常项目中快速地建立专属的自动化测试用例,使咱们有能力在快速迭代的项目中,保障主流程的正确性。



本文在个人博客园个人我的博客上同步发布,做者保留版权,转载请注明来源。

相关文章
相关标签/搜索