pytest+request+allure+excel接口自动化搭建 从0到1【二 读取Excel Case信息】


目前读取Excle数据有2种方式xrld和pandas。pandas读取数据默认过滤标题,代码也很简洁。最主要的是读取的速度比xrld要快。

一、使用xlrd读取数据

1.1判断文件格式是否是xlrd开头

依赖包:xlrd == 1.2.0
安装依赖包:pip3 install xlrd == 1.2.0


import xlrd

def read_exce(rule=".xlsx"):	#判断文件是否以
    try:
        filename = "../casefile/case.xlsx"  #文件地址
        if filename.endswith(rule):
            wb = xlrd.open_workbook(filename)
            ws = wb.sheet_by_name('Esat')	#sheet名称
    except Exception as e:
        errorMsg = str(e)
        log.error("文件格式异常:%s" % errorMsg)

1.2读取数据返回List

    all_cases = [] #定义一个list数组 用来储存返回数据

    for r in range(1, ws.nrows):
        case_data = {}
        for c in range(ws.ncols):
            data_value = ws.cell_value(r, c)
            case_data[ws.cell_value(0, c)] = data_value
        # all_cases[ws.cell_value(r,0)]=case_data
        # 将返回的dict装入list
        print(type(all_cases))
        all_cases.append(case_data)
    return all_cases

附上完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/7/19 3:59 下午
# @Name    : peilun
# @File    : readexcel.py
# @Software: PyCharm
import os
import xlrd
from comment.log import *

'''
    读取Excel 测试用例 并将用例dict组合成list
'''

def read_exce(rule=".xlsx"):
    try:
        filename = "../casefile/case.xlsx"
        if filename.endswith(rule):
            wb = xlrd.open_workbook(filename)
            ws = wb.sheet_by_name('Esat')

            all_cases = []
            for r in range(1, ws.nrows):
                case_data = {}
                for c in range(ws.ncols):
                    data_value = ws.cell_value(r, c)
                    case_data[ws.cell_value(0, c)] = data_value
                # all_cases[ws.cell_value(r,0)]=case_data
                # 将返回的dict装入list
                print(all_cases)
                all_cases.append(case_data)
            return all_cases

    except Exception as e:
        errorMsg = str(e)
        log.error("文件格式异常:%s" % errorMsg)


case = read_exce()
print(type(case))


在这里插入图片描述

二、使用pandas读取数据

依赖包:pytest == 6.1.0
安装依赖包:pip3 install pytest == 6.1.0 \ pandas == 1.3.2

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2021/6/28 2:38 下午
# @Name    : peilun
# @Software: PyCharm
import pandas as pd
import pytest

'''
    :pandas读取excel测试数据
'''
def read_exce(rule=".xlsx"):
    try:
        filename = "../casefile/case.xlsx"
        if filename.endswith(rule):
            data = pd.read_excel(filename,sheet_name='Esat')    #文件地址和 sheet名称

            datavalues = data.to_dict('records')    # 将每行接口数据转换为字典 to_dict('records')格式固定
            print(datavalues)
            return datavalues

        else:
            pass

    except Exception as e:
        errorMsg = str(e)
        print("文件格式异常:%s" % errorMsg)

read_exce()

read_excel方法说明

pd.read_excel(filename, sheet_name=0, header=0, skiprows=1, keep_default_na=False )

在这里插入图片描述

filename文件地址
sheet_name返回指定sheet名称
header指定表头,也可用列表指定多行
usecols读取指定的列数据
skiprows跳过第2行,为了是过滤掉列表头
keep_default_naFalse 避免出现 空数据变成 None

完整代码 包含(钉钉/飞书)推送/报警:去下载

结合 Docker+Jenkins自动化环境部署 即可完成完美的线上服务监控 (还在等什么?快去试试吧!!!)

小白即可搭建自动化环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Song_Lun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值