记录Python关于Openpyxl库的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、记录Python关于Openpyxl库的使用

在做自动化测试的时候,我们通常会进行数据分离,通常会把测试数据写在一个xlsx文件中,便于维持测试脚本,由于python本身不支持打开Excel文件,这时需要借助第三方库:Openpyxl 来读取Excel数据

二、使用步骤

1.引入库

代码如下(示例):

首先我们在设置中,安装这个第三方库
在这里插入图片描述
安装后创建一个练习册.xlsx文件sheet名为‘wang’
在这里插入图片描述
读取整张表

from openpyxl import load_workbook 
# 导入库
wb = load_workbook('练习册.xlsx')  # 实例化
sheet = wb['wang'] # 获得表单名
a= list(sheet.values)  # 把数据储存为列表
print(a)  # 返回的数据在列表中展示

在这里插入图片描述
如果只想要其中的几行可以通过切片来获取如前2行

from openpyxl import load_workbook 
# 导入库
wb = load_workbook('练习册.xlsx')  # 实例化
sheet = wb['wang'] # 获得表单名
a= list(sheet.values)[1:3] 
print(a)

在这里插入图片描述
返回元组数据方法

from openpyxl import load_workbook 
# 导入库
wb = load_workbook('练习册.xlsx')  # 实例化
sheet = wb['wang'] # 获得表单名
a= list(sheet.values)
for i in a:
    print(i)

在这里插入图片描述
已字典的形式返回数据,在接口自动化中常用的方法

from openpyxl import load_workbook 
# 导入库
wb = load_workbook('练习册.xlsx')  # 实例化
sheet = wb['wang'] # 获得表单名
get_data = []  # 数据储存为列表
for i in range(1, sheet.max_row+1): # 遍历表单,有数据就会遍历,注意空数据
    data={}  # 建一个空字典,接收数据
    data['a']=sheet.cell(i,1).value # 构造字典的键值对
    data['b'] = sheet.cell(i, 2).value
    data['c'] = sheet.cell(i, 3).value
    data['d'] = sheet.cell(i, 4).value
    data['e'] = sheet.cell(i, 5).value
    get_data.append(data)
print(get_data)

print(f'最大行:{sheet.max_row}') # 求表单最大行
print(f'最大列:{sheet.max_column}') # 求表单最大列

在这里插入图片描述

2.举一个接口登录例子,写一个工具类

(示例):如图所示,通过cese_id来决定执行那几条测试数据,

在这里插入图片描述

from openpyxl import load_workbook

class DoExcel_tool:
    def __init__(self,file_name,sheet_name):
        self.file_name=file_name
        self.sheet_name=sheet_name

    def get_data(self,button = 'all'):
        """button : 控制是否执行所有的用例,默认值为all,为all就执行所有的用例
        如果不等于all的话就进入分支判断
        button的值 只能输入all 列表这2种类型的参数"""
        wb = load_workbook(self.file_name)
        sheet = wb[self.sheet_name]

        test_data = []  # 数据储存为列表
        for i in range(2, sheet.max_row+1):
            get_data = {}
            get_data['case_id'] = sheet.cell(i, 1).value
            get_data['module'] = sheet.cell(i, 2).value
            get_data['title'] = sheet.cell(i, 3).value
            get_data['url']=sheet.cell(i,4).value
            get_data['data']=sheet.cell(i,5).value
            get_data['method']=sheet.cell(i,6).value
            get_data['expected']=sheet.cell(i,7).value
            test_data.append(get_data)

            # 根据button 的值去判断
        if button =='all': # 执行所有的用例
            final_data=test_data  #文件数据等于测试数据
        else:
            final_data=[]
            for item in test_data:
                if item['case_id'] in button:
                    final_data.append(item)

        return final_data

if __name__ == '__main__':
    print(DoExce_tool('文件.xlsx','sheet_name').get_data())
  

先这样吧,有时间在修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值