我想在test_api1方法调用GetExecl时配置参数;(为了去掉循环语句,可以访问execl中指定行)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31def 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必须是实例属性的第一个参数
你可以抽象一下你的问题来提问,这样会有更多的人来帮你,你直接贴这么长一个函数过来,很多人会望而却步
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25class 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)