原文地址: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()

最新文章

  1. 使用 Windows Phone Toolkit 的 Tilt 效果
  2. 关于iis8.5中发布的网站无法连接数据库的解决方案。
  3. PHP中设置时区方法小结
  4. 让UserControl能显示焦点状态
  5. Eclipse启动Tomcat后无法访问项目
  6. Qt 学习之路 :Repeater
  7. [C入门 - 游戏编程系列] 贪吃蛇篇(二) - 食物定义
  8. C++ string类取字符串的左右子串(以特定子串为分界限)
  9. 算法 《霍纳的方法java实践》
  10. 关于Application的onCreate以及Activity生命周期在源码里都是什么时候调用的
  11. net 将手机号码中间的数字替换成星号
  12. python3+Robot Framework+PyCharm环境部署及执行脚本
  13. RedHat7系列(Centos/Debian) FireWall 防火墙 设置
  14. jquery.validate使用详解
  15. 哪些优秀的 Windows 小工具,类似 clover 或 everything
  16. (转)ASP.NET MVC 4 RC的JS/CSS打包压缩功能
  17. JAR 介绍-百度百科
  18. 2.3.3 Button(按钮)与ImageButton(图像按钮)
  19. Linux遇到的问题(一)Ubuntu报“xxx is not in the sudoers file.This incident will be reported” 错误解决方法
  20. JavaScript 移动和触摸框架

热门文章

  1. poj 3155 二分+最小割求实型最小割(最大密集子图)
  2. [NOIP2003] 提高组 洛谷P1039 侦探推理
  3. HDU 6076 (动态规划)
  4. Flex设置PopUpManager创建modal(模态)窗口的背景样式
  5. Flex4分模块下样式动态加载步骤及相关问题的解决
  6. AlertDialog自定义
  7. (二)Commonjs规范与模块化
  8. Delphi字符串加密/解密
  9. 洛谷—— P1785 漂亮的绝杀
  10. [HDU4607]Park Visit(树上最长链)