2022/05/22学习内容
整理时间:2022/05/23
参考资料:https://www.bilibili.com/video/BV1NM4y1K73T?p=1&spm_id_from=333.851.header_right.history_list.click
进入新阶段-unittest
unittest基本使用
1.pytest与unittest
1)第三方插件,较好用
2)python自带模块,兼容性强
2.unittest优势
1)能执行多用例
2)断言丰富
3)日志与测试结果丰富
3.一些方法
1)TestCase:测试用例–用类的方式组织对一个功能的多项测试
2)Fixture:夹具–固定测试环境
3)TestSuite:测试套件–组织多个TestCase
4)TestRunner:测试执行–执行TestSuite并导出测试结果TestResult
4.入门案例
test_Indoor1.py
1)步骤
创建测试类
书写测试方法
执行测试
import unittest
def setUpModule():
print("setUpMoudle")
def tearDownModule():
print("tearDownModule")
class TestOne(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass")
@classmethod
def tearDownClass(cls):
print("tearDownClass")
def setUp(self):
print("setUp")
def tearDown(self):
print("tearDown")
def test_01(self):
print("这是test_01")
def test_02(self):
print("这是test_02")
if __name__ == '__main__':
unittest.main()
5.子测试subtest
test_Indoor2.py
1)用于执行多个相似的测试(参数不同)并得到多次测试结果
2)unittest夹具
import unittest
def setUpModule():
print("setUpMoudle")
def tearDownModule():
print("tearDownModule")
class NumbersTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("setUpClass")
@classmethod
def tearDownClass(cls):
print("tearDownClass")
def setUp(self):
print("setUp")
def tearDown(self):
print("tearDown")
def test_even(self):
for i in range(0, 6):
# 有子测试,将运行全部结果
with self.subTest(i=i):
self.assertEqual(i % 2, 0)
# 无子测试,只有一个结果
# self.assertEqual(i % 2, 0)
if __name__ == '__main__':
unittest.main()
6.TestSuite测试套件
test_Indoor3.py
1)步骤
创建TestSuite对象
添加测试内容
运行TestLoader
生成测试报告TestReport
import unittest
from unittest import TextTestRunner
from unittest import TestResult
from unitcode.test_Indoor1 import TestOne
suite = unittest.TestSuite()
# 添加单个TestCase
# suite.addTest(TestOne("test_01"))
# 添加某个测试类的多个方法
# suite.addTests([TestOne("test_01"), TestOne("test_02")])
# suite.addTests(map(TestOne, ["test_01", "test_02"]))
# 添加测试类的所有方法
from unittest.loader import makeSuite
suite.addTest(makeSuite(TestOne))
# 执行TestSuite方法一
# runner = TextTestRunner()
# runner.run(suite)
# 执行TestSuite方法二
# 当前目录下的report里将生成格式为HTML的测试报告
import HtmlTestRunner
runner = HtmlTestRunner.runner.HTMLTestRunner()
runner.run(suite)
进入新阶段-接口测试
接口测试
1.接口测试概念
1)广义概念:系统与系统间的通讯协议/规范
user插口
库中提供的类与方法
web数据接口
2)狭义概念:web数据接口,后端服务器通过http形式接受请求返回响应数据
前后端分离的接口
第三方接口
2.接口数据类型
1)xml:相对古老
2)json:目前相对主流,具有相同含义的信息传输信息量较小