整理了一些软件测试方面的资料、面试资料(接口自动化、web自动化、app自动化、性能安全、测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~
1.unittest简单运用
-
概念:UnitTest框架是专门用来进行执行代码测试的框架
-
使用UnitTest框架原因:
- 能够组织多个用例去执行
- 提供丰富的断言方法
- 提供丰富的日志与测试结果
-
核心要素
- TestCase 测试用例
- TestSuite 测试组(多个测试用例合到一起)
- TextTestRunner文本执行
- Fixture 测试用例加头尾
2.TestCase测试用例
# TestCase
import unittest
def add(x, y):
return x + y
# 错误显示
# return x / y
class Testcase_01(unittest.TestCase):
"""测试用例"""
def test_01(self): # 测试方法必须以test开头
print(add(1,1))
# 错误显示
# print(add(1,0))
# def test_02(self):
# ...
# def test_03(self):
# ...
if __name__ == '__main__':
unittest.main()
# 正确结果:
.
2
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
# 错误结果:
E
======================================================================
ERROR: test_01 (__main__.Testcase_01)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:/Users/x1c/Desktop/untitled/mocktest.py", line 8, in test_01
print(add(1,0))
File "C:/Users/x1c/Desktop/untitled/mocktest.py", line 4, in add
return x / y
ZeroDivisionError: division by zero
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (errors=1)
复制代码
3.TestSuite多条测试用例集合在一起
import unittest
# 导包
import unittest
def add(a, b):
return a + b
# 继承unittest.TestCase类
class TestCase01(unittest.TestCase):
# 在每条用例执行前执行
def setUp(self):
print("setUp")
# 在每条用例执行后执行
def tearDown(self):
print("tearDown")
# 方法名必须以test开头
def testcase_01(self):
print("testcase_01")
print("1 + 1 = ", add(1, 1))
# self.assertEqual(2, add(1, 2))
def testcase_02(self):
print("testcase_02")
print("2 + 2 = ", add(2, 2))
def testcase_03(self):
print("testcase_03")
print("3 + 3 = ", add(3, 3))
class TestCase02(unittest.TestCase):
# 方法名必须以test开头
def testcase_01(self):
print("TestCase02_testcase_01")
def testcase_02(self):
print("TestCase02_testcase_02")
def testcase_03(self):
print("TestCase02_testcase_03")
# 实例化TestSuite类
suite = unittest.TestSuite()
# 以测试用例类里的每一个方法为单位添加
# suite.addTest(TestCase01("testcase_01"))
# suite.addTest(TestCase01("testcase_02"))
# suite.addTest(TestCase02("testcase_02"))
# 以测试用例类为单位添加
suite.addTest(unittest.makeSuite(TestCase01))
suite.addTest(unitt