记录Python关于Openpyxl库的使用

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

文章目录

  • 一、记录Python关于Openpyxl库的使用
  • 二、使用步骤
    • 1.引入库
    • 2.举一个接口登录例子,写一个工具类


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

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

二、使用步骤

1.引入库

代码如下(示例):

首先我们在设置中,安装这个第三方库
记录Python关于Openpyxl库的使用_第1张图片
安装后创建一个练习册.xlsx文件sheet名为‘wang’
记录Python关于Openpyxl库的使用_第2张图片
读取整张表

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)

记录Python关于Openpyxl库的使用_第3张图片
返回元组数据方法

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

记录Python关于Openpyxl库的使用_第4张图片
已字典的形式返回数据,在接口自动化中常用的方法

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}') # 求表单最大列

记录Python关于Openpyxl库的使用_第5张图片

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())
  

先这样吧,有时间在修改

你可能感兴趣的:(记录Python关于Openpyxl库的使用)