引言
使用python进行接口测试时常常需要接口用例测试数据、断言接口功能、验证接口响应状态等,如果大量的接口测试用例脚本都将接口测试用例数据写在脚本文件中,这样写出来整个接口测试用例脚本代码将看起来很冗余和难以清晰的阅读以及维护,试想如果所有的接口测试数据都写在代码中,接口参数或者测试数据需要修改,那不得每个代码文件都要一一改动?。因此,这种不高效的模式不是我们想要的。所以,在自动化测试中就有个重要的思想:测试数据和测试脚本分离,也就是测试脚本只有一份,其中需要输入数据的地方会用变量来代替,然后把测试输入数据单独放在一个文件中,这个存放测试输入数据的文件,通常是表格的形式或者其他格式文件,如excel文件、json文件、xml文件、txt文本文件等等。在python进行接口自动化测试时,为了方便管理和存储测试用例数据,一般将测试数据编写存储在excel文件中,测试脚本通过读取excel文件来实现测试数据加载,并运行得出测试用例数据执行的结果,并回写测试结果到excel文件中,这样就实现了测试脚本和数据的分离。而python操作excel文件的读写,这里需要安装并引入第三方模块:xlrd和xlwt以及xlutils,xlrd为读取excel模块,xlwt为向excel写数据的模块,xlutils可以复制excel并修改excel中的数据。下面就具体介绍xlrd和xlwt操作excel文件提供的通用方法和技巧,以及xlutils如何复制和修改excel,达到操作excel读写的目的。
一、xlrd、xlwt以及xlutils安装
1.使用pip安装
1 2 3 |
|
2.在PyCharm中安装
直接检索需要安装的模块名称即可,如xlrd:
二、xlrd操作excel文件的数据读取
新建一个excel文件,文件名称:excel_test.xlsx,文件编辑有两个sheet表,内容如下:
sheet1:
sheet2:
(1)打开excel文件,获取excel的sheet名
编辑如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
(2)获取sheet工作表页的对象
代码示例:
1 2 3 4 5 6 7 8 9 10 11 |
|
(3)获取sheet工作表的行、列数,整行、整列数据,具体的单元格数据
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
常见读取excel不同数据类型的返回问题,如读取日期格式的数据
一般使用sheet.cell(rowx,colx)方法获取单元格数据,单元格数据类型判断可以使用如下代码:
1 2 3 4 |
|
注:ctype : 0 empty,1 string, 2 number,3 date, 4 boolean, 5 error
读取单元格日期数据为浮点数的处理方式:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
因此在读取excel单元格数据,如遇到是日期格式的数据,可以加上如下代码判断并处理:
1 2 3 |
|
三、xlwt向excel文件写入数据
xlwt一般用于向excel文件写入数据,简单示例如下:
1 2 3 4 5 6 |
|
运行完成后会在该py文件的同级目录下生成一个book.xlsx的excel文件,并新增了api_test的sheet表名,第一行第一列写入数据:test
向excel写入数据时,可以设置单元格长宽、单元格合并、写入时间格式数据以及添加超链接等
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
运行后输出excel效果如下:
四、xlutils操作excel文件
(1)拷贝excel表格
xlutils模块下的copy可以复制拷贝excel文件,代码示例:
1 2 3 4 5 |
|
运行以上代码会在同级目录下生成一个book1.xlsx的excel文件,该文件和book.xlsx一样,只是文件名称不一样而已,也就是复制excel文件了
(2)修改excel文件内容
除了copy为其他excel文件外,也可以直接copy文件修改后,保存为同名的文件,那修改的内容将直接覆盖原excel文件,达到修改的目的
示例:
1 2 3 4 5 6 7 8 |
|
运行后book.xlsx表会修改更新
五、封装操作excel读和写的类
通过上面介绍,基本具备使用xlrd、xlwt、xlutils模块进行excel文件数据读取和向excel文件中写入数据,在进行接口测试时,我们说到需要:测试数据和测试脚本分离,后续的接口测试用例数据,我们统一写入excel表格中,然后通过操作excel来读取测试数据并将测试结果回填到excel中。因此,咱们需要对向excel读取数据和向excel写入数据的操作进行封装。
我们操作上面的api测试用例这个sheet,封装读取excel数据的类,代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
上面代码封装了读取excel数据的类,将每一行数据读取出来组装成字典并添加到列表中
实例化运行:
1 2 3 4 5 6 7 8 9 10 |
|
封装向excel写入数据的类,代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
这样我们就完成了读写excel操作的封装,后续接口测试数据的读取和写入就依靠这两个类了。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】