前言:
在软件测试中,为项目编写接口自动化用例已成为测试人员常驻的测试工作。本文以python为例,基于笔者曾使用过的三种用例数据读取方法:xlrd、pandas、yaml,下面简要地介绍下它们的使用方法及简单分析。
1. Python第三方库xlrd
xlrd模块可用于读取excel文档,是一种最常用的用例读取方式,使用方式如下。以演示惯例---注册接口为例,首先新建一个excel文档,文档中自定义接口用例参数:
(以下data均为随机生成,不涉及任何系统)
python已安装第三方库后,开始读取接口用例。本次为了方便演示,方法未进行封装。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
xlrd代码演示
以下为实例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
执行py文件后,打印读取data列表,成功读取出excel文件中用例数据:
但是上面的方法会把整个excel文件的用例全部存放到一个列表中,数据取用不太方便。现在我们对数据进行拆分,结合ddt数据驱动方式,进行数据读取:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
通过ddt中的data及unpack方法,excel文件中的每条数据都是一个单独的列表,更便于提供给接口测试用例使用:
xlrd模块在接口自动化中的使用频率非常高,调用方法也非常简单。读取到excel测试用例后,还可以使用装饰器DDT进行数据拆分,使数据更加简化。
xlrd适用于项目接口数据较少、接口字段不经常调整的项目。如果项目中,接口数量非常多,在编写接口用例时,存放用例的excel文件内容会不断扩充。测试用例的易读性和维护性都会成为后期测试工作的难题,影响测试效率。
2. Python第三方库pandas
pandas是python的一个数据分析包,可帮助使用者处理大型数据集。使用pandas中的DataFrame(二维的表格型数据结构)方法,即可获取到excel表格中的测试数据。pandas与xrld一样,都可读取excel文件。
首先创建一个excel文件,存放测试数据:
pandas代码演示
实例代码:
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 |
|
调用封装好的方法,成功读取到excel文件中的全部用例数据:
该方法与xlrd类似,也是通过读取二维表格中数据的方式,获取到我们所需接口用例。
通过xlrd等方法读取excel文件中的测试用例,是接口测试中比较主流的数据读取方式。但是通过上面的案例展示可以发现,如果excel文件中的数据越来越多,后期测试的维护成本是比较高的,同时表格格式在大篇幅数据中,也不方便阅读。这也是此类方法的一个弊端。
3. Python第三方库yaml
yaml是一种用来写配置文件的序列化语言,文件格式输出可以是列表、字典,也支持嵌套。层级关系用空格区分,但不支持tab缩进。
破折号和空格( “ - ” ):列表格式
1 2 3 4 |
|
常见的yaml格式:
冒号和空格( “ :” ) :字典格式
1 2 3 4 5 6 7 8 9 10 11 |
|
yaml代码演示
读取yaml文件中的dict数据,代码如下:
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 |
|
请注意yaml.load在调用时,可能会因为yaml版本较高而提示异常。解决方法:指定loader = yaml.FullLoader可解决异常。
根据上面yaml的实际运用可以发现,相比excel表格存放的数据,yaml可读性更好,而且python本身也支持新建yaml文件,与脚本语言的交互性更佳。对于不同的测试模块,也可以新建不同的yaml文件,实现了功能模块之间的测试数据隔离。
总结
测试中,不管是以excel表格存放数据还是yaml文件存放数据,都能做到快速集成组装测试数据。但excel表格存放数据过大时,有可读性降低及脚本执行时间较长等问题。yaml拥有简洁、与python交互性高,可以把功能模板的测试数据相互隔离等优点。但也需要对yaml的写法规范有一些了解,才能正确使用。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】