📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
大家在写接口自动化测试框架的时候,都会需要一些测试数据,比如说接口的入参、断言数据的等等,往往需要我们将这些数据提前准备好。
我在之前准备测试数据的方式都是手动将测试数据转换成json文件,这种方式有两个很明显的弊端:
工作量大,效率低。
当测试用例和测试数据比较多的时候,手动转化的工作量特别大,而且容易遗漏、出错,效率也很低。
灵活性低,测试数据不易维护。
一旦后期测试用例改动或更新都需要手动去修改json文件,非常不方便,增加了对人工的依赖,降低了测试数据的可维护性。
手动准备测试数据的方式肯定是有待优化的,最近学习到一种将测试用例转换成测试数据的方法,就是使用openpyxl库,读取Excel文件中的测试用例,转化成测试数据。
相比之前手动准备测试数据的方式,这种方式更加便捷和灵活。可以轻松的完成测试用例到测试数据的转换,非常好用。
openpyxl库是一个用于读写Excel 2010及更高版本的.xlsx/.xlsm文件的Python库。它提供了强大的接口,使得开发者可以轻松地操作Excel文档,进行数据读写和格式化处理。
最新的版本是openpyxl 3.1.5,在Python官网可以清楚的看到openpyxl版本和一些编码示例.
-
三方库地址:
https://pypi.org/project/openpyxl/
下面来介绍下如何通过openpyxl三方库操作Excel读取和写入数据。
01 编写好接口测试用例,
示例如下。
02 编写openpyxl操作Excel数据的方法。
2.1 导包
导包示例
其中os、json是Python的标准库,不需要下载,直接导入即可;openpyxl因为是第三方库,使用前需要进行下载,使用pip包管理器下载即可,可以在命令行中输入以下命令:
pip install openpyxl
验证是否安装成功,可输入以下命令:
cell_config、BASE_DIR是我在配置文件中自定义的变量,用于后续代码中,后续会介绍到。
2.2定义FileTool类,类中定义__init__()初始化方法打开制定Excel文件,获取表单对象。
cls.filename = BASE_DIR + os.sep + "data" + os.sep + filename是设置对象的文件路径,就是所读取的excel文件的地址
-
BASE_DIR:自定义的变量,用于存放当前编码项目所在的根路径
-
os.sep:这是Python的os模块中的一个变量,表示当前操作系统的路径分隔符。在Windows系统中,路径分隔符通常是反斜杠 \,而在Unix/Linux/macOS系统中,路径分隔符是正斜杠 /。
使用os.sep可以使你的代码更加可移植,因为它会根据运行代码的操作系统自动选择正确的路径分隔符。
-
data:自定义的用于存放测试用例Excel文件的目录
2.3 定义read_excel方法,读取Excel文件数据。
For循环中下标从2开始是因为Excel文件中的第一行是表头名称,所以需要从第2行开始读取数据,其中读取字典的语句中,所有的字典key都是在上文2.1中提到的config配置文件中定义好的cell_config,value值分别对应excel文件中表头所在的列,第一列的序号是1,以此类推。
这样就可以将对应列的数据与定义的参数名关联起来。
2.4 定义write_excel方法,向excel中写入数据。
x_y是data字典中的键,x_y的value保存的是excel文件中备注列“desc”所在的行号,列号,x_y[0], x_y[1]代表取列表中第一个元素和第二个元素,即行号、列号。
每条测试用例数据读取完后,向excel中对应的备注列中写入数据读取完成的标识。
2.5定义write_json方法,将读取的数据写入到json文件中。
在2.3 中定义的read_excel方法内,会在for循环执行完成后,也就是读取到所有需要执行的测试用例的数据并存入列表后,调用write_json方法将保存在列表中的数据最终写入到json文件中。
2.6 定义read_json方法,读取json中的测试数据。
这部分是为了将来在执行测试用例时,通过读取数据自动生成测试用例,实现参数化,这部分会在今后分享文章中介绍。
03 调用方法,验证执行结果
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】