Python之assert断言介绍
在python自动化测试中寻找元素并进行操作。如果很容易找到元素,我相信每个人都可以熟练地编写用例脚本,但单独操作可能不够,有时需要判断预期的结果。

常用
这里介绍一些常用的断言使用方法,可以在一定程度上帮助你判断预期的结果。-
assertEqual
assertNotEqual
assertTrue
assertFalse
assertIsNone
assertIsNotNone
assertEqual 和 assertNotEqual
assertEqual:如果两个值相等,则passs
assertNotEqual:如果两个值不相等,则passs
使用方法:
assertEqual(first,second,msg)其中,first与second进行比较,如果相等,则通过;msg是失败时打印的信息,选择填写;断言assertnotequal可以反向使用。
asserttrue和assertFalse
assertTrue:判断bool值为True,则passs
assertFalse:如果判断bool值为False,则Passs
使用方法:
assertTrue(expr,msg)express输入相应的表达式,如果表达式是真实的,则pass;msg选填;断言assertFalse如果表达式为假,则passs
assertisnone和assertIsNotNone
assertIsNone:不存在,则pass
assertIsNotNone:存在,则pass
使用方法:
assertIsNone(obj,msg)检查某一元素是否存在
相关推荐:Python视频教程
总结:
常用
assertEqual(a,b)a==b assertNotEqual(a,b)a!=b assertTrue(x)bool(x)isTrue assertFalse(x)bool(x)isFalse assertIs(a,b)aisb2.7 assertIsNot(a,b)aisnotb2.7 assertIsNone(x)xisNone2.7 assertIsNotNone(x)xisnotNone2.7 assertIn(a,b)ainb2.7 assertNotIn(a,b)anotinb2.7 assertIsInstance(a,b)isinstance(a,b)2.7 assertNotIsInstance(a,b)notisinstance(a,b)2.7
其它
assertAlmostEqual(a,b)round(a-b,7)==0 assertNotAlmostEqual(a,b)round(a-b,7)!=0 assertGreater(a,b)a>b2.7 assertGreaterEqual(a,b)a>=b2.7 assertLess(a,b)a<b2.7 assertLessEqual(a,b)a<=b2.7 assertRegexpMatches(s,re)regex.search(s)2.7 assertNotRegexpMatches(s,re)notregex.search(s)2.7 assertItemsEqual(a,b)sorted(a)==sorted(b)andworkwithunhahableobjs2.7 assertDictContainsSubset(a,b)allthekey/valuepairsinaexistinb2.7 assertMultiLineEqual(a,b)strings2.7 assertSequenceEqual(a,b)sequences2.7 assertListEqual(a,b)lists2.7 assertTupleEqual(a,b)tuples2.7 assertSetEqual(a,b)setsorfrozens22s.7 assertDictEqual(a,b)dicts2.7 assertMultiLineEqual(a,b)strings2.7 assertSequenceEqual(a,b)sequences2.7 assertListEqual(a,b)lists2.7 assertTupleEqual(a,b)tuples2.7 assertSetEqual(a,b)setsorfrozens22s.7asertDictEqual(a,b)dicts2.7
使用时机:
那么我们什么时候应该使用断言呢?如无特殊目的,断言应用于以下情况:
(1)防御编程
(2)运行时检测程序逻辑
(3)合同检查(如前置条件、后置条件)
(4)程序中的常量
(5)检查文件
(6)例:在防御编程中添加断言
开始在代码中添加注释是一个很好的开始,但人们不喜欢阅读和更新这些注释,它们很快就会过时。但对于断言,我们可以同时编写代码文档,如果这些断言被违反,它将直接导致一个简单和直接的失败。
asserttargetin(x,y,z) iftarget==x: run_x_code() eliftarget==y: run_y_code() else: asserttarget==z run_z_code()
