目录
一、openpyxl介绍和安装
1、为什么要学操作excel
存测试数据:
有的时候大批量的数据,存到txt里面显然不是最佳的方式,我们可以存到excel里面去,第一方便我们存储数据和做数据,一方面方便我们读取数据,比较明朗。测试的时候就从数据库中读取出来。这点是非常重要的!至于其他的用处,你自己慢慢去体会总结。
存测试结果:
可以批量把结果存到excel中,也比较好整理数据,比我们的txt要好
2、安装openpyxl
python中与excel操作相关的模块
xird库:从excel中读取数据,支持xls,xlsx
xlwt库:对excel进行修改操作,不支持对xlsx格式的修改
xlutils库:在xlwt和xlrd中,对一个已经存在文件进行修改
openpyxl:主要针对xlsx格式的excel进行读取和编辑
官方说法:
openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.
网址:Python Resources for working with Excel - Working with Excel Files in Python
安装方式:
pip install openpyxl
3、Excel中的三大对象:
WorkBook:工作簿对象
Sheet:表单对象
Cell:表格对象
二、openpyxl对Excel的操作
1、打开工作簿 Workbook方法
打开已存在的文件
wb=openpyxl.load_workbook(‘xxx.xlsx’)
将工作簿保存为文件
workbook.save(‘xxx.xlsx’)
注意点:如果保存的文件名存在,将会覆盖原来文件
2、读写数据的方法
操作流程:
打开一个excel文件,或者创建一个excel文件,生成一个工作簿(workbook)对象。
获取某个表单(sheet)对象
在表单对象中单元格(cell)中读、写、修改数据。
相关操作
打开文件,生成工作簿
#第一步:打开文件
wb = openpyxl.load_workbook(‘test.xlsx’)
获取操作的表单
sh = wb[‘Sheet’]
读取指定表格内数据
#参数row行 column:列
#根据行列获取到表格
cell = sheet.cell(row=1,column=8)
#获取表格中的数据
print(cell.value)
写入数据
#保存数据
#参数row:行 column:列 value写入值
sheet.cell(row=1,column=8,value=199)
workbook.save(‘test.xlsx’)
获取总行数
#最大行数
max_row = sheet.sh.max_row
获取总列数
#最大列数
max_column = sh.max_column
注意:openpyxl中列和行的起始标识是1,但是别的操作数据的未必是这样
3、读取数据的类型
excel中的数值和其他类型读取过来有什么区别?
数值类型
字符串类型
三、数据读取类封装
DDT数据驱动
安装
pip install ddt
1、ddt的原理:【Data driver test】
ddt其实是一个装饰器(装饰器感兴趣的自行去了解,不了解也没有关系)
ddt可以完成什么操作?
有了ddt它会根据你传递进来的数据来决定要生成几个测试用例
模块导入
form ddt import ddt.data
主要知识点
ddt 装饰测试类
data装饰测试用例
1、ddt模块包含类的装饰器ddt和两个方法装饰器data
ddt.ddt:装饰类,也就是继承TestCase的类。
ddt.data:装饰测试方法,参数是一系列的值。
ddt.file_data:装饰测试方法,参数是文件名。文件可以是json或者yaml类型。
注意,如果文件是以“.yml”或者".yaml"结尾,ddt会作为yaml类型处理,其他文件都会作为json文件处理。
如果文件是列表,列表的值会作为测试用例参数,同时,会作为测试用例方法名后缀显示。
如果文件是字典,字典的key会作为测试用例方法的后缀显示,字典的value会作为测试用例参数。
ddt.unpack:传递的是复杂的数据结构时使用,比如使用列表或者元组,添加unpack后,ddt会自动把元组或者列表对应到多个参数上。
2、测试用例方法名生成规则
使用ddt后,会产生一个新的测试用例方法名,即定义的测试用例方法名,比如:def test_one(),这里就是test_one。
data:如果传递过来的数据存在__ name__ 属性,则这里就是该数据的__ name__ 值。如果未定义__ name__ 属性,ddt会尽量将传递过来的值转化为python标识符,作为data显示。比如:(1,3)就转为1_3。需要注意的是,如果数据是字典,则这里就是字典的key。
下一个文章是:logging日志模块敬请期待。
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
② 软件测试/自动化测试标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)