上次我们已经将requests库封装成我们想要的样子了,我们的接口自动化已经完成了最开始的一步了,接下来我们需要完成我们相应的其他模块的封装,下面简单介绍下我们在接口自动化需要用到的模块吧
在接口自动化中我们常用的模块有requests、openpyxl、pymysql、configparser、ddt、HTMLTestRunner等一些模块
下面介绍下openpyxl是怎么用的吧

安装方式

  pip install openpyxl

使用方式
直接看代码块吧,详细描述在代码块里面的注释会写的

 import openpyxl

 # 获取wb的对象
wb = openpyxl.load_workbook(r"D:\test.xlsx")
# 获取工作表
sheet = wb["test1"]
# 读取改工作表的最大行
print(sheet.max_row)

上面的只是一个openpyxl的简单用法,获取Excel里面的数据我直接封装到类里面了
下面的封装方法都是适用任何项目的

import openpyxl

class ReadExcel:
"""读取Excel"""
def __init__(self, file_path, sheet_name):
self.file_path = file_path
self.sheet_name = sheet_name def open(self):
"""获取wb对象"""
self.wb = openpyxl.load_workbook(self.file_path) def get_sheet(self):
"""
获取sheet
"""
self.open()
sheet = self.wb[self.sheet_name]
self.wb.close()
return sheet def get_cell(self, row, col):
"""
获取单元格对象
"""
object = self.get_sheet().cell(row, col)
self.wb.close()
return object def get_cell_value(self, row, col):
"""
获取某一个单元格的值
"""
data = self.get_cell(row, col).value
self.wb.close()
return data def read(self):
"""读取所有数据"""
# 运用列表推导式获取title
headers = [i.value for i in self.get_sheet()[1]]
row_data = []
for row in range(2, self.get_sheet().max_row+1):
data = []
for col in range(1, self.get_sheet().max_column+1):
data.append(self.get_cell_value(row, col))
# 用zip函数将两个列表组合成字典
data_info = dict(zip(headers, data))
row_data.append(data_info)
self.wb.close()
return row_data def write(self, row, col, values):
"""
回写数据
:param row:
:param col:
:param values:
:return:
"""
self.get_cell(row, col).value = values
self.save()
return self.get_cell(row, col).value def save(self):
"""
保存
:return:
"""
self.wb.save(self.file_path)

读取所有的数据展示是这样的:

其实在做Excel的数据回写,一般是采用静态方法,我上面没有采用静态方法的原因是因为我的每一个wb对象使用完之后都是进行关闭的,所以不会有什么影响,但是如果说你的wb对象是在init方法中获取,建议还是回写操作用静态方法。
--------------------------------------------------------------------------------------------------------------------------------------学无止境,欢迎大家提意见,共同交流进步----------------------------------------------------------------------------------------------------------------------------------------------------------------------

接口自动化--读取Excel操作(openpyxl)的更多相关文章

  1. 接口自动化 之 unittest+ddt+openpyxl 综合

    前面写过python 之 unittest初探 和 python 之 unittest+ddt 两篇文章.在之前的文章中,写过可以再次优化.今天写第三篇的目的,就是在原有基础上,基于 openpyxl ...

  2. 基于Python的接口自动化-读写excel文件

    引言 使用python进行接口测试时常常需要接口用例测试数据.断言接口功能.验证接口响应状态等,如果大量的接口测试用例脚本都将接口测试用例数据写在脚本文件中,这样写出来整个接口测试用例脚本代码将看起来 ...

  3. python(读取excel操作-xlrd模块)

    一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 或者在cmd窗口  pip install  ...

  4. python(读取 excel 操作 xlrd 模块)

    一.安装 xlrd 模块 到 python 官网下载 http://pypi.python.org/pypi/xlrd 模块安装,前提是已经安装了 python 环境. 或者在 cmd 窗口  pip ...

  5. python接口自动化读取json,yaml配置文件+封装requests+unittest+HTMLRunner实现全自动化

    # coding=utf-8 import json import requests class TestApi(object): """ /* @param: @ses ...

  6. (接口自动化)Python3操作MySQL数据库

    基础语法: import pymysql #导入模块 conn = pymysql.connect(host='localhost',user='root', passwd='123456', db= ...

  7. 接口自动化——读取Excle中遇到的问题

    一.module 'openpyxl' has no attribute 'load_workbook'问题 原因:在pycharm中py文件名字为openpyxl导致 修改方法:重新对py名字进行命 ...

  8. python接口自动化10-excel设计模式实战

    前言 一.简介 1.环境准备:python+requests+excel+unittest+ddt,主要安装以下环境,其它一般都有了,没有自行安装: pip install xlrd pip inst ...

  9. 纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例

    查看完整文章点击原文链接:纯python自研接口自动化脚本更新版本,让小白也能实现0到1万+的接口自动化用例 你是否还在用postman\jmeter做接口自动化吗?用python的开源框架[unit ...

随机推荐

  1. vb.net 获取文件的版本号

    dim strVersion =  Reflection.Assembly.LoadFrom(strFileName).GetName().Version.ToString()

  2. R语言参数传递 按引用传递

    R 语言的参数传递是按照引用传递的,二者共享内存 如果想要按值传递 使用函数 copy()

  3. 20165230田坤烨网络对抗免考报告_基于WIN10的渗透攻击

    目录 简单信息收集 主机发现 ping nmap 端口扫描 nmap OS及服务版本探测 nmap -sV 绕过防火墙尝试 诱饵 随机数据长度 随机顺序扫描目标 MAC地址欺骗 实现win10的渗透攻 ...

  4. Sc config http start= disabled

    我不小心使用这个命令 Sc config http start= disabled, 现在http服务 无法启动 管理员运行 sc config http start= demand & ne ...

  5. 将物理机转换成vmware虚机

    随着虚拟化的快速发展,公司主要是以公有云+私有云结合的混合云部署,据我不成熟的了解,目前很少有公司会将一台单独的物理机作为服务器,在公司内部大家逐渐接受了私有云的部署方案,这样做不但可以节省硬件资源, ...

  6. docker 学习操作记录 4

    记录3 [BEGIN] // :: Connecting to ... Connection established. To escape to local shell, press Ctrl+Alt ...

  7. [原创]Ladon5.7大型内网渗透综合漏洞扫描器

    Ladon LadonGUI Cobalt Strike PowerLadon PythonLadon LinuxLadon 使用说明 ID 主题 URL 1 Ladon文档主页 https://gi ...

  8. [转帖]从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?

    从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑? 2019-10-08 10:26:28 阿里云云栖社区 阅读数 54   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...

  9. Unary模式下客户端创建 default-executor 和 resolver-executor 线程和从启动到执行grpc_connector_connect的主要流程

    (原创)C/C/1.25.0-dev grpc-c/8.0.0, 使用的例子是自带的例子GreeterClient 创建 default-executor 和 resolver-executor 线程 ...

  10. LocalDateTime代替Date

    为什么需要LocalDate.LocalTime.LocalDateTime Date如果不格式化,打印出的日期可读性差 Tue Sep 10 09:34:04 CST 2019 使用SimpleDa ...