断言,也叫检查点,指的是在自动化测试过程中,让脚本自动判断实际结果是否等于预期结果。有基本布尔型断言、比较断言、复杂断言等方法。

一、基本布尔型断言

序号

断言方法

断言描述
1 assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail 【常用】
2 assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则fail
3 assertTrue(expr, msg=None) 验证expr是true,如果为false,则fail 【常用】
4 assertFalse(expr,msg=None) 验证expr是false,如果为true,则fail 【常用】
5 assertIs(arg1, arg2, msg=None) 验证arg1、arg2是同一个对象,不是则fail
6 assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail
7 assertIsNone(expr, msg=None) 验证expr是None,不是则fail
8 assertIsNotNone(expr, msg=None) 验证expr不是None,是则fail
9 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail
10 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail
11 assertIsInstance(obj, cls, msg=None) 验证obj是cls的实例,不是则fail
12 assertNotIsInstance(obj, cls, msg=None) 验证obj不是cls的实例,是则fail

二、比较断言

序号 断言方法 断言描述
1 assertAlmostEqual (first, second, places = 7, msg = None, delta = None)

验证first约等于second。 palces: 指定精确到小数点后多少位,

默认为7

2 assertNotAlmostEqual (first, second, places, msg, delta)

验证first不约等于second。 palces: 指定精确到小数点后多少位,

默认为7 注: 在上述的两个函数中,如果delta指定了值,

则first和second之间的差值必须≤delta

3 assertGreater (first, second, msg = None) 验证first > second,否则fail
4 assertGreaterEqual (first, second, msg = None) 验证first ≥ second,否则fail
5 assertLess (first, second, msg = None) 验证first < second,否则fail
6 assertLessEqual (first, second, msg = None) 验证first ≤ second,否则fail
7 assertRegexpMatches (text, regexp, msg = None)

验证正则表达式regexp搜索匹配的文本text。

regexp:通常使用re.search()

8 assertNotRegexpMatches (text, regexp, msg = None)

验证正则表达式regexp搜索不匹配的文本text。

regexp:通常使用re.search()

说明:两个参数进行比较(>、≥、<、≤、约等、不约等)

三、复杂断言

序号 断言方法 断言描述
1 assertListEqual(list1, list2, msg = None) 验证列表list1、list2相等,不等则fail,同时报错信息返回具体的不同的地方
2 assertTupleEqual (tuple1, tuple2, msg = None) 验证元组tuple1、tuple2相等,不等则fail,同时报错信息返回具体的不同的地方
3 assertSetEqual (set1, set2, msg = None) 验证集合set1、set2相等,不等则fail,同时报错信息返回具体的不同的地方
4 assertDictEqual (expected, actual, msg = None 验证字典expected、actual相等,不等则fail,同时报错信息返回具体的不同的地方

四、示例

(1)assertEqual(arg1, arg2),  判断arg1 == arg2  结果是一个bool值  可以是任意数据类型

(2) assertIn(str1, str2)  判断str1是不是str2的子串, str1 in str2  结果是一个bool值  只能是字符串

(3)具体用哪种断言方法,根据实际情况而定 常见:获取网页标题、url地址、元素的text文本、元素的某一个属性等。示例:

五、断言失败后续的代码不会被执行,所以可以使用异常处理

异常处理的格式:

try:可能会出现异常的代码
except 指定异常类型:捕获到异常时执行的代码
else: 没有捕获到异常时执行的代码
finally:有没有异常都会执行

示例:

def test_xueshu(self):driver = self.driverdriver.find_element_by_link_text('学术').click()driver.switch_to.window(driver.window_handles[1])try:# 预期结果Expected = "https://xueshu.baidu.com"# 获取当前网页URL 实际结果Actual = driver.current_url# 断言self.assertEqual(Expected, Actual)# 在百度学术搜索自己名字driver.find_element_by_id('kw').send_keys('lilgaage')driver.find_element_by_id('su').click()sleep(2)# 动态时间now = time.strftime("%Y%m%d_%H%M%S")driver.get_screenshot_as_file("images/img_{}_百度学术搜索lilgaage.png".format(now))# 捕获到指定异常--->断言失败except AssertionError:print("断言失败,进入的不是百度学术页面")# 截图now = time.strftime("%Y%m%d_%H%M%S")driver.get_screenshot_as_file("images/img_{}_断言失败_不是百度学术搜索.png".format(now))# 抛出异常raisefinally:print("断言结束")

python-web自动化测试-断言相关推荐

  1. python的web自动化框架实例_Selenium基于Python web自动化测试框架 -- PO

    关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...

  2. python web自动化测试框架搭建(功能接口)——功能测试模块

    功能测试使用selenium,模块有: 1.futil: 公共方法,如元素高亮显示 # coding=utf-8 """高亮显示元素""" ...

  3. Selenium基于Python web自动化测试框架 —— PO模型

    目录 1.前言: 2.PO模型的概念和理解: 3.PO模型的目录结构: 4.PO代码示例: 5.总结 6.重点:配套学习资料和视频教学 1.前言: 关于selenium测试框架首先想到的就是PO模型, ...

  4. Python Pytest自动化测试 断言失败后续代码继续执行

    Time will tell. 做自动化测试时我们一般会一个用例写多个断言,而当第一个断言失败后,后面的代码就不会执行.这时我们可以引进pytest-assume插件来解决这些问题. 一.安装 pip ...

  5. 零基础入门python web 自动化测试_python web自动化测试,入门篇

    自动化测试入门篇 本次实现自动化是用python语言进行实现,所以需要有一点python基础,其实python还是比较简单入门的,下面开始. 安装完毕之后,设置环境变量属性,这样可以全局操作pytho ...

  6. Python WEB 自动化测试实战,项目场景(详细)

    目录:导读 前言 一.文件上传 二.弹窗处理 1.alter弹框 2.confirm弹框 3.prompt 弹框 三.总结 前言 手工测试的占重比例达到了70%,相对开发来说,测试的门槛低,薪资也相对 ...

  7. python web自动化测试实验报告_Python:web自动化测试

    用selenium包. # -*- coding: utf-8 -*- # 说明: 当前的浏览器驱动用的是edge浏览器. # 需要下载浏览器驱动,并把它的路径添加到环境变量 from seleniu ...

  8. 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  9. 〖Python WEB 自动化测试实战篇⑧〗- 实战 - 利用 selenium 处理弹出框

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  10. 〖Python WEB 自动化测试实战篇⑮〗 实战 - 自动化测试的持续集成

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

最新文章

  1. 从ReLU到Sinc,26种神经网络激活函数可视化
  2. 在ASP.NET CORE 2.0使用SignalR技术
  3. android:background大小,小Demo小知识-android:foreground与android:background
  4. GridView 移除模板列
  5. WinCE5.0 SMDK2410 BSP在GEC2410开发板上的移植(11)-BINFS在Nand上的实现(Multi-Bin的实现)
  6. Python(10)- 格式化输出%
  7. 关于.NET的单元测试
  8. DE26 Continuation: Repeated Real Eigenvalues
  9. C++实现字符串数组的计数功能总结
  10. [禅悟人生]先将小事做好再来修禅心
  11. 备案网站建设方案书模板
  12. linux系统时间与网络时间不同步
  13. Your application has presented a UIAlertController的解决方法
  14. Android开发接入第三方SDK流程
  15. 随机四位数的猜数游戏
  16. android 跳转oppo应用中心_安卓市场—OPPO应用市场ASO详解
  17. java里用idea是什么意思_idea什么意思?啥意思?idea简介
  18. 独立成分分析 与 功能连接之间的关联尝试 by 张高燕
  19. 【编程笔试】美团2021校招笔试-通用编程题第6场(附思路及C++代码)
  20. 褚时健:我老褚不是个坏人

热门文章

  1. Windows10鼠标滚轮在部分软件上滚动没反应解决办法
  2. Android电话和短信拦截器
  3. Windows server 2003共享设置
  4. jQuery阻止冒泡事件和默认事件
  5. 全新升级版Portraiture 4.1磨皮插件安装许可证密钥免费版含使用教程
  6. 03DVWA的搭建和nmap的使用
  7. python自动生成鸡汤文_马尔可夫链文本生成的简单应用:不足20行的Python代码生成鸡汤文...
  8. linux图形界面鼠标变成小手_Linux 的成长之路:试用 1993-2003 年之间的 Linux 老版本系统...
  9. 韩顺平 数据结构与算法 (12_3) 树结构应用部分_赫夫曼编码(思路)
  10. JsonResult返回值处理