Selenium提供的三种断言,我还是偏爱Assertion

发表于:2020-12-16 10:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wuwei丶    来源:博客园

  断言Assertion
  验证应用程序的状态是否同所期望的一致。
  常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该复选框是否被勾选。
  Selenium提供了三种模式的断言:Assert、Verify、Waitfor
  Assert失败时,该测试将终止。
  Verify失败时,该测试将继续执行,并将错误记入日显示屏。也就是说允许此单个验证通过。确保应用程序在正确的页面上。
  Waitfor用于等待某些条件变为真。可用于AJAX应用程序的测试。
  如果该条件为真,他们将立即成功执行。如果该条件不为真,则将失败并暂停测试。直到超过当前所设定的超过时间。
  一般跟setTimeout时间一起使用。
  常用断言
  assertLocation(判断当前是在正确的页面)
  assertTitle(检查当前页面的title是否正确)
  assertValue(检查input的值,checkbox或radio,有值为”on”无为”off”)
  assertSelected(检查select的下拉菜单中选中是否正确)
  assertSelectedOptions(检查下拉菜单中的选项的是否正确)
  assertText(检查指定元素的文本)
  assertTextPresent(检查在当前给用户显示的页面上是否有出现指定的文本)
  assertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)
  assertAttribute(检查当前指定元素的属性的值)
  assertTable(检查table里的某个cell中的值)
  assertEditable(检查指定的input是否可以编辑)
  assertNotEditable(检查指定的input是否不可以编辑)
  assertAlert(检查是否有产生带指定message的alert对话框)
  verifyTitle(检查预期的页面标题)
  verifyTextPresent(验证预期的文本是否在页面上的某个位置)
  verifyElementPresent(验证预期的UI元素,它的HTML标签的定义,是否在当前网页上)
  verifyText(核实预期的文本和相应的HTML标签是否都存在于页面上)
  verifyTable(验证表的预期内容)
  waitForPageToLoad(暂停执行,直到预期的新的页面加载)
  waitForElementPresent(等待检验某元素的存在。为真时,则执行。)
  验证和断言的区别:验证失败后不影响脚本的继续执行,断言失败后将停止脚本的执行。
  异常类型
  AssertionError:assert语句失败
  AttributeError:试图访问一个对象没有的属性
  IOError:输入输出异常,基本是无法打开文件
  ImportError:无法引入模块或者包,基本是路径问题
  IndentationError:语法错误,代码没有正确的对齐
  IndexError:下标索引超出序列边界
  KeyError:试图访问字典里不存在的键
  KeyboadrInterrupt:Ctrl+c被按下
  NameError:使用一个还未赋值对象的变量
  SyntaxError:python代码逻辑语法错误,不能执行
  TypeError:传入的对象类型与要求不符
  UnboundLocalError:试图访问一个还未设置的全局变量,基本上是由于另有一个同名的全局变量,导致你以为在访问
  ValueError:传入一个不被期望的值,即使类型正确
  我们来看举个栗子,python3+selenium3,验证标题是否包含‘百度一我’:
  结果如下:
  UnitTest中的断言
  在unittest单元测试框架中,TestCase类提供了一些方法来检查并报告故障。
  assertEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,相等则测试用例通过。
  assertNotEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,不相等则测试用例通过。
  assertTrue(x,[msg='测试失败时打印的信息']):断言x是否True,是True则测试用例通过。
  assertFalse(x,[msg='测试失败时打印的信息']):断言x是否False,是False则测试用例通过。
  assertIs(a,b,[msg='测试失败时打印的信息']):断言a是否是b,是则测试用例通过。
  assertNotIs(a,b,[msg='测试失败时打印的信息']):断言a是否是b,不是则测试用例通过。
  assertIsNone(x,[msg='测试失败时打印的信息']):断言x是否None,是None则测试用例通过。
  assertIsNotNone(x,[msg='测试失败时打印的信息']):断言x是否None,不是None则测试用例通过。
  assertIn(a,b,[msg='测试失败时打印的信息']):断言a是否在b中,在b中则测试用例通过。
  assertNotIn(a,b,[msg='测试失败时打印的信息']):断言a是否在b中,不在b中则测试用例通过。
  assertIsInstance(a,b,[msg='测试失败时打印的信息']):断言a是是b的一个实例,是则测试用例通过。
  assertNotIsInstance(a,b,[msg='测试失败时打印的信息']):断言a是是b的一个实例,不是则测试用例通过。
  我们来小试一下牛刀:
  这里先简单介绍一下常用断言,具体的如何使用应具体应用而定。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号