python selenium系列(五)断言

 前言

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


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

断言分类

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

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

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

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

 

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

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

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


一个有用的思路是:

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


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

Command

Target

Value

open

/projects/ide/


assertTitle

Selenium IDE


verifyElementPresent

css=#mainContent img


verifyText

//table/tr/td/div/p

This is my text and it occurs right after the div inside the table.

 

常用断言总结

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学习、分享、交流,笔者开通了微信公众号【小蟒社区】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学python。

猜你喜欢

转载自blog.51cto.com/2681882/2283630
今日推荐