1、断言介绍

在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的,这时会用到断言方法。

本着没有消息就是最好的消息的原则,如果断言成功不采取任何措施(不输入任何日志),否则就会触发AssertionError(断言错误)的异常。

2、常用的断言方法

断言方法名称 使用参数 验证
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的一个实例,不是则测试用例通过。

提示:如果ab断言失败,则输出msg中定义的信息,如果没有定义msg,则输出系统异常。

3、断言示例

"""
1.学习目标
必须掌握unittest中断言使用
2.语法
2.1 编写位置
在测试用例中去编写,先执行测试用例,最后一行断言。
2.2 使用的断言方法
注意:前边a是预期,后边b是测试实际的值
(1)assertEqual(a,b,msg)
断言a和b是否相等,如果相等,断言成功,否则断言失败
(2)assertTrue(x,msg)
断言条件x是否为True,如果是,断言成功,否则断言失败
(3)其他断言用法类似。
2.3 判定断言结果
断言成功,控制台没有任何提示
断言失败,控制台AssertionError关键字会出现
3.需求
编写一个有断言的测试类
"""
# 1 导入unittest
import unittest # 2 创建测试类
class Test_demo(unittest.TestCase): # 3 编写test case
def test_case_03(self):
"""测试用例3"""
print("执行测试用例3")
# 用例步骤执行完成后做断言
# assertEqual断言a和b是否相等
self.assertEqual(2, 1 + 1, msg="断言成功") """
执行结果:
断言成功,控制台没有任何提示 下面是总测试结果的日志:
执行测试用例3
# 在0.005秒内进行1次测试
Ran 1 test in 0.005s # 测试用例全部通过
OK
""" def test_case_02(self):
"""测试用例2"""
print("执行测试用例2")
# assertEqual断言a和b是否相等
self.assertEqual(3, 1 + 1, msg="断言失败") """
执行结果: 执行测试用例2 断言失败
3 != 2 Expected(预期) :2
Actual(实际) :3 下面会有报错信息(主要内容):
AssertionError: 2 != 3 : 断言失败 # 在0.008秒内进行1次测试
Ran 1 test in 0.008s # 失败一个测试用例
FAILED (failures=1) # 断言失败
Assertion failed
""" def test_case_01(self):
"""测试用例1"""
print("执行测试用例1")
# 断言条件x是否为True
self.assertTrue(1 > 2, msg="条件不成立,断言失败") # 4 编写普通方法
if __name__ == '__main__':
# 执行当前测试类中,以test开头的测试用例
unittest.main()

『心善渊』Selenium3.0基础 — 26、unittest测试框架的断言的更多相关文章

  1. 『心善渊』Selenium3.0基础 — 24、Selenium的expected_conditions模块详细介绍

    目录 1.EC模块介绍 2.EC模块常用类 3.EC模块的使用 4.EC模块综合使用 (1)title_is(title)示例 (2)presence_of_element_located(locat ...

  2. 『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作

    目录 1.Selenium对元素常用操作 2.Selenium对元素的其他操作 1.Selenium对元素常用操作 操作 说明 click() 单击元素 send_keys() 模拟输入 clear( ...

  3. 『心善渊』Selenium3.0基础 — 12、Selenium操作鼠标和键盘事件

    目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 ...

  4. 『心善渊』Selenium3.0基础 — 1、Selenium自动化测试框架介绍

    目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Seleniu ...

  5. 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API

    目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...

  6. 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素

    目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...

  7. 『心善渊』Selenium3.0基础 — 29、使用HTMLTestRunner生成unittest的HTML报告

    目录 1.HTMLTestRunner介绍 2.HTMLTestRunner的使用 3.测试报告示例 4.封装成模块 1.HTMLTestRunner介绍 HTMLTestRunner是一个基于uni ...

  8. 『心善渊』Selenium3.0基础 — 2、Selenium测试框架环境搭建(Windows)

    目录 1.浏览器安装 2.浏览器驱动下载 (1)ChromeDriver for Chrome (2)Geckodriver for Firefox (3)IEDriverServer for IE ...

  9. 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解

    目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...

随机推荐

  1. systemverilog动态数组

  2. MyBatis-编写自定义分页插件

    一.基础知识 本文测试和源码分析参考版本: Mybatis-version:3.5.5 本文相关测试源代码:https://github.com/wuya11/mybatis_demo 1.1 参考方 ...

  3. 第一个 Angular 应用程序

    node download https://nodejs.org/zh-cn/ 全局安装 npm install @angular/cli -g 指定版本 npm install @angular/c ...

  4. 目标检测中的anchor-based 和anchor free

    目标检测中的anchor-based 和anchor free 1.  anchor-free 和 anchor-based 区别 深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题.在 ...

  5. YOLO3升级优化版!Poly-YOLO:支持实例分割!

    YOLO3升级优化版!Poly-YOLO:支持实例分割! POLY-YOLO: HIGHER SPEED, MORE PRECISE DETECTION AND INSTANCE SEGMENTATI ...

  6. NeuWare软件开发环境

    NeuWare软件开发环境 NeuWare 全面支持各类主流编程框架(如TensorFlow,Caffe,Caffe2,MXNet和ONNX等).用户可面向上述编程框架,便捷地在MLU100上开发和部 ...

  7. C语言代码区错误以及编译过程

    C语言代码区错误 欲想了解C语言代码段会有如何错误,我们必须首先了解编译器是如何把C语言文本信息编译成为可以执行的机器码的. 背景介绍 测试使用的C语言代码 导入标准库,定义宏变量,定义结构体,重命名 ...

  8. Spring——Bean的作用域

    Spring中Bean的作用域有五种,分别是singleton.prototype.request.session.globalSession.其中request.session.globalSess ...

  9. fiddler抓取手机APP包相关的设置

    一.设置手机的代理服务器 1.前提:手机与电脑用的是同一个网络 2.fiddler设置允许远程连接,并设置好端口 3.查询电脑所在网络的ip地址(windows下,命令行窗口使用:ipconfig进行 ...

  10. 用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!

    618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售 ...