python的unittest测试框架的扩展浅谈
2015-07-23 12:31
645 查看
很多时候测试框架需要根据测试数据来自动生成测试用例脚本,比如接口测试,通过不同参数构建组合去请求接口,然后验证返回结果,如果这样能通过配置excel数据来驱动测试,而不用去写一大堆的测试用例脚本代码,减轻了维护自动化测试脚本的时间和成本,大概有一个思路可以实现以上想法,先写一个通过的unittest测试基类,然后用过python的内置type去生成自定义的功能模块类,再在生成的自定义类里以setattr方法来生成每一个功能模块类下的用例方法,这样到时收集测试报告的时候,可以比较清晰的分类展示。
如以下函数是根据excel生成测试类和类下的测试用例方法,当然如果接入平台里测试,到最后测试完要去销毁之前生成的类和方法
def generateTestCases(log,arglists):
'''动态生成测试用例类及其方法'''
class_list=[]
for args in arglists:
custom_class = type(args['inter'], (myEwsCase,), {"__doc__":args['cases'][0]['description']})
for a in args['cases']:
setattr(custom_class,'test_%s'%a['testcasename'],myEwsCase.getTestFunc(log,a))
class_list.append(custom_class)
return class_list
def destroyTestCases(log,custom_class,arglists):
'''销毁所有自动生成用例方法'''
n=0
for args in arglists:
for a in args['cases']:
delattr(custom_class
,'test_%s'%a['testcasename'])
n +=1
如以下函数是根据excel生成测试类和类下的测试用例方法,当然如果接入平台里测试,到最后测试完要去销毁之前生成的类和方法
def generateTestCases(log,arglists):
'''动态生成测试用例类及其方法'''
class_list=[]
for args in arglists:
custom_class = type(args['inter'], (myEwsCase,), {"__doc__":args['cases'][0]['description']})
for a in args['cases']:
setattr(custom_class,'test_%s'%a['testcasename'],myEwsCase.getTestFunc(log,a))
class_list.append(custom_class)
return class_list
def destroyTestCases(log,custom_class,arglists):
'''销毁所有自动生成用例方法'''
n=0
for args in arglists:
for a in args['cases']:
delattr(custom_class
,'test_%s'%a['testcasename'])
n +=1
相关文章推荐
- 比较perl+python
- 在IDEA上用python来连接集群上的hive
- Python 深入理解yield
- python 机器学习库:Numpy
- Python脚本生成sitemap
- Python异常处理
- Python 正则表达式中的函数
- PYTHON风格规范-Google 开源项目风格指南
- PYTHON风格规范-Google 开源项目风格指南
- NumPy的详细教程
- 如何成为Python高手
- Python strip()函数
- python使用mysql数据库
- Python Base64转码解码
- Python Base64转码解码
- python写的批量操作远程主机脚本(命令执行,上传、下载文件)
- python 自己写爬虫 ---- 总结需要的包
- python 自己写爬虫 ----- BeautifulSoup
- 使用Python递归对文件进行相关处理
- python 安装 setuptools Compression requires the (missing) zlib module 的解决方案