day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

时间:2023-02-04 15:31:32

一.使用.yaml格式的文件直接可以存放字典类型数据,如下图,其中如果有-下一行有缩进代表这是个list,截图中是整体是一个list,其中有两部分,第二部分又包含另外一个list

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

二.单元测试:开发自己测试自己写的代码,居于单元测试,就产生了unittest模块,该模块可以查找用例,执行用例,校验结果,产生报告

2.1 首先需要在环境变量中导入HTMLTestRunner.py文件,环境变量位置External Libraries,python主目录的Lib下,就是将该文件放在该目录下即可

2.2 测试用例,

2.3 测试集合:多个测试用例放在一起

2.4 testrunner  用来运行测试用例

2.5 定义类继承unittest.TestCase,使用unittest.main()运行函数的时候,可以运行当前文件中所有的用例,不能产生测试报告,类中定义的函数必须以test开头,才会执行.     setUp()函数实在每条用例运行之前执行的,tearDown()是每条用例执行后执行的,运行顺序为setUp()------第一条用例------tearDown(),每条用例执行前后都会执行setUp()和tearDown()函数

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.6 为了生成可视化测试报告,定义一个测试集合unittest.TestSuite(),根据行号接上一个截图中的代码,运行测试集合的是不需要用unittest.main方式运行,而是定义一个runner来执行用例

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.7  给用例加上描述

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.8 生成较好看的报告使用一下方式,需要导入nnreport模块,将测试集合test-suite加入Beautifulreport()中

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.9 为了生成更好看的报告,需要将Beautiful.zip文件解压,将Beautiful文件夹放到环境变量External Librarabs下面的site-package目录下,把导入的nnreport更换成Beautifulreport.在测试过程中,用例放一般在单独的目录下,所以需要找到用例所在目录,匹配到相关文件,再将文件添加到测试集合testsuite(使用循环或者列表生成式),指定报告report中写好报告描述descripition,报告文件名称filesnames(可加指定路径),默认在当前目录下,生成的报告比较美观

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.10 参数化,需要导入ddt模块,如果没有需要安装,在创建类名上一行需要添加@ddt.ddt,在类中的方法中也需要天加@ddt.data(),括号中写需要传入的数组,数组添加完毕后需要加上@ddt.unpack,目的是将数组中的数据解开,否则会报错    如果传入参数只有一个值时,就不需要写数组和@ddt.unpack,

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.11 如果用例文件只存在与单个文件中,则可指定运行单个文件中的数据,入参中一定要上两个星号(**test_data)

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.12  实现调用测试login.yaml文件中的测试用例

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

三. 实现一个以指定模板代码生成多个相应的以.ymal结尾的文件内容相同的.py文件,然后读取全部.py文件中的用例,然后执行,生成报告.首先新建项目目录(utp),在项目目录下分别新建①bin目录,在bin目录下新建start.py文件,②conf目录,在conf目录下新建setting.py,模板文件case_template文件,③lib目录,在lib目录下新建tools.py文件,④data目录,在data目录下放已经准备好的多个.yaml文件,⑤report目录,用来存放测试报告文件

1.bin目录下的start.py文件

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

2.conf目录下的setting.py文件

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

3.conf目录下的case_template模板文件,注意该文件不是Py文件,是一般的文本文件

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

4.lib目录下的tools.py文件

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

5.data目录下的多个.yaml文件

day11_单元测试_读取yaml文件中的用例,自动获取多个yaml文件内容执行生成报告

6.report中存放生成的报告,略......