python selenium系列(五)断言

作者:平山

http://blog.51cto.com/2681882/2283630

一 前言

提起断言,接触过软件测试相关工种的同学们,一定不会陌生。比如,功能测试/自动化测试判断用例是否通过,靠的就是检查测试结果与预期是否一致;稍微不同的是,功能测试的结果检查是由人工完成的,而自动化测试是通过预先把期望结果写入脚本,并与实际执行结果进行比对来完成的。这个比对的行为就是断言,依据断言的结果是True或False判定用例执行通过或失败。

在selenium系列的前四节,主要讲解selenium核心的元素定位和操作技术,然而,如果自动化脚本缺少断言,就无法准确获得脚本的运行过程中是否存在非预期的情况,脚本本身就不能很好完成功能回归的使命。

二 断言分类

断言的本质是验证某个功能点或脚本行为是否符合预期,所以,方法和手段是多种的。如,python自带的assert语句,unittest框架的assert方法,甚至用try…except捕获异常来断言等。在本文,主要介绍selenium提供的断言模式,但并不是说,web ui自动化脚本开发中只能使用selenium提供的断言模式,实际上也可以使用assert语句进行。

以下主要介绍Selenium断言中的两个模式:assert 、verify

assert:断言失败时,测试终止。

Verify:断言失败时,测试会继续执行,但会将错误信息写入日志。

三 如何选择使用assert还是Verify呢?

其实,选择使用assert还是Verify,取决于当执行失败时,希望脚本如何处理。如果希望测试失败时用例停止执行,方便检查错误原因,使用assert;如果希望测试出现异常时仍然可以对后续内容进行检验,使用verify。

即,assert和Verify的区别是:Verify失败后不影响脚本的继续执行,而assert失败后将终止脚本执行。

一个有用的思路是:

我们使用一个"assert"保证操作在正确的页面上,然后跟着一堆的"verify"来验证页面元素、表单中的值,标签等。

如下所示,我们打开一个页面,然后assert断言打开的是否标题为“Selenium IDE”的页面,如果断言成功,则验证页面图片和文字是否正确;否则,直接停止测试即可。

四 常用断言总结

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:(验证表的预期内容)

看完本文有收获?请转发分享给更多人

关注 【小蟒社区】,一起学Python

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180924G15W5800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励