python unittest使用

观看B站小猿老师视频,视频连接 https://www.bilibili.com/video/av27203819?from=search&seid=1836273909284955143

认识assert断言

断言的比较运算符,assert可以使用比较运算:‘==’,‘!=’,’<’,’>’,’>=’,’<='等符号来比较。
assert语法格式:
assert 1 == 1
assert 2 + 2 == 2 * 2
断言作用:
1.检查文档
2.具有一定的判断效果
3.防御性编程
使用方法:
assertEqual(first,second,msg)其中first和second比较,如果相等则通过,msg为失败时打印的信息,选填;断言 assertNotEqual反着用就可以了。
1)assertTrue和assertFalse


    assertTrue: 判断bool值为True,则pass
		 assertFalse:判断bool值为False,则Pass
		 Assert语句案例:
				 assert 3 > 5,'not true'
				 Traceback (most recent call last):
					  File "E:/学习资料/自动化测试/pythonTest/com/test/unittest.py", line 4, in <module>
					    assert 3 > 5,'not true'
					AssertionError: not true

断言正确无输出,执行下一步,错误回输出
2)try…except…

try:
					    print('请输入一个整数>>>')
					    a = int(input())
					    print('输入的值为:', a)
					except:
					    print('您输入的有误,请重新输入')
					   num = int(intput('请输入一个整数:'))
					   if num > 0:
					   		......
					   else:
					   		.....	   		

3)错误、异常、断言区别:
错误:代码运行前的语法或者逻辑错误,语法错误在执行前修改,逻辑无法修改
异常:
异常产生:检查到错误且解释器认为是异常,抛出异常
异常处理:截获异常,忽略或者终止处理异常
断言:就是拿实际的结果与预期的结果进行比较。断言就是比的过程

unittest单元测试框架

测试用例(testCase):是为了某个特殊目标而编制的一组测试输入,执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定的需求。

介绍unittest中的4个重要的概念:

1)Test Fixture: 就是Setup()和TearDown()而对一个测试用例环境的搭建和销毁,是一个fixture
2)Test Case:一个Test Case就是一个测试用例
3)Test Suite:是一个测试用例集合
理解:
2)Test Case: 一个Test Case就是一个测试用例
3)Test Suite: 一个测试用例集合

单元测试的加载方式有2种:

一、通过unittest.main()来启动单元测试的测试模块:
注意:这里不能有和unittest名字一样的py文件,否则会报module ‘unittest’ has no attribute ‘TestCase’

import unittest  # 导入unittest

class MyTestCase(unittest.TestCase):
    def setUp(self):
        print('我是setup,环境预测')

    def test_something(self):
        print('测试用例')
        # 断言
        self.assertEquals(True,True)

    def tearDown(self):
        print('环境销毁')

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

输出:环境预测,测试用例,断言,环境销毁
二、通过添加到testsuite集合中再加载所有的被测试对象,而testsuit里存放的就是单元测试的用例
testsuite加载集合案例:

import unittest

class TestCase1(unittest.TestCase):
    def testCase1(self):
        print("this is one")

    def testCase2(self):
        print("this is two")


class TestCase2(unittest.TestCase):
    def testCase1(self):
        print("this is three")

    def testCase2(self):
        print("this is four")

if __name__ == '__main__':
    suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
    suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
    suite = unittest.TestSuite([suite1, suite2])
    unittest.TextTestRunner(verbosity=2).run(suite)

输出结果:会依次执行,输出 one, two, three, four

unittest单元测试框架总结:

1、提供很多测试方法
2、ununittest单元测试框架来进行web自动化测试

猜你喜欢

转载自blog.csdn.net/danWuDe/article/details/83833912
今日推荐