[转]python_常用断言assert

原文地址: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()
时间: 2024-11-03 21:25:18

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

Xunit常用断言整理&amp;带一点Shouldly介绍

每次学新东西的时候总要先祭出官方文档的:https://xunit.github.io/ 搞.net core对Xunit应该不会陌生,毕竟也没几个可以选的,刚开始用,自己整理点东西怕忘了,大神就不用看了. [安装] 在Nuget中搜索xunit,选择xUnit.net和xunit.runner.visualstudio包. [Tips] 1.两种测试类型:[Fact][Theory] 2.其中[Theory]有三种传参类型:InlineData.ClassData.PropertyData 3

C语言中断言ASSERT

我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非"报错". 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句: if(假设成立) { 程序正常运行: } else { 报错&&终止程序!(避免由程序运行引起更大的错误) } 但是这样写的话,就会有无数个if语句,甚至会出现,

C++断言assert

assert宏是在标准库中提供的.它在库文件<cassert>中声明,它能够在程序中測试逻辑表达式,假设指定的逻辑表达式是false,assert()就会终止程序,并显示诊断消息.关闭断言使用#define NDEBUG,该语句会忽略转换单元中的全部断言语句.并且这个指令仅放在#include <cassert>之前才有效.示比例如以下: #include <iostream> #define NDEBUG //关闭断言 #include <cassert>

JUnit的断言 Assert

何为 断言: 断言不仅仅是 一个报错函数,它也是一个宏,并且作用并非"报错". assert()的用法像是一种"契约式编程",在我的理解中,它所表达的意思就是 程序在我的假设条件下,能够正常良好的运作, 其实就相当于一个if语句. if(假设成立){ 程序正常运行 }else{ 报错或者终止程序! 避免由程序运行引起 更大的错误 } 它的用法总结以及注意事项: 1).在函数开始处检验传入参数的合法性: 2).每个断言Assert 只检验一个条件,因为同时检验多个条件

01 java断言assert初步使用:断言开启、断言使用

参考文件:http://blog.sina.com.cn/s/blog_59c9412d0100fd55.html 1 说明 java断言assert是jdk1.4引入的. jvm断言默认是关闭的. 断言可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”. 断言只适用复杂的调式过程. 断言一般用于程序执行结构的判断,千万不要让断言处理业务流程. 2 判断eclipse是否开启了断言 代码如下: public static void main(String args[

断言Assert的使用

转载地址:http://www.cnblogs.com/moondark/archive/2012/03/12/2392315.html 我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”. 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句: if(假设成立){ 程序正常运行:}else{ 报错&&终止程序

断言(assert)的用法

我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”. 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句: if(假设成立){ 程序正常运行:}else{ 报错&&终止程序!(避免由程序运行引起更大的错误) } 但是这样写的话,就会有无数个if语句,甚至会出现,一个if语句的括号从文件头到文件尾,并且大多数情

自动化测试常用断言的使用方法(python+selenium)

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

UI自动化之特殊处理四(获取元素属性\爬取页面源码\常用断言)

获取元素属性\爬取页面源码\常用断言,最终目的都是为了验证我们实际结果是否等于预期结果 目录 1.获取元素属性 2.爬取页面源码 3.常用断言 1.获取元素属性 获取title:driver.title() 获取元素文本:driver.find_XX().text 获取元素标签:driver.find_XX().tag_name 获取元素的其他属性的值:driver.find_XX().get_attribute("class") 获取class属性的值 获取文本框输入的值:drive