闭包思维自动生成unittest 接口测试用例脚本
来源:互联网 发布:淘宝一元拍卖骗局 编辑:程序博客网 时间:2024/06/05 20:56
感谢一下群里大佬们的踊跃探讨。结合了一下unittest,整理如下:
对于n条测试用例,还需要写满篇的test_1 ,test_2么?
显然不需要了。人只需要在表中写好要测试的接口的名字,参数即可。
如图:
具体代码:
class Test(unittest.TestCase): '测试类' token_1 = token_emba('12012341006', '123456') #类变量 def begin_req(self,apidata): u'获取部门列表' # print apidata if apidata[1] == ['']: data = eval(apidata[0])() elif apidata[1] != ['']: data = eval(apidata[0])(apidata[1]) # 输入要测试的数据,data=(mode,url,body), back = json.loads(req(data, self.token_1)['res_body']) # 获取实际返回值,需要传入token的话,请req(data,token) YQ = 200 # 输入预期的值 SJ = back['code'] # 设置实际返回,如果需要传入TOKEN等header,请务必填写! self.assertEqual(SJ, YQ, error_code(SJ, YQ))def demo(apidata): def tool(self): Test.begin_req(self,apidata) setattr(tool, '__doc__', u'测试%s' % str(apidata[0])) return tooldef testall(apidata): for i in range(len(apidata)): setattr(Test,'test_'+str(i+1),demo(apidata[i]))if __name__ == "__main__": fname = './case_2.xls' Apidata = [] #设置接口函数名 SZ = xlrd.open_workbook(fname) sz = SZ.sheet_by_index(0) for i in range(1,sz.nrows): par = str(sz.cell_value(i,1)).split(',') Apidata.append([sz.cell_value(i,0),par]) testall(Apidata) suit = unittest.makeSuite(Test) filename = u'/'.join(os.getcwd().split('/')[:-2]) + u'/Report/业务逻辑接口测试报告-test.html' fp = file(filename, 'wb') runner = HTMLTestRunner(fp, title=u'测试服新接口测试', description=u'用例执行报告', fname=filename.split('/')[-1]) runner.run(suit)
其中有很多自己封装的函数,贴出来就是给大家看一个思路。我们的原则是尽量不经常因为用例 的增删改查 需要去修改代码。
也就是写用例用表,看报告用html或其他文件。
如图,是测试报告
有不明白的欢迎留言讨论。
阅读全文
0 0
- 闭包思维自动生成unittest 接口测试用例脚本
- python自动生成python+unittest+requests测试用例
- 使用简单的unittest编写接口测试脚本
- python unittest自动化测试,生成测试报告,自动发邮件
- 自动生成基于pyunit的接口测试用例示例
- python 使用unittest 测试接口
- selenium之unittest批量执行测试用例、生成html报告
- selenium unittest管理测试用例
- Python-unittest---测试用例批量执行
- 如何通过postman生成接口测试脚本
- 接口测试之脚本用例
- 自动生成接口和JUnit测试类
- Python + Requests + Unittest接口自动化测试
- unittest实现HTTP接口功能测试
- Unittest实现H5页面接口功能测试
- Python接口测试之unittest框架
- Python之使用unittest框架和HTMLTestRunner.py文件实现多个测试用例执行与测试报告生成
- 软件测试的第五个层次 - 测试脚本自动生成
- LintCode python 小白-简单题-445余弦相识度
- 矢量图
- caioj1031·递归1(全排列,搜索入门)
- Log4j使用
- 160个crackme之003
- 闭包思维自动生成unittest 接口测试用例脚本
- 2017 Multi-University Training Contest 3 1003/hdu6058
- gulp、requirejs、webpack之间是什么关系
- java程序员的python之路(mongodb)
- Linux
- 博弈
- 课程 | 让机器“看见”——计算机视觉原理及实战
- UVA101 The Blocks Problem(模拟)
- Redis集群搭建与简单使用