- 在自动化用例中使用断言,当断言失败时,unittest在测试报告中会标记为失败(Fail)。
- 当元素定位失败时,测试报告中会标记为错误(Error)
Python3+unittest 中使用断言有两种选择
- 使用Python的断言 Assert
- 使用unittest的断言(TestCase类的断言)
Python的断言 Assert
url_exp = "https://www.baidu.com"
assert url_exp == "http://www.baidu.com", "自动化测试失败,url和预期不一致!"
image.png
unittest的断言
url_exp = "https://www.baidu.com"
self.assertEqual(url_exp, "http://www.baidu.com", msg="自动化测试失败,url和预期不一致")
image.png
可以看出,测试报告中:
- Python自身的断言中的变量只显示了变量名,没有显示变量对应的值。
- unittest的断言显示出了变量对应的值,更易于查看测试结果。
所以,建议使用unittest的断言进行自动化测试。
断言失败,用例继续执行
当一个.py文件中有3个testcase,分别为:
- testcase01
- testcase02
- testcase03
断言失败,不会影响其他testcase的执行。自动化用例会继续执行,不会停止执行。
unittest常用断言
| 序号 | 方法 | 解释 |
|---|---|---|
| 1 | assertEqual(a, b) | 判断ab是否相等 |
| 2 | assertNotEqual(a, b) | 判断ab不相等 |
| 3 | assertIs(a, b) | 判断a是b |
| 4 | assertIsNot(a, b) | 判断a不是b |
| 5 | assertIsNone(a) | 判断a是不是None |
| 6 | assertIsNotNone(a) | 判断a不是None |
| 7 | assertIn(a,b) | 判断a在b中,此时a与b可以相等 |
| 8 | assertNotIn(a, b) | 判断a不在b中 |
| 9 | assertIsInstance(a, b) | 判断a是否属于b的实例 |
| 10 | assertNotIsInstance(a, b) | 判断a不属于b的实例 |
| 11 | assertGreater(a, b) | 判断a > b |
| 12 | assertGreaterEqual(a, b) | 判断a >= b |
| 13 | assertLess(a, b) | 判断a < b |
| 14 | assertLessEqual(a, b) | 判断a <= b |













网友评论