在一个Test Case里,点左上Add-Web UI Keyword,可以添加一行新的命令。

像Click、setText、Delay这些最基本的,大家还是看看官方的API文档吧,望文知义,如果是纯新手,可以先学学selenium的API,有网站也有书,都是中文的。
介绍几个写用例时,逻辑中会用到的几个Keyword:

1.Wait For系列与Delay:

Delay适用于定长时间的等待,比如点击添加按钮,立马弹出添加窗口,不需要与后端交互,也不用运行复杂的JS;

Wait For系列适用不定长时间的等待(后台有请求或前端有JS运行),比如当网页中按钮A显示了,才去点击;比如点了保存按钮,后台要执行一会,结果出现‘成功’字样,才继续下一步等。但实际使用中,有可能已经wait到了元素,但因为还页面还未加载完导致不可点击或不可交互,这时可以配合Delay一同使用。

具体的方法如图:

2.Verify系列:验证条件是否满足,返回True或False;具体的方法如图

我们从API描述中可以看到,每个Verify都有最后一个可选参数flowControl,可以设置命令返回false时是否报错,例子:WebUI.waitForElementClickable(findTestObject('input__wd'), 0, FailureHandling.CONTINUE_ON_FAILURE)

flowControl共有3个选项

我们也可以通过可视化操作来设置

如果不想每条都设置,也可以在Project Setting中设置所有命令的flowControl,参考Katalon系列三有写。

另外,不管哪个方法,当我们初次使用时,如果你不太清楚参数怎么写,双击Input栏,会弹出参数窗口,系统会默认写上参数名和类型,我们只需要填值就好了,当值比较长或比较复杂的时候,也可以切换到Script模式直接填写。

3.assert断言:和所有单元框架一样,Katalon Studio也有断言语句,就是assert,当断言不通过时,Case会失败。我们可以结合findTestObject、Verify系列、Wait For系列等方法一起使用,比如:
assert WebUI.verifyElementVisible(findTestObject('Page_CrfManage/0Page_CrfModel/Page_EditCrf/lab_PCversion'))
查找lab_PCversion元素,当其可见,则断言通过

Verify系列与assert区别:Verify可以按你的设置来控制脚本是否报错停止或继续执行,assert会停止脚本。

4.条件语句:和所有语言一样,有if,if...else等,举个if的例子:
更新提示只出现一次,且出现时不能进行其他操作,我们想当有更新提示时,则关闭更新提示
if (findTestObject('Page_Login/button_WhatNewClose')) {
WebUI.click(findTestObject('Page_Login/button_WhatNewClose'))
}

5.循环语句:For 和 While及配合循环的分支语句

我们这里举个For的最简单的例子:
for (def index : (1..10)) {
println '第' + index + '次!!!!!!!!!!!!!!!!!!!'
}

在Console中我们可以看到每条命令的执行,以及print的输出

6.模拟按键

有时我们想模拟键盘操作,比如ENTER,CTRL+V等,我没有在Katalon里发现有封装,但我们可以调用selenium的Keys。

import org.openqa.selenium.Keys as Keys

WebUI.sendKeys(findTestObject('input'), Keys.chord(Keys.CONTROL + 'a'))

WebUI.sendKeys(findTestObject('su'), Keys.chord(Keys.ENTER))

记得要先引用包,具体都有哪些键可在脚本编辑时自己看

总之,其他语言、框架有的语句这里都有,多看看官方的API文档吧
https://api-docs.katalon.com/index.html

如果没有,那还可以引用其他框架的包

1.Wait For系列与Delay:
Delay适用于定长时间的等待,比如点击添加按钮,立马弹出添加窗口,不需要与后端交互,也不用运行复杂的JS;
Wait For系列适用不定长时间的等待(后台有请求或前端有JS运行),比如当网页中按钮A显示了,才去点击;比如点了保存按钮,后台要执行一会,结果出现‘成功’字样,才继续下一步等。但实际使用中,有可能已经wait到了元素,但因为还页面还未加载完导致不可点击或不可交互,这时可以配合Delay一同使用。
具体的方法如图:

katalon系列六:Katalon Studio Web UI关键字讲解的更多相关文章

  1. java并发系列(六)-----Java并发:volatile关键字解析

    在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性.可见性和有序性.只要有一条原则没有被保证,就有可能会导致程序运行不正确.volatile关键字 被用来保证可见性 ...

  2. Selenium系列(十七) - Web UI 自动化基础实战(4)

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  3. katalon系列十:Katalon Studio自定义关键字之拖拽

    Katalon Studio自带关键字“Drag And Drop To Object”,可以在这个网站实践:http://jqueryui.com/droppable/#default 不过“Dra ...

  4. katalon系列一:初识Katalon Studio自动化测试工具

    最近准备把公司的系统搞上UI自动化,先是自己用Python+selenium+pytest写了一个框架,开始写case的时候发现效率极其慢.原因为: (1)开发为提高前端响应时间,使用前端路由技术,一 ...

  5. Katalon系列十九:元素相同或无法定位时的定位技巧

    经常看到有人问元素属性都相同,怎么定位,这里总结一下.下面以Xpath为例讲解,CSS其实也是一样的,只是语法不一样罢了.网上说CSS会比Xpath快一些,但在Katalon主用Xpath,感觉也还行 ...

  6. katalon系列十七:报告&Katalon Analytics

    一.邮件报告Suite执行完后,严格来说这个不算报告,只是邮件通知执行结果,具体设置请看katalon系列三 二.文件报告Suite执行完后,会在项目文件夹下/Report/Suite Name/ti ...

  7. katalon系列十三:5.10新增跳过用例&命令行赋值全局变量

    Katalon Studio升级到5.10版本了,这次新增了2个很实用的功能:一.跳过用例在Listener中新增了跳过用例方法,Listener类似于JUnit4的annotation中的@Befo ...

  8. 《软件测试自动化之道》读书笔记 之 底层的Web UI 测试

    <软件测试自动化之道>读书笔记 之 底层的Web UI 测试 2014-09-28 测试自动化程序的任务待测程序测试程序  启动IE并连接到这个实例  如何判断待测web程序完全加载到浏览 ...

  9. React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发

    React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发   2016/09/23 |  React Native技术文章 |  Sky丶清|  4 条评论 |  1 ...

随机推荐

  1. caffe 学习(3)——Layer Catalogue

    layer是建模和计算的基本单元. caffe的目录包含各种state-of-the-art model的layers. 为了创建一个caffe model,我们需要定义模型架构在一个protocol ...

  2. C#通过指针读取文件

    // readfile.cs // 编译时使用:/unsafe // 参数:readfile.txt // C#通过指针读取文件.使用该程序读并显示文本文件. using System; using ...

  3. springmvc错误集锦-dubbo包含低版本的spring包,依赖的时候应该排除Caused by: java.lang.reflect.MalformedParameterizedTypeException

    dubbo 常见错误 1. Caused by: java.lang.reflect.MalformedParameterizedTypeException 启动时报错,原因是dubbo 依赖 spr ...

  4. C# DataSet导出Excel

    //多个DataSet导出Excel文件 public static void DataSetToExcel(DataSet p_ds,string strSavePath) { ;//多个DataS ...

  5. [转]Python中下划线以及命名空间的意义

    Python 用下划线作为变量前缀和后缀指定特殊变量/方法. 主要存在四种情形 1. 1. object # public    2. __object__ # special, python sys ...

  6. js和jquery对象的相互转换

    在使用jquery的过程中发现很多需要将jquery对象转成js对象的例子. Query 对象是通过 jQuery 包装DOM 对象后产生的对象.jQuery 对象是 jQuery 独有的,其可以使用 ...

  7. Reading Notes : 180214 计算机的总线结构

    读书<计算机组成原理>,百度百科 基本上接触过计算机的人,都多少知道计算机的具体构成,但是真正能讲明白的却说了很多,本节将讲解一下计算机的基本硬件构成和一些基本信息,简单认识,以后再深入了 ...

  8. asp.net mvc5 step by step(四)——关于Controller的ActionResult

    ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的 是非ActionResult类型,控制器将会将结果转换 ...

  9. 生产环境MySQL数据库集群MHA上线实施方案

    生产环境MySQL数据库集群MHA上线实施方案 一.不停库操作 1.在所有节点安装MHAnode所需的perl模块(需要有安装epel源) yum install perl-DBD-MySQL -y ...

  10. day 26 网络知识 01

    一.    c/s 架构: 客户端(client)/服务端(server)架构       服务端: 提供服务的      客户端: 享受服务的     B/S 架构:浏览器(browser)/服务端 ...