UnitTest测试框架的应用总结
unittest
unittest 是 Python 单元测试框架,类似于 JUnit 框架
意义:
1. 灵活的组织 ui 自动化 / 接口测试用例
2. 让用例高效的执行
3. 断言:方便验证测试用例的结果
4. 集成 html 形式测试报告
1. 一个 class 继承 unittest.TestCase ,即是一个个具体的 TestCase (测试方法均以 test 开头,否则是不被unittest 识别,执行顺序根据( 0-9 , A-Z,a-z ))
2. 每一个用例执行的结果的标识,成功是 . ,失败是 F ,出错是 E
3. 用 setUp() 、 tearDown() 、 setUpClass() 以及 tearDownClass() 可以在用例执行前布置环境,以及在用例执行后清理环境
4. 参数中加 stream ,可以将报告输出到文件:可以用 HTMLTestRunner 输出 html 报告。
5.3.verbosity 参数可以控制执行结果的输出, 0 是简单报告、 1 是一般报告、 2 是详细报告。
6. 多个单个的测试用例集合在一起,就是 TestSuite
unittest
unittest,TestSuite: 测试套件
unittest.TestLoader :负责根据各种标准加载测试并将他们包装在 TestSuite 中
loadTestsFromNames: 返回给定的一组用例名的测试用例的套件
unittest.TextTestRunner: 运行用例
冒烟测试
'需求:
1. 给用例打标签,只运行某些具有标签的用例 比如我们可以在测试方法名称后加上_smkoe表示这是重要的测试方法,需要在每天进行回归。
关键点是:
在测试方法名后加上标签的名字使用dir(ClassName) 的方式获取该类下所有定义的方法名使用addTest() 动态添加用例
2. 自定义用例的执行顺序,方法长的先执行,短的后执行
集成Html测试报告
time = time.strftime('%Y-%m-%d-%H-%M', time.localtime()) # 获取当前时间
dir = 报告路径
file = open(dir, 'wb')
runner = HTMLTestRunner(stream=file,description= 描述信息 )
Service Unavailable(case)
断言