Unittest初体验

点击蓝字关注这个神奇的公众号~

** Unittest初体验**


  1. 前言

Unittest优点

UnitTest是Python自带的一个单元测试框架,具有以下特点:

1)轻量、简易,易于上手

2)根据自己的要求,定制优化,如httprunner就是基于unittest完成的

3)能够组织多个用例去执行

4)提供丰富的断言方法

5)测试结果易于查看

  1. unittest原理

unittest原理说明:

(1)Unittest 核心组成:testcase、testsuite、testrunner、testloader、testfixture

(2)原理说明:unittest的组成部分TestCase即一个测试用例,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证,而多个测试用例集合在一起,就是TestSuite,TestLoader把TestCase加载到TestSuite中,TextTestRunner是来执行测试用例的,测试的结果会保存到TextTestResult实例中,而对一个测试用例环境的搭建和销毁,是一个fixture。


  1. 接口自动化原料准备

(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. 接口自动化实践

(1) 测试接口,由图可见是个查询接口,有2个参数userID、need_parent

(2) 测试数据准备,将该接口的各种测试场景整合到Excel表中

(3) 编写测试case,具体流程见截图

①从编写的Excel文件中获取单个测试case

②对测试接口发起http请求

③对比预期结果和实际结果,在Excel中写入测试结果(通过/不通过)

(4) 将测试用例添加到测试套件中

(5) 将运行结果以HTML报告形式打印

(6) 运行结果查看

在运行目录下的reports文件夹中生成html测试报告


  1. 总结

上面流程是Unittest的一个简单的测试流程,除此之外,还有其他的功能,如跳过测试与预计的失败模块、setUp() 和 tearDown()使用、subTest()方法使用等,如果感兴趣可以去深入了解Unittest框架


Qtest是360旗下的专业测试团队!

是WEB平台部测试技术平台化、效率化的先锋力量!