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

Katalon Recorder

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

结语

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

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



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

原文地址:https://www.cnblogs.com/wushangjue/p/8422947.html

时间: 2024-08-01 20:20:21

前端自动化测试神器-Katalon进阶用法的相关文章

前端自动化测试神器-Katalon的基础用法

前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作里除去休息时间,我能在6个小时里像机器人一样保证每20秒处理一条数据). 显然,作为一个程序员,我是不可能让这样机械化的操作浪费我宝贵的生命的.第一反应是想到了若干年前被我用来做Web前端测试和写页游外挂的神器Selemium(当时页游真的很火,我用自己写的脚本,在只花了很少钱的情况下,用了不到3周

前端开发神器WebStorm--Grunt 搭建环境(03)

通过上一篇前端开发神器WebStorm--自动化工作流(前言),相信大家都Grunt自动化工具有了初步了解. 接下来我就以WROC3000 web为原型,演示一下如何使用Grunt工具提高工作效率,最大程度压缩代码. 1.首先安装node环境 进入官网 下载安装.(记住安装目录) 检测安装成功方法:打开CMD窗口,输入 node --version 会打印出安装的版本号,说明已经安装成功. 2.安装 Grunt 客户端 在CMD 窗口中,切换到node安装盘符,会自动切换到nodejs安装目录.

学习web前端之神器sublime text 3

第一次在博客园写博客,以前都是看别人写的技术在自己慢慢的学习.现在想自己把每天学习的东西理解并记录下来,加深下印象以后可以做个回顾.不知道自己能否坚持每周至少写2篇博文. 古话说的好:工欲善其事,必先利其器.所以我们要找到一个神器来帮助我们更好的学习前端开发,要么记事本怎么样?不错是不错估计要写到猴年马月了. 百度一搜,web前端开发利器有很多,比如:EditPlus,Dreamweaver,HBuilder,Webstorm,Aptana Studio,Sublime text,这么多最后我还

Web前端开发神器--WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版

WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版 http://www.jb51.net/softs/171905.html WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaScript IDE”等.与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能.

Django框架学习-Model进阶用法

Model进阶用法 回顾 访问外键 访问多对多关系 更改数据库结构 当处理数据库结构改变时,需要注意到几点: 增加字段 首先在开发环境中: 再到产品环境中: 删除字段 删除多对多字段 删除model Manager管理器 给管理器添加新的方法 修改返回的QuerySet Model的方法 执行自定义SQL语句 Model进阶用法 回顾 Django中的model层主要和数据库进行交互,使用数据库API对数据库进行增删改查的操作. 下面将介绍关于model层更深入的用法. 下面是之前创建model

打造属于自己的前端开发神器 -- 给Sublime Text加上Eclipse的光环

打造属于自己的前端开发神器 -- 给Sublime Text加上Eclipse的光环 2013-05-16 14:39:15 将Sublime Text打造成如Eclipse一般的前端开发IDE 1. 快捷键移植篇   从Java开始的梦, 到如痴如醉的Front End, 却始终摆脱不了Eclipse的束缚.   对于Javaer, Eclipse是非常不错的选择, 但对于单纯的前端而言, 是不是觉得略显笨重, 其中各种不想要的东西, 反正是诸多不爽, 曾用过Eclipse来做前端的人应该都有

前端自动化神器LiveReload配合浏览器和less/sass使用方法

前言:搜了半天,各种推荐,什么十大工具啦.优秀工具集合啦之类的咸淡文章,就是没有一个讲怎么弄的.配合官网的article自己研究了半天总算配置好了.顺便吐槽下官网关于sass/less设置这块说的模糊不清的.写个教程给大家,相信会对新手们有帮助的. 声明:本文不涉及Grunt. 开发环境:windows7 编辑器:sublime text3 浏览器:firefox31 介绍 一般前端写页面,修改了html or css要想看效果通常就得 Alt+Tab,切换到浏览器,然后F5刷新,时间久了….

前端开发神器WebStorm--自动化工作流Grunt(02)

为何要用构建工具? 一句话:自动化 对于需要反复重复的任务,例如压缩(minification).编译.单元测试.linting等,自动化工具可以减轻你的劳动,简化你的工作. 当你正确配置好了任务,任务运行器就会自动帮你或你的小组完成大部分无聊的工作. Grunt这货是啥? 最近很火的前端自动化小工具,基于任务的命令行构建工具 http://gruntjs.com 为什么使用Grunt? 使 用Grunt的最大好处在于它带给团队的一致性.如果你曾经多人合作完成工作,你就会知道代码中的不一致性是多

前端自动化测试工具doh学习总结(二)

一.robot简介 robot是dojo框架中用来进行前端自动化测试的工具,doh主要目的在于单元测试,而robot可以用来模仿用户操作来测试UI.总所周知,Selenium也是一款比较流行的前端自动化测试工具,与Selenium相比robot的优点在于robot触发的浏览器事件是真正的用户操作事件,而Selenium中的事件属于"合成事件".打个比方,用户在一个textbox元素上触发了mousedown事件,但是在触发mousedown事件之前,肯定会触发mouseover等事件.