python-web自动化测试-断言
断言,也叫检查点,指的是在自动化测试过程中,让脚本自动判断实际结果是否等于预期结果。有基本布尔型断言、比较断言、复杂断言等方法。
一、基本布尔型断言
序号 |
断言方法 |
断言描述 |
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自动化测试-断言相关推荐
- python的web自动化框架实例_Selenium基于Python web自动化测试框架 -- PO
关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...
- python web自动化测试框架搭建(功能接口)——功能测试模块
功能测试使用selenium,模块有: 1.futil: 公共方法,如元素高亮显示 # coding=utf-8 """高亮显示元素""" ...
- Selenium基于Python web自动化测试框架 —— PO模型
目录 1.前言: 2.PO模型的概念和理解: 3.PO模型的目录结构: 4.PO代码示例: 5.总结 6.重点:配套学习资料和视频教学 1.前言: 关于selenium测试框架首先想到的就是PO模型, ...
- Python Pytest自动化测试 断言失败后续代码继续执行
Time will tell. 做自动化测试时我们一般会一个用例写多个断言,而当第一个断言失败后,后面的代码就不会执行.这时我们可以引进pytest-assume插件来解决这些问题. 一.安装 pip ...
- 零基础入门python web 自动化测试_python web自动化测试,入门篇
自动化测试入门篇 本次实现自动化是用python语言进行实现,所以需要有一点python基础,其实python还是比较简单入门的,下面开始. 安装完毕之后,设置环境变量属性,这样可以全局操作pytho ...
- Python WEB 自动化测试实战,项目场景(详细)
目录:导读 前言 一.文件上传 二.弹窗处理 1.alter弹框 2.confirm弹框 3.prompt 弹框 三.总结 前言 手工测试的占重比例达到了70%,相对开发来说,测试的门槛低,薪资也相对 ...
- python web自动化测试实验报告_Python:web自动化测试
用selenium包. # -*- coding: utf-8 -*- # 说明: 当前的浏览器驱动用的是edge浏览器. # 需要下载浏览器驱动,并把它的路径添加到环境变量 from seleniu ...
- 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建
订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...
- 〖Python WEB 自动化测试实战篇⑧〗- 实战 - 利用 selenium 处理弹出框
订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...
- 〖Python WEB 自动化测试实战篇⑮〗 实战 - 自动化测试的持续集成
订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...
最新文章
- 从ReLU到Sinc,26种神经网络激活函数可视化
- 在ASP.NET CORE 2.0使用SignalR技术
- android:background大小,小Demo小知识-android:foreground与android:background
- GridView 移除模板列
- WinCE5.0 SMDK2410 BSP在GEC2410开发板上的移植(11)-BINFS在Nand上的实现(Multi-Bin的实现)
- Python(10)- 格式化输出%
- 关于.NET的单元测试
- DE26 Continuation: Repeated Real Eigenvalues
- C++实现字符串数组的计数功能总结
- [禅悟人生]先将小事做好再来修禅心
- 备案网站建设方案书模板
- linux系统时间与网络时间不同步
- Your application has presented a UIAlertController的解决方法
- Android开发接入第三方SDK流程
- 随机四位数的猜数游戏
- android 跳转oppo应用中心_安卓市场—OPPO应用市场ASO详解
- java里用idea是什么意思_idea什么意思?啥意思?idea简介
- 独立成分分析 与 功能连接之间的关联尝试 by 张高燕
- 【编程笔试】美团2021校招笔试-通用编程题第6场(附思路及C++代码)
- 褚时健:我老褚不是个坏人
热门文章
- Windows10鼠标滚轮在部分软件上滚动没反应解决办法
- Android电话和短信拦截器
- Windows server 2003共享设置
- jQuery阻止冒泡事件和默认事件
- 全新升级版Portraiture 4.1磨皮插件安装许可证密钥免费版含使用教程
- 03DVWA的搭建和nmap的使用
- python自动生成鸡汤文_马尔可夫链文本生成的简单应用:不足20行的Python代码生成鸡汤文...
- linux图形界面鼠标变成小手_Linux 的成长之路:试用 1993-2003 年之间的 Linux 老版本系统...
- 韩顺平 数据结构与算法 (12_3) 树结构应用部分_赫夫曼编码(思路)
- JsonResult返回值处理