8月可以播种南非万寿菊吗?

小说:8月可以播种南非万寿菊吗?作者:戏石更新时间:2019-04-22字数:42944

前言

上一篇介绍了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 CaseAfter Test CaseBefore Test Suite CaseAfter Test Suite Case这四个方法,看名字就知道是干嘛的了,你可以做一些全局的操作(比如每次开始执行用例前初始化一些数据、配置等;又或者在用例执行之后,将测试数据进行清理等工作),根据实际需求添加相应的代码即可:


Katalon Recorder

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

结语

通过本篇,介绍了所有Katalon的进阶用法,虽然实际使用中,Katalon Studio还是有很多不完美之处,但是总的来说是个非常简单实用的工具,相信在更新的过程中,现在的这些所谓的瑕疵将会被慢慢的修复掉。

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



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

当前文章:http://scycxh.com/news/2019041443075/index.html

发布时间:2019-04-22 08:57:27

红玉兰批发价格哪家最实惠? 浙江枫杨价格便吗? 腊梅树几月份种植最佳? 十公分的紫薇哪里有? 八角金盘一般种多大的? 1米高法国冬青今年什么价格? 2~3~5公分紫玉兰价格 榉树不管是在绿化界,还是在建筑界都会令你刮目相看的 黄金槐哪里有基地? 黑小麦种子几月播种最好?

34652 72968 77911 81752 69350 83644 45095 72831 85135 70798 88866 41301 56069 41481 82649 89524 20699 97948 80493 30622 33641 10182 85724

我要说两句: (0人参与)

发布