接口自动化--xlrd读取文件

接口的数据驱动以xlsx后缀。
读取数据时需要用到读取行:

  #  xlrd库 的用法。
    import xlrd
    #打开excel
    data = xlrd.open_workbook('demo.xls') #注意这里的workbook首字母是小写
    #查看文件中包含sheet的名称
    data.sheet_names()
    #得到第一个工作表,或者通过索引顺序 或 工作表名称
    table = data.sheets()[0]
    table = data.sheet_by_index(0)
    table = data.sheet_by_name(u'Sheet1')
    #获取行数和列数
    nrows = table.nrows
    ncols = table.ncols

以下是实例________:这是封装的代码________________________________________

import xlrd   #python读取Excel文件
   #读取工具类
    class ExcelUtil:
        suite_data=[]
        reader=xlrd.open_workbook('../data/test_data.xlsx')
        host=""  #主机
        login_url=""    #登录地址
        login_data=""  #登录数据
    

#获取主机地址,登录地址,默认登录账户
    @classmethod
    def read_config(cls):
        sheet=cls.reader.sheet_by_index(1)  #读取下标为1的表格,
        cls.host=sheet.cell_value(0,1)   #0代表行的下标,1代表列的
        # print(cls.host)
        cls.login_url=sheet.cell_value(1,1)
        cls.login_data=sheet.cell_value(2,1)

#获取excel文件中测试集数据
    @classmethod
    def read_suite_data(cls):
        cls.read_config()
        sheet=cls.reader.sheet_by_index(2)   #获取下标为2的表格的内容
        nrow=sheet.nrows    #获取表格中的所有行
        for i in range(nrow):
            if sheet.cell_value(i,10)=='yes':
                cls.suite_data.append([
                    sheet.cell_value(i, 0),  # 用例地址
                    sheet.cell_value(i, 1),  # 请求方法
                    sheet.cell_value(i, 2),  # 接口地址
                    sheet.cell_value(i, 3),  # 用例编号
                    sheet.cell_value(i, 4),  # 用例标题
                    sheet.cell_value(i, 5),  # 操作步骤
                    sheet.cell_value(i, 6),  # 请求头
                    sheet.cell_value(i, 7),  # 输入数据
                    sheet.cell_value(i, 8),  # 返回状态码
                    sheet.cell_value(i, 9),  # 预期结果
                    sheet.cell_value(i, 10),  # 是否执行
                    sheet.cell_value(i, 11)  # 执行结果
                ])

#获取测试数据集(参数化测试)
    @classmethod
    def get_test_data(cls,testname):
        cls.read_suite_data()
        list_test_data=[]    #定义新列表,写去需要的信息
        for data in cls.suite_data:
            if testname in data[0]:
                list_test_data.append(
                    (
                    # 'login',
                    data[1],  # 请求方法
                    data[2],  # 接口地址
                    # data[6],  # 请求头
                    data[7],  # 输入数据
                    data[9],  # 预期结果
                    )
                )
        return list_test_data


# if __name__ == '__main__':
    # eu = ExcelUtil()
    # eu.read_suite_data()

    # print(ExcelUtil.get_test_data('test_login'))

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值