文章目录
前言
回归unittest测试框架里面的关键字信息,以及setup,teardown;setupclass,teardownclass的用法
一、回顾单元测试框架
1、python单元测试框架(代码版测试框架):
unittest; pytest ;nose ; behave
2、只能做单元测试吗?No
开发人员自测 开发人员是实现业务功能:开发框架,函数/类 就会存在bug??
设计测试数据,调用自己开发的函数功能、类功能。
代码版测试框架:写用例、执行用例、看执行结果 编写测试代码
3、自动化测试和手工测试的区别:
自动化测试:代码版测试用例 --- 测试框架
测试框架必备的功能:
(1)编写用例 - unitest.TestCase、类名Test开头,用例名test_, 断言-self.assertXXXX / assert 表达式
(2)收集用例 - TestLoader(从多个用例文件里面去收集).discover(目录)-文件名以test开头, TestSuite
(3)执行用例、生成测试报告。对比期望与实际结果 - runner运行器。TextTestRunner
(4)查看测试报告
功能测试:
设计测试数据、写用例、执行用例、看执行结果
4、自动化测试的几个流程性的大类:
TestCase - 测试用例
TestSuite - 测试套件
TestLoader - 加载用例
TestRunner - 执行用例 TextTestRunner/HtmlTestRunner/BeautifulReport/unittestreport-测试报告
TestResult - 测试结果
assert 断言
AssertionError 断言失败
二、单元测试框架步骤注意事项
断言:期望结果与实际结果比对。 assert
assert 实际与期望的比对表达式(True False)
1、导入unittest模块、被测文件或者其中的类
2、创建一个测试类,并继承unittest.TestCase
3、定义测试函数,函数名以test_开头(表示一个测试用例)。
4、测试用例中:
4.1 测试数据、期望结果
4.2 用例步骤
4.3 断言
AssertionError: 断言失败的报错。
每条用例之间互不干扰。
用例的执行顺序:用例名称按照 ASCII码的大小规则:0~9<A~Z<a~z
(1)TestSuite
unittest.TestSuite()
均了解即可:
方法一:addTest(测试类名("用例名")) 添加一个测试用例
方法二:addTests([]) 添加一个测试用例的列表
(2)TestLoader
可通过类名、模块名、目录三种方式去收集用例。
方法一:目录(常用)
unittest.TestLoader().discover(搜索目录)
默认在test*.py中搜索用例
请习惯以test_*.py风格
(3)# HtmlTestRunner
(4)# unittestReport:
查看地址:https://gitee.com/lemon-test-official(第三方开发的)
(5)# BeautifulReport
安装:pip install BeautifulReport
github: https://github.com/TesterlifeRaymond/BeautifulReport
手工测试中用例包含的要素:
1、用例标题
2、前置条件
3、执行步骤
4、测试数据
5、预期结果
优先级、模块名、编号、实际结果、复现概率、测试人员
Fixture(测试环境创建和销毁)
夹测试用例
前置和后置之间夹的是:一个测试用例(肉夹馍)
1、测试用例的准备工作:setup()
2、测试用例的清理工作:teardown()
夹测试类
前置和后置之间夹的是:一个测试类(汉堡包)
@classmethod
3、测试类的准备工作:setupClass()
4、测试类的清理工作:teardownClass()
三、前后置清理工作
1、setupClass teardownClass
# 类下面的所有用例,只做一次准备工作,清理工作。
# 夹心饼干-夹了1个类 准备工作 类下面的所有用例全部完成 清理工作。
2、setup teardown
# 夹心饼干-夹了1个用例 准备工作 类下的第一个用例 清理工作
# 夹心饼干-夹了1个用例 准备工作 类下的第二个用例 清理工作
# 夹心饼干-夹了1个用例 准备工作 类下的第三个用例 清理工作
# 夹心饼干-夹了1个用例 准备工作 类下的第.......个用例 清理工作
总结
暂无