def test_all(self,index, name, key, param1, param2, param3): """""" # print(name) # 标识是否运行 flg = False try: index = int(index) # 设置当前执行写入的行数 datadriven.writer.row = index # 如果不是sheet就运行 flg = True except: # 如果是sheet,就切换写入的sheet页面,不执行 datadriven.writer.set_sheets(index) # 如果需要运行用例 if flg: line = [key, param1, param2, param3] logger.info(line) func = datadriven.geffunc(line, self.obj) # print(func) lenargs = datadriven.getargs(func) # print(lenargs) # 反射执行 res = datadriven.run(func, lenargs, line) if res == False: self.fail('关键字执行失败')
def test_(self, index, name, keyword, param1, param2, param3): """ :param index: 当前运行到哪一行,写入到哪一行 :param name: :param keyword: :param param1: :param param2: :param param3: :return: """ print(name) #把参数做成一个列表 line = [keyword, param1, param2, param3] try: #6个参数,list[0]的时候是整数 index = int(index) #记录当前要写入的行 self.obj.row = index # 反射获取函数,self.obj类的对象,line是列表,取line[0] func = datadriven.geffunc(line, self.obj) # 获取函数参数个数 lenargs = datadriven.getargs(func) # 执行关键字,这些函数里面调用了,写入方法,self.obj.row = index #res是返回值,True 和 Flase res = datadriven.run(func, lenargs, line) #加断言以后,报告才会出现false,在执行关键字的时候加return true和flash self.assertTrue(res) except: #切换sheet页,已经读取两行了,第一个列表 # [['授权接口', '', '', '', '', ''] index='授权接口' datadriven.writer.set_sheet(index)
def test_(self, index, name, keyword, param1, param2, param3): """""" print(name) line = [keyword, param1, param2, param3] try: index = int(index) self.obj.row = index # 反射获取函数 func = datadriven.geffunc(line, self.obj) # 获取函数参数个数 lenargs = datadriven.getargs(func) # 执行关键字 res = datadriven.run(func, lenargs, line) self.assertTrue(res) except: datadriven.writer.set_sheet(index)
def test_all(self,index, name, key, param1, param2, param3): """ :param index: datadriven.writer中第一个元素,设置index也是为了解决读和写的结果保持在同一行 :param name: excel中的用例名 :param key: excel中的关键字 :param param1:excel中的第1个参数 :param param2:excel中的第2个参数 :param param3:excel中的第3个参数 :return: """ print(name) # 标识是否运行 flg = False try: index = int(index) # 如果第一个元素是数字,表示是需要执行的用例 # 设置当前执行写入的行数 datadriven.writer.row = index # 让读和写保持在同一行 # 如果不是sheet就运行 flg = True except: # 如果是sheet,就切换写入的sheet页面,让读和写保持在同一sheet页 datadriven.writer.set_sheet(index) # 如果需要运行用例 if flg: line = [key, param1, param2, param3] print(line) # 反射获取要执行的关键字,如获取post,get,assert,addheader等 func = datadriven.geffunc(line, self.obj) # print(func) # 获取参数的数目 lenargs = datadriven.getargs(func) # 反射执行 res = datadriven.run(func, lenargs, line) # 如果要断言有效,必须关键字里面添加:如果执行失败,就返回False if res is False: self.fail('关键字执行失败')
import unittest, datetime, time