IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 项目实战01-openpyxl读取Excel -> 正文阅读

[开发测试]项目实战01-openpyxl读取Excel

前言:为什么要使用openpyxl?
1、openpyxl是用来读取excel中的测试用例到代码中
2、DDT数据驱动

一、测试用例维护

1.测试用例均维护在Excel文件中,每个sheet页中存放单一接口的测试用例。

包含用例编号,接口名,测试场景,接口类型,接口url,接口参数,预期返回结果...具体字段根据实际项目需要增加或减少

二、openpyxl安装

1.打开cmd

2.输入命令?

pip? install openpyxl

3.等待安装成功即可

4.安装失败的解决办法

(1)加入-user

pip install -user openpyxl

(2)先更新pip,在安装

python -m pip install --upgrade pip

pip install?openpyxl

(3)超时处理

pip --default-timeout=100 install openpyxl

三、openpyxl读取excel

思路:
1.类的初始化方法,将文件路径和sheet名当做参数传入

class Handle_Excel:
    # 初始化方法,传入文件名和sheet名
    def __init__(self, filename, sheetname):
        self.filename = filename
        self.sheetname = sheetname

2.导入excel
(1)创建work工作簿对象,传入文件路径
(2)传入sheet名,获取到sheet页中全部的数据,并转换成list(列表)类型
(3)通过列表推导式取出excel中第一行的数据,也就是表头
(4)循环第二行开始至最后一行的数据,也就是用例数据
(5)使用zip进行测试用例表头和用例数据的组装,并转换成dict类型

    def read_excel(self):
        # 读取excel到代码中
        workbook = openpyxl.load_workbook(self.filename)
        sh = workbook[self.sheetname]
        # 获取到所有行的数据
        res = list(sh.rows)
        cases = []
        # 获取第一行的表头
        title = [i.value for i in res[0]]
        # 遍历第一行之外的其他行
        for item in res[1:]:
            data = [i.value for i in item]
            dic = dict(zip(title, data))
            cases.append(dic)
            # 返回读取出来的数据
        return cases

3.将结果写入到excel中
(1)创建work工作簿对象,传入文件路径
(2)传入sheet名,创建sheet页对象
(3)sheet页对象调用cell方法,传入row,volumn,value
(4)工作簿对象调用save方法,对工作簿进行保存

    def write_excel(self, row, column, value):
        # 写入结果到Excel中,基本不怎么用
        workbook = openpyxl.load_workbook(self.filename)
        sh=workbook[self.sheetname]
        sh.cell(row=row,column=column,value=value)
        workbook.save(self.filename)

4.打印结果

if __name__ =='__main__':
    excel=Handle_Excel(os.path.join(DATA_DIR, 'apicases.xlsx'), 'register')
    res=excel.read_excel()
    print(res)

(1)打印title

title:['case_id', 'interface', 'title', 'method', 'url', 'data', 'expected', 'result', 'check_sql']

?(2)打印dic

dic:{'case_id': 1, 'interface': 'register', 'title': '注册成功-带注册名', 'method': 'POST', 'url': '/member/register', 'data': '{"mobile_phone":#mobile#,"pwd":"xxxx","type":1,"reg_name":"34254sdfs"}', 'expected': '{"code": 0, "msg": "OK"}', 'result': None, 'check_sql': '\'SELECT * FROM futureloan.member WHERE mobile_phone="{}"\''}
dic:{'case_id': 2, 'interface': 'register', 'title': '成功-不带用户名', 'method': 'POST', 'url': '/member/register', 'data': '{"mobile_phone":#mobile#,"pwd":"xxxx","type":1}', 'expected': '{"code": 0, "msg": "OK"}', 'result': None, 'check_sql': '\'SELECT * FROM futureloan.member WHERE mobile_phone="{}"\''}

?(3)打印dic(我只打印了一部分,格式都差不多)

[{'case_id': 1, 'interface': 'register', 'title': '注册成功-带注册名', 'method': 'POST', 'url': '/member/register', 'data': '{"mobile_phone":#mobile#,"pwd":"xxxx","type":1,"reg_name":"34254sdfs"}', 'expected': '{"code": 0, "msg": "OK"}', 'result': None, 'check_sql': '\'SELECT * FROM futureloan.member WHERE mobile_phone="{}"\''}]

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:54:38  更:2022-07-17 16:54:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:21:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码