⼀篇⽂章告诉你Python接⼝⾃动化测试中读取Text,Excel,Yaml
⽂件的⽅法
前⾔
不管是做Ui⾃动化和接⼝⾃动,代码和数据要分离,会⽤到Text,Excel,Yaml。今天讲讲如何读取⽂件数据
Python也可以读取ini⽂件,
记住⼀点:测试的数据是不能写死在代码⾥⾯的,这个是原则问题
⽬录
读取Text
需求:
问题解析:
1.打开txt⽂件
2.读取每⼀⾏数据
3.将⽂件存放在列表中(⽅便循环读取)
#!/usr/bin/python3
with open("E:/", "r") as f:
#readlines读取⽂件内每⼀⾏数据
for line adlines():
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 = ws, ls
def read_excl(self):
# 获取第⼀⾏数据key
first_row = w_values(0)
# print(first_row) # [编号,接⼝⽅式,host, params, result]
# 定义空列表,⽤于存放⽤例数据
# 从第⼀⾏⽤例开始循环(1, 6)循环5次
for i in range(1, ws):
# 定义空字典
info_dict = {}
# 每1次⼤循环要循环5次(字典⾥有5组数据)
for j in range(0, ls):
# j=0,1,2,3,4
# 添加到字典 (1)[0]---第2⾏第1例的值,依次循环
info_dict[first_row[j]] = w_values(i)[j]
# 将数据存放在列表中
sult)
if__name__ == "__main__":
ex = excel_data()
运⾏结果:
读取Yaml
yaml⽂件后缀名为yaml,如⽂名件.yaml
yaml为第3⽅模块,需另⾏安装pip install pyyaml
问题解析:
1.定义⽂件地址
2.打开yaml⽂件
3.读取⽂件后转成字典以⽅便读取
#!/usr/bin/python3
import yaml
import os
# 获取当前脚本所在⽂件夹路径
curPath = os.path.dirname(alpath(__file__))
# 获取yaml⽂件路径
yamlPath = os.path.join(curPath, "E:\\api_interface\\config\\yaml.yaml")
# open⽅法打开直接读出来
open_file = open(yamlPath, 'r', encoding='utf-8')
result = ad()
file_dict = yaml.load(result, Loader=yaml.FullLoader) # ⽤load⽅法转字典
print(file_dict)
运⾏结果:
如果对软件测试、接⼝测试、⾃动化测试、性能测试、持结集成、⾯试经验交流。感兴趣可以893694563,内会有不定期的发放免费的资料链接,这些资料都是从各个技术⽹站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给⼤家
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论