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

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

二.单元测试:开发自己测试自己写的代码,居于单元测试,就产生了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()函数

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

2.7  给用例加上描述

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

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

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

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

2.12  实现调用测试login.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文件

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

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

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

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

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

 

转载于:https://www.cnblogs.com/jpwsk/p/9492631.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想使用`@file_data`装饰器来从YAML文件获取多个参数,可以按照以下步骤进行操作: 首先,确保你已经安装了`ddt`和`pyyaml`库。可以使用以下命令进行安装: ``` pip install ddt pyyaml ``` 然后,创建一个YAML文件如data.yaml),在其添加要使用的参数。参数可以按照键值对的形式进行组织。 如,data.yaml内容如下: ```yaml - username: username1 password: password1 - username: username2 password: password2 ``` 接下来,你可以创建一个测试类,并在测试方法上使用`@ddt`装饰器。然后,使用`@file_data`装饰器来指定YAML文件的路径。 下面是一个示代码: ```python import unittest import yaml from ddt import ddt, file_data @ddt class MyTestClass(unittest.TestCase): @file_data('data.yaml') def test_login(self, credentials): username = credentials['username'] password = credentials['password'] # 执行你的登录测试逻辑 print(f"Username: {username}, Password: {password}") if __name__ == '__main__': unittest.main() ``` 在上面的示,`test_login`方法使用了`@file_data('data.yaml')`装饰器来指定了YAML文件的路径。在方法内部,我们可以通过访问`credentials`参数的键来获取用户名和密码。 当你运行这个测试类时,`test_login`方法会根据YAML文件的每一个键值对运行测试。 希望这个示能够帮助你使用`@file_data`装饰器从YAML文件获取多个参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值