点击蓝字关注这个神奇的公众号~
** Unittest初体验**
- 前言
Unittest优点
UnitTest是Python自带的一个单元测试框架,具有以下特点:
1)轻量、简易,易于上手
2)根据自己的要求,定制优化,如httprunner就是基于unittest完成的
3)能够组织多个用例去执行
4)提供丰富的断言方法
5)测试结果易于查看
- unittest原理
unittest原理说明:
(1)Unittest 核心组成:testcase、testsuite、testrunner、testloader、testfixture
(2)原理说明:unittest的组成部分TestCase即一个测试用例,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证,而多个测试用例集合在一起,就是TestSuite,TestLoader把TestCase加载到TestSuite中,TextTestRunner是来执行测试用例的,测试的结果会保存到TextTestResult实例中,而对一个测试用例环境的搭建和销毁,是一个fixture。
- 接口自动化原料准备
(1)基本组成模块—TestCase
①用于编写测试用例
②基本组成=测试类+测试方法(以test开头)+断言
③具有独立性,继承基类unittest.TestCase
④测试方法名称以test开头
⑤使用断言assert*()
(2)基本组成模块—TestSuite
①用于加载TestCase
②加载测试用例方式
a. 加载单个测试用例
suite.addTest(“测试类”, (“测试方法”))
b. 加载整个测试类
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase())
c. 加载整个测试模块
suite.addTest(loader.loadTestsFromModule())
d. 加载某一路径下所有文件
suite.addTest(loader.discover(“路径”))
(3)基本组成模块—run()
运行执行
(4)基本组成模块—data(Excel)
用于测试功能点/场景编写,测试结果写入
(5)基本组成模块—测试报告
导入模块HTMLTestRunnerNew用于生成测试报告,将测试结果传入,并以HTML形式展现
- 接口自动化实践
(1) 测试接口,由图可见是个查询接口,有2个参数userID、need_parent
(2) 测试数据准备,将该接口的各种测试场景整合到Excel表中
(3) 编写测试case,具体流程见截图
①从编写的Excel文件中获取单个测试case
②对测试接口发起http请求
③对比预期结果和实际结果,在Excel中写入测试结果(通过/不通过)
(4) 将测试用例添加到测试套件中
(5) 将运行结果以HTML报告形式打印
(6) 运行结果查看
在运行目录下的reports文件夹中生成html测试报告
- 总结
上面流程是Unittest的一个简单的测试流程,除此之外,还有其他的功能,如跳过测试与预计的失败模块、setUp() 和 tearDown()使用、subTest()方法使用等,如果感兴趣可以去深入了解Unittest框架
Qtest是360旗下的专业测试团队!
是WEB平台部测试技术平台化、效率化的先锋力量!