断言
五断言得测试用例是无效的,这是因为一个功能自动化全部已实现,在每次版本迭代中执行测试用例,执行的结果必须是权威的,也就是说自动化用例执行结果是通过的,那么这个功能就是无功能性或逻辑的问题的,在自动化测试中最忌讳的是自动化测试用例通过,结果功能是存在问题,自动哈测试用例本来更多应用在回归测试中,发现问题不是特别多,如果再出现自动化测试通过,但功能或逻辑还存在问题,导致结果就是投入人力去做自动化测试结果是没多大意义的,所以每个测试用例必须要有断言。
在测试的结果中自有两种可能,一种是执行通过,另一种是执行失败,也就是功能存在问题。
我们在执行测试用例时,怎么来判断这条用例是否通过呢?唯一的办法就是拿实际结果和预期结果进行比较,如果一致用例就是通过的,否则用例就是失败的。在python中这种比较的方法就叫做断言,unittest框架提供了一系列的断言方法。
一、常用的断言方法:
| 序号 | 断言方法 | 描述 |
| 1 | assertEqual(arg1, arg2, msg=None) | 验证arg1=arg2,不等则fail |
| 2 | assertNotEqual(arg1, arg2, msg=None) | 验证arg1 != arg2, 相等则fail |
| 3 | assertTrue(expr, msg=None) | 验证expr是true,如果为false,则fail |
| 4 | assertFalse(expr,msg=None) | 验证expr是false,如果为true,则fail |
| 5 | assertIs(arg1, arg2, msg=None) | 验证arg1、arg2是同一个对象,不是则fail |
| 6 | assertIsNot(arg1, arg2, msg=None) |
验证arg1、arg2不是同一个对象,是则fail |
| 7 | assertIsNone(expr, msg=None) | 验证expr是None,不是则fail |
| 8 | assertIsNotNone(expr, msg=None) | 验证expr不是None,是则fai |
| 9 | assertIn(arg1, arg2, msg=None) | 验证arg1是arg2的子串,不是则fail |
| 10 | assertNotIn(arg1, arg2, msg=None) | 验证arg1不是arg2的子串,是则fail |
1.assertEqual
assertEqual方法测试两个值是否相等,如果不相等则测试失败。这里说得两个值相等不仅仅指的是内容,还有类型。如果内容一致,但是类型不一致,两个值是不想等的,测试会失败。

2.asserTrue
asserTrue返回的是boolean类型,它主要对返回的测试结果是boolean类型的校验,这里以百度搜索输入框为案例,来验证搜索输入框是否可编辑,is_enabled方法返回的结果是True

3.assertFalse
assertFalse和assertTrue一致,都是对返回的boolean类型做校验,唯一不同的是assertFalse返回的结果是False,以新浪邮箱登陆页面为例,取消自动登陆按钮后,方法is_elected返回的是False

4.assertIn
assertIn指的是一个值是否在另外一个值的范围内,还是以百度首页的url为案例测试https://www.baidu.com是否在https://www.baidu.com的范围内

二、断言的注意事项
1.不正确的if应用

上面的代码不论怎么执行,这个测试用例都是通过的,结果永远不会出现fail的结果,只是在结果会打印出fail文本信息,但是结果是pass的,一个测试用例只有两种结果,要么pass,要么fail
2.不正确的异常应用

如上代码和在测试用例中应用 if else 的结果是一样的,即使自动登录未勾选测试用例的结果也是 pass 的,另外在自动化测试中尽量不要应用打印结果来判断测试用例的情况,用例如果在代码错误或者功能有 bug 的情况下就让错误或者失败,而不是结果显示 pass,只有功能正常的测试用例结果才是 pass 的

浙公网安备 33010602011771号