很多时候测试框架需要根据测试数据来自动生成测试用例脚本,比如接口测试,通过不同参数构建组合去请求接口,然后验证返回结果,,如果这样能通过配置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[n],’test_%s’%a[‘testcasename’]) n +=1
版权声明:本文为博主原创文章,未经博主允许不得转载。
以诚感人者,人亦诚而应。