说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/100097477
目录
二、UT开展
4.UT执行
1.回顾
2.借助于单元测试框架:unittest
- 在执行单元测试之前,需要创建一个被测对象(函数),那么在IDE中创建一个计算器的测试函数
- 在新创建一个名为unittest_case_cdtaogang的python包,在包下创建模块,在模块中导入以上定义的被测对象,通过unittest模块实现单元测试
- 执行测试,测试被测对象中的jia方法,实现与预期结果比较
- 同样的再编写一个测试用例完成jian函数的测试
- 将上一篇博客中所编写过的三角形代码拷贝到unittest_demo_cdtaogang包下,封装到类中进行如下修改
- 在unittest_case_cdtaogang模块下创建另一个测试模块,并编写如下代码完成三角形的单元测试
- 执行单元测试,测试结果如下
3.读取数据的方式
1.使用xml文件的方式读取
- 当测试数据比较多时,为了让代码看着更简洁,以及数据的安全性,需要将测试数据存放到一个目录下的文件中,保证代码和数据是分开的,这里使用的是将测试数据写入到xml文件中,如下所示
- 测试数据有了,则需要创建一个目录存放读取xml文件的代码,实现读取xml文件中jia节点下的数据
- 修改代码,使用传递参数来完成xml文件数据的读取
- 在unittest框架中读取xml文件,首先需要在xml文件中添加预期结果值,这样才能保证测试代码中不出现数据,然后在read_data方法中需要获取到预期结果值,并将数据进行返回
- 最后在测试文件中,调用read_data方法并传递相应的参数,实现在unittest框架中读取xml文件中的数据
- 运行代码,测试结果与预期结果一致
- 同样的对于三角形单元测试也是如此,首先需要创建xml格式的测试数据文件
- 然后在ReadXml中定义读取三角形测试数据的方法
- 最后在测试文件中,调用read_data_2方法并传递相应的参数,实现在unittest框架中读取xml文件中的数据
- 运行代码,测试结果与预期结果一致
2.使用csv文件进行读取
- 首先定义一个计算机的加法函数代码
- 然后定义以上功能单元测试类
- 创建一个csv格式的文件,用于存储测试数据,需要注意的是,先创建一个txt的文本,填写完内容后,再重命名修改为.csv后缀即可
- 重命名后变成csv文件,打开此文件后内容如下
- 将该csv文件拷贝到项目unittest_xmldata_cdtaogang目录下
- 紧接着则需要获取csv文件中的内容,即在unittest_commonlib_cdtaogang目录下编写代码用于读取csv文件中的数据
- 将获取到的列表数据,添加到自定义列表中并进行返回
- 然后在单元测试模块中,导入读取csv文件的类,并调用其read_data方法,遍历返回值,通过列表索引来循环测试csv文件中的数据
- 运行代码后,测试结果与测试数据一致
- 创建三角形测试数据的csv文件,预期结果涉及到中文,所以在创建txt文件的时候需要另存为utf-8编码的文件
- 重命名为.csv文件,打开此文件,内容如下
- 将sanJX.csv文件拷贝到unittest_xmldata_cdtaogang目录下,内容中的数据正常显示没有编码错误
- 在readCsv模块中编写读取sanJX.csv文件的方法,因为在这个文件中的每一列的标题是不需要获取的,所以返回的列表数据需要进行切片处理,去除第一行数据
- 紧接在unittest_case_cdtaogang目录创建单元测试模块testDemo_04,用于测试sanJX.csv文件中的测试数据,完成三角形功能的单元测试
- 运行代码后,测试结果与测试数据一致
- 将三角形测试结果生成html格式的测试报告
- 运行测试,成功在report目录下生成html_report.html测试报告文件
- 打开html_report.html文件,查看测试报告结果为通过
4.单元测试总结
UT计划
1.确定测试范围--->从4个方面考虑(频率、复用性、开发背景、复杂度)---->确定20%或者测试的优先级
2.评估标准
黑盒测试:需求覆盖率100%
灰盒测试:接口覆盖率
白盒测试:逻辑覆盖率:语句、分支、条件、路径、分支-条件
UT设计
1.测试策略:自顶向下、自底向上、孤立策略
注意:如果测试函数时,涉及调用其他函数,需要进行打桩(模拟函数中调用的函数)
驱动:1.调用函数、2、传递数据3、接收结果4、进行比对
UT实现
设计测试用例:
1.将代码转换为流程图
2.将流程图转换为流图--->圈(条件、语句或者多个语句),线:带有箭头的线
3.确定路径--->确定了代码的复杂度(圈复杂度)--->确定了测试用例
4.编写测试用例
UT执行
1.模拟测试函数
2.使用unittest单元测试框架执行测试用例
3.数据和代码分类思想:
1.通过读取xml文件---->将测试数据写入xml文件中,xml是用来存储和传输数据(导包:from xml.dom import minidom)
2.通过读取csv文件--->导包:import csv
单元测试对象:函数