我想在test_api1方法调用GetExecl时配置参数;(为了去掉循环语句,可以访问execl中指定行)
def GetExecl(b1,self): testCaseFile = xlrd.open_workbook(r'C:\Users\Chu\Desktop\API_Test\TestCase\test.xls') # 打开excel文件 table = testCaseFile.sheet_by_name('Sheet1')# 打开excel表 nrows = table.nrows # 获取总行数 for i in range(1,nrows): no = table.cell_value(i,0) TestCase = table.cell_value(i,1) url = table.cell_value(i,2) parameter = table.cell_value(i,3) method = table.cell_value(i,4) checkpoint = table.cell_value(i,5) if l == i: print 1 print no,TestCase,url,parameter,method,checkpoint if method == 'GET': url = url + parameter print url result = urllib2.urlopen(url).read() result=result.decode('utf-8') print type(result),type(checkpoint) print 1 if re.search(checkpoint,result): print TestCase + url + u"pass" else: print u"error" def test_api1(self): """第一个接口""" print u"Test1" b1=2 print self.GetExecl(b1)
新手小白求教,谢谢!
你的GetExcel方法并没有用到这个类的其他属性,应该设计为静态方法
没看到你传参的用处
方法名小写下划线分割
self必须是实例属性的第一个参数
你可以抽象一下你的问题来提问,这样会有更多的人来帮你,你直接贴这么长一个函数过来,很多人会望而却步
class GetExcel(object):
@staticmethod
def get_excel(i):
“”“
i: 你想要哪一行
”“”
testCaseFile = xlrd.open_workbook(r'C:\Users\Chu\Desktop\API_Test\TestCase\test.xls') # 这里写死真的好吗?
table = testCaseFile.sheet_by_name('Sheet1') # 打开excel表
no = table.cell_value(i,0)
TestCase = table.cell_value(i,1)
url = table.cell_value(i,2)
parameter = table.cell_value(i,3)
method = table.cell_value(i,4)
checkpoint = table.cell_value(i,5)
# 这样写真的好吗?
# no, TestCase, url, parameter, method = table.row_values(i)
# 或者你的数据更长
# no, TestCase, url, parameter, method = table.row_values(i)[: 5]
# 可以这样写吗?我没有测试...
# do something
pass
def test_api1(self):
self.get_excel(10)