python接口自动化测试 - openpyxl基本使用

简介: python接口自动化测试 - openpyxl基本使用

前言


  • 当你做接口自动化测试时,测试用例逐渐变多情况下,如果所有测试用例都通过代码管理将会使得代码十分臃肿,而且维护成本会很高;
  • 所以我们一般会通过Excel去管理所有的测试用例,而openpyxl库提供了访问Excel的方法

 

openpyxl简单介绍


  • 一个Python库,用于读取/写入Excel 2010  xlsxxlsmxltxxltm 文件
  • 不能操作 xls 文件

 

openpyxl简单概念


  • Workbook:excel工作表
  • Sheet:工作表中的一张表
  • Cell:其中的一个单元格
  • 简单步骤:打开Workbook,选中Sheet,操作Cell

 

openpyxl简单使用


1 import openpyxl
 2 
 3 if __name__ == '__main__':
 4     path = 'F:/imocInterface/case/imooc.xlsx'
 5     # 读取excel文件
 6     workbook = openpyxl.load_workbook(path)
 7     # 读取所有sheet
 8     sheet = workbook.get_sheet_names()
 9     # 获取某个sheet
10     sheet = workbook[sheet[0]]
11     # 获取某个cell的值
12     cell_val = sheet.cell(row=2, column=2).value
13     print(cell_val)


包含知识点


  • 调用 load_workbook() 等同于调用 open()
  • 第8、10行代码可能浓缩成一行代码 workbook.get_sheet_by_name("sheet的名字") ,前提是你得知道sheet的命名
  • cell(row, column, value=None) 三个参数分别是:行,列,值;若设置了value相当于赋值操作,会覆盖原本的值

 

openpyxl操作单元格


访问单个cell

1     # 方式一:获取A4单元格的值
2     cell_val = sheet['A4'].value
3     # 方式二:获取第二行,第二列的单元格的值
4     cell_val = sheet.cell(row=2, column=2).value


访问多个cell


1     # A1-B3的单元格 共6个
 2     cell_range = sheet['A1':'B3']
 3 
 4     # A1-A3的单元格 共3个
 5     cell_range = sheet['A1:A3']
 6 
 7     # 第十行的单元格
 8     cell_range = sheet[10]
 9 
10     # 第1、2行的单元格
11     cell_range = sheet[1:2]


注意:以上方法返回的是都是cell对象组成tuple

 

获取指定范围的cell


1     # 返回行
2     for col in sheet.iter_rows(min_row=1, min_col=1, max_col=3, max_row=2):
3         for cell in col:
4             print(cell)
5 
6     # 返回列
7     for col in sheet.iter_cols(min_row=1, min_col=1, max_col=3, max_row=2):
8         for cell in col:
9             print(cell)


获取指定范围cell的测试结果

# 返回行
<Cell 'Sheet1'.A1>
<Cell 'Sheet1'.B1>
<Cell 'Sheet1'.C1>
<Cell 'Sheet1'.A2>
<Cell 'Sheet1'.B2>
<Cell 'Sheet1'.C2>
# 返回列
<Cell 'Sheet1'.A1>
<Cell 'Sheet1'.A2>
<Cell 'Sheet1'.B1>
<Cell 'Sheet1'.B2>
<Cell 'Sheet1'.C1>
<Cell 'Sheet1'.C2>


官方提醒:出于性能考虑, sheet.iter_cols() 方法不支持在只读模式使用

 

获取sheet内所有行和列的cell


1     # 以列的形式,获取sheet的全部cell
 2     data = tuple(sheet.columns)
 3 
 4     # 以行的形式,获取sheet的全部cell
 5     data = tuple(sheet.rows)
 6 
 7     # 获取所有数据
 8     data = tuple(sheet.values)
 9     # 指定返回某一行数据
10     print(data[2])


注意:sheet.rows 返回的是一个对象,需要用 tuple() 才能将对象转换成tuple

官方提醒:出于性能考虑, sheet.cloumns 方法不支持在只读模式使用

 

获取sheet的行数、列数


1     # 获取sheet最大行
 2     data = sheet.max_row
 3 
 4     # 获取sheet最多列
 5     data = sheet.max_column
 6 
 7     # 获取sheet最小行
 8     data = sheet.min_row
 9 
10     # 获取sheet最小列
11     data = sheet.min_column


openpyxl写入数据


1     workbook = openpyxl.load_workbook(path)
2     sheet = workbook.active
3     sheet.cell(row=2, col=2, value="213")
4     workbook.save(filename=path)


包含知识点

  • 写入数据的文件需要是可写文件,需要已关闭;若打开着excel的话无法写入会报 PermissionError: [Errno 13] Permission denied: 'XXXXX.xlsx'
  • 其实就是四部曲:获取excel - 执行 workbook.active - 赋值操作 - 保存文件
  • 赋值操作还可以是 sheet["B2"] = "213" ,等价于上面第三行代码
  • save() 会覆盖原有文件,不会有提醒

 

相关文章
|
1月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
2月前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
88 14
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
213 61
|
7天前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
51 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
5天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
29 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
1月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
75 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
2月前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
333 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
1月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
114 15
|
1月前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
1月前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。

热门文章

最新文章

推荐镜像

更多