1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python接口自动化(二十三)--unittest断言——上(详解)

python接口自动化(二十三)--unittest断言——上(详解)

时间:2021-09-13 02:39:53

相关推荐

python接口自动化(二十三)--unittest断言——上(详解)

简介

在测试用例中,执行完测试用例后,最后一步是判断测试结果是 pass 还是 fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。用 unittest 组件测试用例的时候,断言的方法还是很多的,下面介绍几种常用的断

言方法:assertEqual、assertIn、assertTrue。想了解更多可以点击 传送门 看一下最后的小结有大致介绍。

unittest断言计划是分上、中、下三篇有简单到复杂的给小伙伴们介绍一下,填补一下这部分的空白。

基本断言方法

基本的断言方法提供了测试结果是True还是False。所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。

序号 断言方法 断言描述

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,是则fail

9 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail

10 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail

11 assertIsInstance(obj, cls, msg=None) 验证obj是cls的实例,不是则fail

12 assertNotIsInstance(obj, cls, msg=None) 验证obj不是cls的实例,是则fail

简单的case

1、实例,写了四个测试用例,其中第四个是失败的

2、运行结果(python3)

python2

3、在python2中执行的结果,中文编码不对,没正常显示中文,遇到这种情况,可以自定义异常输出,python3正常。有时候也可以根据实际需要采用自定义异常输出,要灵活掌握。

参考代码

1 # coding=utf-8

2 #1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

3

4 #2.注释:包括记录创建时间,创建人,项目名称。

5 ‘’’

6 Created on -4-25

7 @author: 北京-宏哥

8 Project:学习和使用unittest框架编写断言

9 ‘’’

10 #3.导入unittest模块

11 import unittest

12 #4.编写测试用例和断言

13

14 class Test(unittest.TestCase):

15 def test01(self):

16 ‘’‘判断 a == b ‘’’

17 a = 1

18 b = 1

19 self.assertEqual(a, b)

20 def test02(self):

21 ‘’‘判断 a in b ‘’’

22 a = “hello hongge”

23 b = “hello hongge and world!”

24 self.assertIn(a, b)

25

26 def test03(self):

27 ‘’‘判断 a is True ‘’’

28 a = True

29 self.assertTrue(a)

30

31 def test04(self):

32 ‘’‘失败案例’’’

33 a = “北京-宏哥”

34 b = “hongge”

35 self.assertEqual(a, b)

36

37 ifname== “main”:

38 unittest.main()

自定义异常输出

1、以 assertEqual 为例分析,在pycharm中通过ctrl(command)+🖱️左键我们可以定位到方法的位置:

python3

python2

2、python2翻译:如果两个对象不能相等,就返回失败,相当于 return: first==second

python3如果你断言的 语句正确 则什么反应都没有,但是如果你出错之后 就会报出 AssertionError 并且错误可以自己填写。

3、这里除了相比较的两个参数 first 和 second,还有第三个参数 msg=None,这个 msg 参数就是遇到异常后自定义输出信息

4、参考代码

coding=utf-8

#1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

#2.注释:包括记录创建时间,创建人,项目名称。

‘’’

Created on -4-25

@author: 北京-宏哥

Project:学习和使用unittest框架编写断言

‘’’

#3.导入unittest模块

import unittest

#4.编写测试用例和断言

class Test(unittest.TestCase):

def test01(self):

‘’‘判断 a == b ‘’’

a = 1

b = 1

self.assertEqual(a, b)

def test02(self):

‘’‘判断 a in b ‘’’

a = “hello hongge”

b = “hello hongge and world!”

self.assertIn(a, b)

def test03(self):'''判断 a is True '''a = Trueself.assertTrue(a)def test04(self):'''失败案例'''a = "北京-宏哥"b = "hongge"self.assertEqual(a, b,msg='失败原因: %s!=%s'%(a,b))

ifname== “main”:

unittest.main()

小结

unittest断言开篇就介绍这里,另外大家也不要纠结python2或者python3,建议小伙伴们使用python3,因为python2到官方就好像不会维护了!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。