设置等待时间

  • 硬等待: 不管结果真么样等待时间一过立马执行以后代码
// 线程休眠5秒
Thread.sleep(5000)
  • 每条语句等待: 每一个WebUI.方法都等待一段时间,这就要手动设置一下了。
      路径 project → settings → Execution → Web Ui → delay Between actions……



  单位是秒钟,默认:0,设置了之后,每条语句都会隔几秒在执行!

  • 隐式等待: 有条件性的等待比如等待页面加载10秒钟,5 秒钟页面加载完成,开始执行下面代码,10 秒之后页面还是没有加载完成也执行后面代码!
      WebUI 先说一下 webUi这个对象里面的方法的共同的一个特点。详细的都有什么第四章再介绍。下面的介绍的都是不带FailureHandling参数的方法。
// WebUI 的函数中每个方法都有一个重写的方法FailureHandling 失败之后测处理方式,默认终止当前Case。
// WebUI.waitForAlert(int timeOut, FailureHandling flowControl)
// WebUI.waitForAlert(int timeOut)
WebUI.waitForAlert(5000 , FailureHandling.STOP_ON_FAILURE)
WebUI.waitForAlert(5000)

  说道重点了↓ 这可是一大片的代码,做好心理准备。

WebUI.openBrowser(null)// 等待警报出现
WebUI.waitForAlert(5000)//等待Angular/ajax在第二个单元中的给定时间内加载。
WebUI.waitForAngularLoad(5000)// 等待,直到给定的web元素具有特定名称和值的属性。
WebUI.waitForElementAttributeValue(TestObject to, String attributeName, String attributeValue, int timeOut)//等待给定的元素在给定的时间内单击(以秒为单位)。
WebUI.waitForElementClickable(TestObject to, int timeOut)//等待,直到给定的web元素具有特定名称的属性。
WebUI.waitForElementHasAttribute(TestObject to, String attributeName, int timeOut)//等待给定的元素在给定的时间内不可单击(以秒为单位)。
WebUI.waitForElementNotClickable(TestObject to, int timeOut)// 等待,直到给定的web元素没有具有特定名称的属性
WebUI.waitForElementNotHasAttribute(TestObject to, String attributeName, int timeOut)// 等待给定的元素在第二个单元中的给定时间内不出现(消失)。
WebUI.waitForElementNotPresent(TestObject to, int timeOut)//等待,直到给定的web元素在超时时间内不可见。
WebUI.waitForElementNotVisible(TestObject to, int timeOut)//等待给定的元素在给定的时间内出现在第二个单元中。
WebUI.waitForElementPresent(TestObject to, int timeOut)//等待,直到给定的web元素在超时内可见。
WebUI.waitForElementVisible(TestObject to, int timeOut)//等待图像出现在页面上
WebUI.waitForImagePresent(TestObject to, int timeOutInSeconds)// 等待jQuery在第二个单元中的给定时间内加载。
WebUI.waitForJQueryLoad(int seconds)// 等待网页在第二个单元中的给定时间内加载。
WebUI.waitForPageLoad(int seconds)WebUI.closeBrowser()

断言

  断言就简单了,就一个关键字,assert

// assert 需要一个条件表达式 ,返回结果是True 或者 False
// 断言通过
assert 1 == 1// 断言失败
assert 1 != 1// 断言通过
assert true// 断言失败
assert false

  还有其他验证方法,等我研究明白了在补充!
  先给你网址:https://docs.katalon.com/katalon-studio/docs/verification-snippets.html#list-of-available-verification-snippets 我是通过这个网址研究的!

调试脚本

  录制完脚本后一运行,之后报错!

  在调试前先给代码打上断点。在没行代码的行首双击就可以了!

  使用调试功能对脚本进行调试,按F6方代码一步一步执行,看代码执行到哪里为什么报错!

  第一次调试会有一个提示窗口,让你进入调试界面。(我忘了截图了)

  也可以通过下图方块位置 来回切换 编码视图和调试视图

  你们写的代码你们去调试吧,我的问题是,录制脚本的时候,多个图片保存成一个对象了,因为对象操作不对所以才出问题!
  就是这里,这里应该点击订票按钮,结果点击了退出按钮!

   踩坑了!!! TMD 这个气人,我感觉我应该找个没有frame的网站做测试了!这个真心难受!
  第三个 freme 框架读对象需要自己定义,这要是真的测试要多久才行!

用例前置函数与后置函数

在Test Case 中写的函数

  每一个前置函数都有一个参数skipped 默认是跳过的,需要手动修改成 false 让他不跳过。
  不多说,直接看代码!

import com.kms.katalon.core.annotation.SetUp
import com.kms.katalon.core.annotation.TearDown
import com.kms.katalon.core.annotation.TearDownIfError
import com.kms.katalon.core.annotation.TearDownIfFailed
import com.kms.katalon.core.annotation.TearDownIfPassed
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI// 当次用例执行前执行的函数
@SetUp(skipped = false)
void setup(){WebUI.openBrowser('')this.println("@SetUp run")
}// 随便录制的一个用例
WebUI.navigateToUrl('http://127.0.0.1:1080/WebTours/')
WebUI.setText(findTestObject('Object Repository/Page_Web Tours/input_Username_username'), 'jack')
WebUI.setEncryptedText(findTestObject('Object Repository/Page_Web Tours/input_Password_password (1)'), 'HeCM15nHKBI=')
WebUI.click(findTestObject('Object Repository/Page_Web Tours/input_Password_login'))
def String welComeUserName = WebUI.getText(findTestObject('Object Repository/Page_Web Tours/b_jack'))
assert welComeUserName.contains('jack')// 当次用例执行后结果为失败执行的函数
@TearDownIfFailed(skipped = false)
void TearDownIfFailed(){this.println("@TearDownIfFailed run")
}
// 当次用例执行后结果为错误执行的函数
@TearDownIfError(skipped = false)
void TearDownIfError(){this.println("@TearDownIfError run")
}
// 当次用例执行后结果为通过执行的函数
@TearDownIfPassed(skipped = false)
void TearDownIfPassed(){this.println("@TearDownIfPassed run")
}
// 当次用例执行后不管结果执行的函数
@TearDown(skipped = false)
void TearDown(){WebUI.closeBrowser()this.println("@TearDown run")
}

在Test Suites 中写的函数


/*** test suite 执行前执行的函数*/
@SetUp(skipped = false) // Please change skipped to be false to activate this method.
def setUp() {this.println("suite in @@SetUp run")
}/*** test suites 执行后执行的函数*/
@TearDown(skipped = false) // Please change skipped to be false to activate this method.
def tearDown() {this.println("suite in @@TearDown run")
}/*** 运行每个 test case前执行的函数*/
@SetupTestCase(skipped = false) // Please change skipped to be false to activate this method.
def setupTestCase() {this.println("suite in @@SetupTestCase run")
}/*** 每个 test case运行后执行的函数*/
@TearDownTestCase(skipped = false) // Please change skipped to be false to activate this method.
def tearDownTestCase() {this.println("suite in @@TearDownTestCase run")
}

  执行结果:
  黄色线是 在 test Case 中写的函数
  红色线是 在 test Suites 中写的函数

转载https://blog.csdn.net/weixin_43664254/article/details/89491130

katalon等待时间、断言、setup teardown相关推荐

  1. 第六:Pytest中的setup/teardown

    简介 学过unittest的都知道里面用前置和后置setup和teardown非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass和teardownClass,需 ...

  2. Pytest setup teardown

    目录 如何实现xunit样式setup\teardown 模块级setup/teardown 类级别setup/teardown 方法和功能级别setup/teardown 如何实现xunit样式se ...

  3. Pytest测试框架(二):pytest 的setup/teardown方法

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  4. 三、pytest接口自动化之pytest中setup/teardown,setup_class/teardown_class讲解

    pytest框架实现的前后置的处理(固件,夹具),很多种方式,常见的三种. 一.setup/teardown,setup_class/teardown_class 为什么需要这些功能? Class T ...

  5. gtest 中Setup TearDown SetUpTestCase和TearDownTestCase 的区别

    前言 在单元测试中,我们经常需要在某个测试套件.测试用例或者整个测试运行之前进行前置条件设置及检查,或者运行之后对运行结果进行校验等操作.在gtest中,称之为事件机制.gtest将事件按照作用的范围 ...

  6. setup/teardown 的用法

    # 方法级别函数 setup_method/teardown_method和setup/teardown对类有效,也位于类中,这两个效果一样,在测试类中每个测试方法前后调用一次.# 每条用例都要执行一 ...

  7. setup/teardown用法汇总

    pytest中的前置 pytest比较强大,提供了不仅仅一种方法的前置和后置: setup.teardown 先介绍第一个大家都比较熟悉的与unittest中的书写一直,这个可以在类中使用,也可以在类 ...

  8. locust之setup/teardown

    1. 单用户测试的setup和teardown行为,分别通过taskset类里面的on_start()和on_stop()方法实现. on_start():在用户建立前执行,初始化用户相关配置. on ...

  9. pytest——03 setup和teardown

    目录 前言 用例运行级别 函数式 setup_function/teardown_function setup_module/teardown_module 类和方法 函数和类混合 后置固件yield ...

最新文章

  1. 校验正确获取对象或者数组的属性方法(babel-plugin-idx/_.get)
  2. iOS开发-UIColor转UIIamge方法
  3. kubernetes常用对象
  4. hadoop启动碰到java.net.UnknownHostException
  5. Swift - 重写导航栏返回按钮
  6. 在linux中加固mysql_mysql在linux下的安装
  7. pdf转word python_Python实现PDF转Word
  8. HyperV2012的学习,从这里开始
  9. Linux学习体会。
  10. python程序员月薪-据说做Python程序员,都月薪上万?
  11. 全球各地区当前对电子烟行业的政策如何?
  12. (客户端)发送请求====>(到服务器端) 过程分析
  13. 微信开发者工具最新版本无法上传腾讯云代码(找不到腾讯云图标)
  14. 查看GitHub仓库大小的几种方法
  15. 尚硅谷周阳学习微服务《二》
  16. 【转载】十款必备牛逼的IDEA插件
  17. 最新上海个人养老保险缴费信息查询步骤
  18. ROS从入门到精通5-5:局部路径规划插件开发案例(以DWA算法为例)
  19. 什么是BFC,他有什么用?
  20. CSDN第11期周赛

热门文章

  1. 【游戏开发实战】Unity循环复用列表,支持不规则尺寸(对象池 | UGUI | ScrollRect | Demo源码)
  2. Deployer-6-部署流-Flow
  3. (Python文件处理)doc文档转UTF-8格式的TXT文档
  4. godaddy空间如何建网站教程
  5. 我在哪?从何处来,又到哪里去?
  6. 恒指期货实盘记录及下周行情分析!
  7. java之本周、上周、开始、结束时间
  8. 随时随地通过代理访问内部服务器(tfcenter)
  9. unity urp 棉麻织物渲染
  10. “似水无形” 的小程序化