栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytest+request+allure+excel接口自动化搭建 从0到1【二】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytest+request+allure+excel接口自动化搭建 从0到1【二】

读取Excel测试数据
  • 一、使用xlrd读取数据
    • 1.1判断文件格式是否是xlrd开头
    • 1.2读取数据返回List
  • 二、使用pandas读取数据

目前读取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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号