2021⾃动化测试Python处理Excel⼩技巧【温故知新】
在⾃动化测试,尤其是接⼝⾃动化测试中,我们经常使⽤Excel做为数据驱动,那么如何快速的操作Excel呢?这⾥简单介绍⼏种常⽤的第三⽅库
⼀.操作excel第三⽅模块库
xlrd
xlwt
xlutils
openpyxl
⼆.使⽤xlrd读取excel⽂件
1.安装
windows:pip install xlrd
mac:pip3 install xlrd
2.具体代码
import os
import xlrd
import xlwt
def read_excel():
# 获取excel
base_dir = os.path.dirname(os.path.abspath(__file__))
testdata = base_dir + '/../testcases/testcases.xls'
# 打开xls⽂件
data = xlrd.open_workbook(testdata)
# 打开第⼀张表
table = data.sheets()[0]
nrows = ws # 获取表的⾏数
for i in range(nrows):
sql server数据库导出导入文件
if i == 0:# 跳过⾸⾏,⾸⾏为title
continue
print (w_values(i))
if __name__ == '__main__':
read_excel()
3.运⾏结果
[1.0, '登录成功获取token', 'SIT', 'test-mrjade/admin/token', 'post', '{\n"json":{"password":"1234","username":mrjade"}\n}', 200.0, 'json', '[["token","$.."]]',
[2.0, '注册', 'SIT', 'test-mrjade/admin/register', 'post', '{\n"json":{"password":"1234","username":mrjade"}\n}', 200.0, 'json', '', '', '']
4.注意:xlrd只能读取excel,不能进⾏其它操作,且xlrd只能操作后缀为.xls的⽂件,如果操作后缀为.x
lsx的⽂件,则会抛出异常
Traceback (most recent call last):
File "/Users/TesterRoad/Documents/python/ReadExcel.py", line 27, in <module>
read_excel()
File "/Users/TesterRoad/Documents/python/ReadExcel.py", line 17, in read_excel
data = xlrd.open_workbook(testdata)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/xlrd/__init__.py", line 170, in open_workbook
raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported
三.使⽤xlwt写⼊⽂件
1.安装
windows:pip install xlwt
mac:pip3 install xlwt
2.具体代码
def write_excel():
wbk = xlwt.Workbook()
# sheet表取名为orderredhat系统卡在启动界面
听起来很高级的颜名字sheet = wbk.add_sheet('order')
# 将每⾏数据放到⼀个元组中,将所有数据放到⼀个list中,写⼊excel
testdata = [('id', 'title', 'env', 'url', 'method', 'request_data', 'status_code', 'res_type', 'extract', 'expect_data', 'sql'),('1', '登录成功获取token', 'SIT', 'test-mrja    # 遍历数组(excel⾏数据)
for i in range(len(testdata)):
print(testdata[i])
# 遍历数组中的元组(⾏单元格数据)
for j in range(len(testdata[i])):
# 将数据写⼊excel,i表⽰第⼏⾏,j表⽰单元格
sheet.write(i,j,testdata[i][j])
# excel保存⽬录
base_dir = os.path.dirname(os.path.abspath(__file__))
save_testdata = base_dir + '/../testcases/testcases1.xls'
# 保存
wbk.save(save_testdata)
if __name__ == '__main__':
write_excel()
3.运⾏结果
4.需要注意的是xlwt是不能对excel中数据做修改操作的
四.使⽤xlutils修改excel数据
1.安装
windows:pip install xlutils
mac:pip3 install xlutils
2.具体代码
py import copy
def edit_excel():
# excel⽬录
base_dir = os.path.dirname(os.path.abspath(__file__))
save_testdata = base_dir + '/../testcases/testcases1.xls'
# 打开excel
workbook = xlrd.open_workbook(save_testdata)
workbooknew = copy(workbook)
ws = _sheet(0)
# 将第3⾏,第2列修改为注册成功
ws.write(2, 1, '注册成功')
# 保存修改后的excel
workbooknew.save(save_testdata)
if __name__ == '__main__':
edit_excel()
3.运⾏结果
五.使⽤openpyxl修改excel数据(墙列推荐)
1.安装
eclipse导入别人的源代码windows:pip install openpyxl
mac:pip3 install openpyxl
2.具体代码
from openpyxl import load_workbook
def useopenpyxl_edit_excel():
# excel⽬录
base_dir = os.path.dirname(os.path.abspath(__file__))    save_testdata = base_dir + '/../testcases/testcases.xlsx'    # 打开excel
workbook = load_workbook(save_testdata)
# 获取sheet
ws = workbook["member"]
print(ws)
# 创建⼀个列表容器存放数据
easy是什么软件data = []
# 将所有⾏数据转换成list
row_list = ws)
print("row_list:",row_list)
# 获取表头
excel_title = row_list[0]
print("获取表头:",excel_title)
title_list = []
i = 1;
for row in excel_title:
python基础知识测试
print("第1⾏第"+str(i)+"个单元格数据:",row.value)
# 将获取的表头数据存放在list中
title_list.append(row.value)
i += 1
print("表头字段:",title_list)
# 5. 获取其他数据
for row in row_list[1:]:
cell_list = []
# 获取每⼀个⾏数据
for cell in row:
# print(cell.value)
cell_list.append(cell.value)
print("除表头外的数据:",cell_list)
# 将表头与这⼀⾏数据打包,转换成字典
print(dict(zip(title_list,cell_list)))
if __name__ == '__main__':
useopenpyxl_edit_excel()
3.运⾏结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。