unittest测试分为单元测试,集成测试,功能测试
单元测试:颗粒度最小,一般由开发小组采用白盒测试方式来测试,主要测试单元是否符合“设计”;是指对软件中的最小可测试单元进行检查和验证
集成测试:介于单元测试和系统测试之间,一般由开发小组采用白盒+黑盒的方式来测试,及验证“设计”又验证“需求”主要用来测试模板与模板之间的接口,同时还要测试一些主要的业务功能。
功能测试
颗粒度最大,一般由独立的测试小组采用黑盒的方式来测试,主要测试系统是否符合“要求规格说明书”
白盒测试:主要应用于单元测试阶段,主要是对代码级别的测试,针对程序内部的逻辑结构。测试的手段有:语句覆盖,判断覆盖,条件覆盖,路径覆盖,和条件组合覆盖
黑盒:不考虑程序内部结构和逻辑结构,主要是测试系统的功能是否满足“需求规格说明书”一般会有一个输入值和一个输出值,和期望值做比较。
Unittest重要组成
Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验
返回的结果方法(断言)和一些用例执行前的初始化操作。
unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner
TestCase:测试用例
定义 一个类class继承unittest.testcase,就是一个测试用例
什么是测试用例?
就是一个完整的测试流程,包含测试钱准备环境的搭建(setup),执行测试
测试套件,可以将多个测试用例集合在一起,能一起执行选中的测试用例
通过断言
通过self.Equal比较俩个值是否相同 相同显示ok 不相同报错
生成测试报告
html格式的就是HTMLTestRunner了,HTMLTestRunner是 Python 标准库的 unittest 框架的
一个扩展,它可以生成一个直观清晰的 HTML 测试报告。使用的前提就是要下载 HTMLTestRunner.py
单元测试的流程:首先创建数据包,在模块中维护测试数据(xml,csv)然后创建测试用例导入单元测试模块,开发代码读取数据模块将测试数据传入代码中拿到实际结果,通过断言验证预期和实际结果是否一致,最后导入HtmlTestRunner模块 生成测试报告
读取文件
读取xml文件
from xml.dom import minidom
class Readxml():
def read_xml(self,filename,onename,twoname):
root =minidom.parse(filename)
firstnode =root.getElementsByTagName(onename)[0]
secondnode=firstnode.getElementsByTagName(twoname) [0].firstChild.data
return secondnode