原文地址:http://www.jianshu.com/p/eea0b0e432da

python自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断。

  • 常用

  • 这里介绍几个常用断言的使用方法,可以一定程度上帮助大家对预期结果进行判断。

      • assertEqual
      • assertNotEqual
      • assertTrue
      • assertFalse
      • assertIsNone
      • assertIsNotNone
    • assertEqual 和 assertNotEqual

      • assertEqual:如两个值相等,则pass
      • assertNotEqual:如两个值不相等,则pass
      • 使用方法:
        assertEqual(first,second,msg)其中firstsecond进行比较,如果相等则通过;msg为失败时打印的信息,选填;断言assertNotEqual反着用就可以了。
    • assertTrue和assertFalse

      • assertTrue:判断bool值为True,则pass
      • assertFalse:判断bool值为False,则Pass
      • 使用方法:
        assertTrue(expr,msg)其中express输入相应表达式,如果表达式为真,则pass;msg选填;断言assertFalse如果表达式为假,则pass
    • assertIsNone和assertIsNotNone

      • assertIsNone:不存在,则pass
      • assertIsNotNone:存在,则pass
      • 使用方法:
        assertIsNone(obj,msg)检查某个元素是否存在
    • 总结:

    • 常用
      assertEqual(a, b)     a == b
      assertNotEqual(a, b) a != b
      assertTrue(x) bool(x) is True
      assertFalse(x) bool(x) is False
      assertIs(a, b) a is b 2.7
      assertIsNot(a, b) a is not b 2.7
      assertIsNone(x) x is None 2.7
      assertIsNotNone(x) x is not None 2.7
      assertIn(a, b) a in b 2.7
      assertNotIn(a, b) a not in b 2.7
      assertIsInstance(a, b) isinstance(a, b) 2.7
      assertNotIsInstance(a, b) not isinstance(a, b) 2.7

      其它

      assertAlmostEqual(a, b)     round(a-b, 7) == 0
      assertNotAlmostEqual(a, b) round(a-b, 7) != 0
      assertGreater(a, b) a > b 2.7
      assertGreaterEqual(a, b) a >= b 2.7
      assertLess(a, b) a < b 2.7
      assertLessEqual(a, b) a <= b 2.7
      assertRegexpMatches(s, re) regex.search(s) 2.7
      assertNotRegexpMatches(s, re) not regex.search(s) 2.7
      assertItemsEqual(a, b) sorted(a) == sorted(b) and works with unhashable objs 2.7
      assertDictContainsSubset(a, b) all the key/value pairs in a exist in b 2.7
      assertMultiLineEqual(a, b) strings 2.7
      assertSequenceEqual(a, b) sequences 2.7
      assertListEqual(a, b) lists 2.7
      assertTupleEqual(a, b) tuples 2.7
      assertSetEqual(a, b) sets or frozensets 2.7
      assertDictEqual(a, b) dicts 2.7
      assertMultiLineEqual(a, b) strings 2.7
      assertSequenceEqual(a, b) sequences 2.7
      assertListEqual(a, b) lists 2.7
      assertTupleEqual(a, b) tuples 2.7
      assertSetEqual(a, b) sets or frozensets 2.7assertDictEqual(a, b) dicts 2.7
      • 使用时机:

        那么我们什么时候应该使用断言呢?如果没有特别的目的,断言应该用于如下情况:

        • 防御性的编程
        • 运行时对程序逻辑的检测
        • 合约性检查(比如前置条件,后置条件)
        • 程序中的常量
        • 检查文档
      • 例:防御性编程中添加断言
        在代码开始添加注释是个好的开端,但是人们都不太喜欢读和更新这些注释,这些注释会很快变得过时。但对于断言,我们可以同时对这块代码编写文档,如果这些断言被违反了,会直接引起一个简单而又直接的失败。
        assert target in(x, y, z)
        if target ==x:
        run_x_code()
        elif target ==y:
        run_y_code()
        else:
        assert target == z
        run_z_code()

[转]python_常用断言assert的更多相关文章

  1. python_常用断言assert

    python自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 常用 这里介绍几个常用断言的使用方法 ...

  2. java 中的断言assert的使用

    一.assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大的革新. 从理论上来说,通过 assertion方式可以证明程 ...

  3. 断言(assert)

    断言(assert):用来调试.测试代码. 格式: assert 布尔表达式: 字符串 (如果布尔表达式为false时,这个字符串才会显示). 注意: assert默认是关闭的,使用时需要使用&quo ...

  4. Selenium3 + Python3自动化测试系列五——常用断言Assertion

    断言Assertion 验证应用程序的状态是否同所期望的一致. 常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该复选框是否被勾选. selenium 提供了三种模式的断言:a ...

  5. SpringBoot(20)---断言(Assert)

    SpringBoot(20)---断言(Assert) 我们在写单元测试的时候,除了接口直接抛异常而导致该单元测试失败外,还有种是业务上的错误也代表着该单元测试失败.好比我们在测试接口的时候, 该接口 ...

  6. 5、Python断言及常用断言函数总结

    Python断言 Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Python 解释器会报 As ...

  7. Python断言及常用断言函数总结

    Python断言 Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Python 解释器会报 As ...

  8. 断言(assert)简介

    java中的断言assert的使用 一.assertion的意义和用法 J2SE 1.4在语言上提供了一个新特性,就是assertion功能,他是该版本再Java语言方面最大的革新. 从理论上来说,通 ...

  9. 断言(assert)的用法

    我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”. 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解 ...

随机推荐

  1. devstack脚本安装Openstack总结(转载)

    1:vmware 基本设置 我采用的vmware workstation 8.0的版本,其他版本应该都是没问题.我是把虚拟机放在NAT的网络. 虚拟机就单块网卡就可以. 如果你希望可以在dashboa ...

  2. Epic Moments

    网络流序号要考虑超级源和超级汇 SAP要记得即使还原当前弧 二分图匹配中v.w要取局部变量 RMQ时记得开大数组 树链剖分记得结点要变为线段树中的下标

  3. POJ 2375 Cow Ski Area【tarjan】

    题目大意:一个W*L的山,每个山有个高度,当且仅当一个山不比它相邻(有公共边的格子)的山矮时能够滑过去,现在可以装化学电梯来无视山的高度滑雪,问最少装多少电梯使得任意两点都可到达 思路:最后一句话已经 ...

  4. Java设计模式之(工厂模式)

    工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...

  5. [Usaco2007 Oct] Super Paintball超级弹珠

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 489  Solved: 384[Submit][Status][Discuss] Description ...

  6. poj1308+HOJ1325,判断是否为树

    POJ 应该是判断是否为简单无环连通图,用并查集直接秒杀即可,而HOJ的是有向树,还需判断所有点的入度必需小于2,用一个类似hash[]数组判断一下即可, ////判断树之一:入度<=1:三:点 ...

  7. 利用Cufon技术渲染文字的简单示例

    Cufon是一种能够根据指定的字体渲染文字的技术.今天试用了下,主要有几个步骤: 1.下载Cufon.js(http://cufon.shoqolate.com/generate/) 2.获取需要渲染 ...

  8. 开源项目SwipeBackLayout的问题处理

    在安卓系统4.4会出现滑动时底层没有之前的activity界面?解决:在主界面设置如下: <item name="android:windowIsTranslucent"&g ...

  9. Go和HTTPS(TLS)

    原文链接: http://studygolang.com/wr?u=http%3a%2f%2ftonybai.com%2f2015%2f04%2f30%2fgo-and-https%2f 近期在构思一 ...

  10. python读取大文件的方法

    python计算文件的行数和读取某一行内容的实现方法 :最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的 ...