python中同一个类,带参的方法直接如何相互调用

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

clipboard.png
新手小白求教,谢谢!

阅读 9.4k
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)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题