python中同一个类,带参的方法直接如何相互调用
黄舟
黄舟 2017-04-17 17:37:46
0
1
429

我想在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)
    


新手小白求教,谢谢!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
小葫芦
  1. 你的GetExcel方法并没有用到这个类的其他属性,应该设计为静态方法

  2. 没看到你传参的用处

  3. 方法名小写下划线分割

  4. self必须是实例属性的第一个参数

  5. 你可以抽象一下你的问题来提问,这样会有更多的人来帮你,你直接贴这么长一个函数过来,很多人会望而却步

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)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板