目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
当做自动化测试时,测试用例逐渐变多情况下,如果所有测试用例都通过代码管理将会使得代码十分臃肿,而且维护成本会很高;
所以我们一般会通过Excel去管理所有的测试用例,而openpyxl库提供了访问Excel的方法
openpyxl的介绍
一个Python库,用于读取/写入Excel 2010 xlsx 、xlsm 、xltx 、xltm 文件
不能操作 xls 文件
openpyxl的概念
Workbook:excel工作表
Sheet:工作表中的一张表
Cell:其中的一个单元格
简单步骤:打开Workbook,选中Sheet,操作Cell
openpyxl的使用
import openpyxl
if __name__ == '__main__':
path = 'F:/imocInterface/case/imooc.xlsx'
# 读取excel文件
workbook = openpyxl.load_workbook(path)
# 读取所有sheet
sheet = workbook.get_sheet_names()
# 获取某个sheet
sheet = workbook[sheet[0]]
# 获取某个cell的值
cell_val = sheet.cell(row=2, column=2).value
print(cell_val)
调用 load_workbook() 等同于调用 open() ;
第8、10行代码可能浓缩成一行代码 workbook.get_sheet_by_name(“sheet的名字”) ,前提是你得知道sheet的命名;
cell(row, column, value=None) 三个参数分别是:行,列,值;若设置了value相当于赋值操作,会覆盖原本的值;
openpyxl操作单元格
1、访问单个cell
# 方式一:获取A4单元格的值
cell_val = sheet['A4'].value
# 方式二:获取第二行,第二列的单元格的值
cell_val = sheet.cell(row=2, column=2).value
2、访问多个cell
# A1-B3的单元格 共6个
ell_range = sheet['A1':'B3']
# A1-A3的单元格 共3个
cell_range = sheet['A1:A3']
# 第十行的单元格
cell_range = sheet[10]
# 第1、2行的单元格
cell_range = sheet[1:2]
注意:以上方法返回的是都是cell对象组成tuple
3、获取指定范围的cell
# 返回行
for col in sheet.iter_rows(min_row=1, min_col=1, max_col=3, max_row=2):
for cell in col:
print(cell)
# 返回列
for col in sheet.iter_cols(min_row=1, min_col=1, max_col=3, max_row=2):
for cell in col:
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() 方法不支持在只读模式使用
4、获取sheet内所有行和列的cell
# 以列的形式,获取sheet的全部cell
data = tuple(sheet.columns)
# 以行的形式,获取sheet的全部cell
data = tuple(sheet.rows)
# 获取所有数据
data = tuple(sheet.values)
# 指定返回某一行数据
print(data[2])
注意: sheet.rows 返回的是一个对象,需要用 tuple() 才能将对象转换成tuple,出于性能考虑, sheet.cloumns 方法不支持在只读模式使用
5、获取sheet的行数、列数
# 获取sheet最大行
data = sheet.max_row
# 获取sheet最多列
data = sheet.max_column
# 获取sheet最小行
data = sheet.min_row
# 获取sheet最小列
data = sheet.min_column
6、openpyxl写入数据
workbook = openpyxl.load_workbook(path)
sheet = workbook.active
sheet.cell(row=2, col=2, value="213")
workbook.save(filename=path)
注意:
写入数据的文件需要是可写文件,需要已关闭;若打开着excel的话无法写入会报 PermissionError: [Errno 13] Permission denied: ‘XXXXX.xlsx’ ;
其实就是四部曲:获取excel - 执行 workbook.active - 赋值操作 - 保存文件
赋值操作还可以是 sheet[“B2”] = “213” ,等价于上面第三行代码
save() 会覆盖原有文件,不会有提醒
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只要你坚持向前,努力不懈,终将抵达成功的彼岸。人生或许起伏不定,但奋斗是砥石,梦想是指南。每一次的努力都值得骄傲,因为它们在铺就通往辉煌的道路上。不要停下脚步,追逐自己的梦想,勇往直前!
只有拼尽全力,才能看到真正的自己。任何困难都无法阻挡你前进的步伐。坚持奋斗,你将收获辉煌的未来。不放弃,不言败,追求梦想的道路上,你绝对是无敌的存在。向前冲吧!
只有不停拼搏,才能成就辉煌;只有敢于冒险,才能追逐梦想;只有坚持不懈,才能战胜困难;只有努力奋斗,才能改变命运。相信自己,你一定行!