观看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自动化测试