接口自动化----unittest

unittest

unittest框架会把以test_开头的实例方法识别为用例,同时会自动执行

如果不是test_方法,那么不会被当做测试用例执行

一、导入unittest

       import unittest         系统内置模块,不需要安装

二、定义类

  

class TestMulti(unittest.TestCase):

  定义继承unittest.TestCase的类:TestMulti

        如果没有继承TestCase,方法以test_开头,也不会执行

三、类中创建实例方法

   

def test_negative_multi(self):

    

   注意:

            1、  在类中定义的方法,一定要以test_开头 

            2、 一定要以test_开头,如果不以test_开头,将无法做断言

            3、创建实例方法,用于执行一条测试用例

四、获取实际结果

  

real_result = MathOperation(-2,-4).multiply()

  

五、验证实际结果与预期结果是否一致

except_result = -8
self.assertEqual(except_result,real_result,msg='测试两个负数相乘失败')

 

      assertEqual 

         第一个参数为期望值,第二个参数为实际值

         第三个参数。msg为断言失败的提示信息

六、运行测试用例

if __name__ == '__main__':
   unittest.main()

  

      1、 以后运行unittest的时候,我们就调用父类的main()方法来运行

      2、unittest框架,会把以test_开头的方法识别为用例,同时会自动执行

     3、如果不是test_开头的方法,那么不会被当做用例自动执行

     4、执行的总用例数,所有以test_开头的实例方法总数

七、顺序

   每个测试方法是以test_开头的实例方法名的ASCII码数字从小到大执行。

   

def test_negative_multi(self):
def test_neg_pos_multi(self):

  字母a ASCII码        ord('a')   结果:97

       _    ASCII码           ord('_')    结果:95

     会先执行:def test_neg_pos_multi(self):

八、其他断言

    参考网址

               https://www.cnblogs.com/mq0036/p/7205626.html

     self.assertIsNone()               不为空

    self.assertIs(a,b)                    判断a 与b的对象是否相同,成立则True,否则False

    self.assertTrue(a,msg=none)    #判断a是否为True

    self.assertIsInstance(a,b)            判断a的数据类型是否为b,isinstance(a,b) 成立则通过,否则失败

   self.assertIn(a,b)                      判断a in b是否成立,正确则True,否则为False

   

九、注意

      把鼠标放在实例方法名上来运行用例,那么只会运行当前一条用例。

      在类的上面,点击鼠标来运行,会运行多条用例

原文地址:https://www.cnblogs.com/taiyangfeng/p/12524731.html