实战--Python读取Excel表中的用例
Posted 骑着乌龟赶猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战--Python读取Excel表中的用例相关的知识,希望对你有一定的参考价值。
前言
不管是做Ui自动化和接口自动,代码和数据要分离,会用到Text,Excel,Yaml。今天讲讲如何读取文件数据
Python也可以读取ini文件,传送门
记住一点:测试的数据是不能写死在代码里面的,这个是原则问题
目录
读取Text
需求:
问题解析:
1.打开txt文件
2.读取每一行数据
3.将文件存放在列表中(方便循环读取)
#!/usr/bin/python3 with open("E:/test.txt", "r") as f: #readlines读取文件内每一行数据 for line in f.readlines(): line = line.strip(\'\\n\') #去掉列表中每一个元素的换行符 # split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) data = (line.split(",")) print(data)
运行结果:
读取Excel
小伙伴都知道,测试用例是写在Excel里的,如果是少量的用例很容易处理,如果用例成百上千条呢?
自动化测试的话,需要对用例数据进行读取,那必须循环读取才可以实现自动化。那么问题来了,怎么做呢?
用例如下图:
问题解析:
1、用列表存放这些用例数据,所以要用到列表
2、每一行用例要存放在字典内,所以需要用到字典
3、循环写入到字典,然后存放到列表内
#!/usr/bin/python3 import xlrd class excel_data: """读取excl表接口数据""" data_path = "E:\\\\api_interface\\\\data\\\\interface.xlsx" # 打开文件 excel = xlrd.open_workbook(data_path) # 通过下标定位表格 sheet = excel.sheet_by_index(0) # 行: 6 和列数: 5 rows, cols = sheet.nrows, sheet.ncols def read_excl(self): # 获取第一行数据key first_row = self.sheet.row_values(0) # print(first_row) # [编号,接口方式,host, params, result] # 定义空列表,用于存放用例数据 self.result = [] # 从第一行用例开始循环(1, 6)循环5次 for i in range(1, self.rows): # 定义空字典 info_dict = {} # 每1次大循环要循环5次(字典里有5组数据) for j in range(0, self.cols): # j=0,1,2,3,4 # 添加到字典 (1)[0]---第2行第1例的值,依次循环 info_dict[first_row[j]] = self.sheet.row_values(i)[j]
# 将数据存放在列表中 self.result.append(info_dict) print(self.result) if __name__ == "__main__": ex = excel_data() ex.read_excl()
运行结果:
读取Yaml
yaml文件后缀名为yaml,如文名件.yaml
yaml为第3方模块,需另行安装pip install pyyaml
问题解析:
1.定义文件地址
2.打开yaml文件
3.读取文件后转成字典以方便读取
#!/usr/bin/python3 import yaml import os # 获取当前脚本所在文件夹路径 curPath = os.path.dirname(os.path.realpath(__file__)) # 获取yaml文件路径 yamlPath = os.path.join(curPath, "E:\\\\api_interface\\\\config\\\\yaml.yaml") # open方法打开直接读出来 open_file = open(yamlPath, \'r\', encoding=\'utf-8\') result = open_file.read() file_dict = yaml.load(result, Loader=yaml.FullLoader) # 用load方法转字典 print(file_dict)
运行结果:
如果对软件测试、接口测试、自动化测试、性能测试、持结集成、面试经验交流。感兴趣可以902061117,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家
以上是关于实战--Python读取Excel表中的用例的主要内容,如果未能解决你的问题,请参考以下文章
Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例