python多用例输入_python批量执行多个文件中的用例

Python unittest利用discover获取指定目录或多级目录下的测试用例

最近在写接口自动化框架,由python+requests+unittest构建(其他还有些导入模块,这里暂且不说),目前还在搭建当中,整体其框架结构如下:

1365869-20200604221408886-1255279010.png

在编写Common下的RunTools组件(主要封装的是获取测试用例、执行测试、生成测试报告、发送邮件等相关函数) 时,遇到一些坑,在这里进行总结:

1、利用unittest的discover获取指定目录下匹配的相关测试用例

封装函数如下:

class RunTools:

def chooseDirCases(self,casedir,pattern):

'''

根据指定目录获取匹配的测试用例

:param casedir: 测试用例目录路径

:param pattern: 匹配模式

:return: 测试用例集

'''

discover_cases=unittest.defaultTestLoader.discover(casedirpath,pattern=pattern)

return discover_cases

实例:

runtools=RunTools()

a=runtools.chooseDirCases('DL_Cases','test*.py')

tips:这种方式是可以获取指定目录下的匹配模式的测试用例,目录的属性可以是dict,也可以是python package

2、利用unittest的discover获取多级目录的所有测试用例

封装函数如下:

class RunTools:

def chooseAllCases(self,pattern):

'''

获取TestCases下所有的测试用例

:param pattern: 匹配模式

:return: 测试用例集

'''

discover_all_cases=unittest.defaultTestLoader.discover(testcase_path,pattern=pattern,top_level_dir=None) #testcase_path是测试用例的根目录

return discover_all_cases

实例:

runtools=RunTools()

b=runtools.chooseAllCases('test*.py')

tip:discover是递归匹配文件的,如果设定的目录是测试用例的根目录的话,discover会去匹配每个子目录下的所有用例,匹配成功的用例就加载到discover,但是在这里需要注意一点,存放用例的目录属性必须是python package,必须要有__init__.py,不然不会获取成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值