成都博为峰

数据驱动自动化测试:掌握5大文件格式的选择技巧

发布日期:2024年11月05日

01前言在自动化测试中,可以使用不同格式的数据文件,以数据...

01前言在自动化测试中,可以使用不同格式的数据文件,以数据驱动的方式执行测试。下面教大家如何根据实际使用场景,选择正确的文件格式来驱动测试、读取不同文件的数据。02读取文件1. 不同的格式文件对比

根据以上表格,我们可以得出以下结论:YAML和JSON对于数据结构的支持和书写程度较好,但是YAML写法更加简洁且可以添加注释,推荐YAML文件格式;当存在海量数据需要读取时,YAML的处理速度会比Excel慢一个量级,所以YAML更适合做单条用例或者少量用例的测试;对于大量数据的测试,CSV格式由于其简单和快速的处理速度,可能是更好的选择。2. 读取文件以下是使用Python语言读取Excel、CSV、YAML、JSON和XML文件的示例方法。2.1 读取Excel文件读取Excel文件,可以使用openpyxl库(对于.xlsx文件)或xlrd库(对于.xls文件)。import openpyxldef read_excel(file_path, sheet_name=0): workbook = openpyxl.load_workbook(file_path) sheet = workbook[sheet_name] data = [] for row in sheet.iter_rows(values_only=True): data.append(row)    return data2.2 读取CSV文件Python内置了csv模块,可以很方便地读取CSV文件。import csvdef read_csv(file_path): with open(file_path, newline="", encoding="utf-8") as csvfile: reader = csv.reader(csvfile) data = [row for row in reader]    return data2.3 读取YAML文件读取YAML文件可以使用PyYAML库。import yamldef read_yaml(file_path): with open(file_path, "r") as file: data = yaml.safe_load(file)    return data2.3.1 字典# 示例配置文件:example.yaml个人信息: 姓名: 王小明  年龄: 28import yamldef read_yaml(file_path): with open(file_path, "r", encoding="utf-8") as file: # 确保文件编码为utf-8,以支持中文 data = yaml.safe_load(file) return datadata = read_yaml("example.yaml")print(data)  # 输出:{"个人信息": {"姓名": "王小明", "年龄": 28}}2.3.2 列表# 示例配置文件:example.yaml喜欢的水果: - 苹果 - 香蕉  - 樱桃import yamldef read_yaml(file_path): with open(file_path, "r", encoding="utf-8") as file: data = yaml.safe_load(file) return datadata = read_yaml("example.yaml")print(data)  # 输出:{"喜欢的水果": ["苹果", "香蕉", "樱桃"]}2.3.3 混合类型# 示例配置文件:example.yaml个人资料: 姓名: 王小明 年龄: 28 爱好: - 阅读 - 游泳 住址: 街道: 789 大街    城市: 未来城import yamldef read_yaml(file_path): with open(file_path, "r", encoding="utf-8") as file: data = yaml.safe_load(file) return datadata = read_yaml("example.yaml")print(data)  # 输出:{"个人资料": {"姓名": "王小明", "年龄": 28, "爱好": ["阅读", "游泳"], "住址": {"街道": "789 大街", "城市": "未来城"}}}2.3.4 包含列表的字典# 示例配置文件:example.yaml人员列表: - 姓名: 王小明 年龄: 28 - 姓名: 李小红    年龄: 25import yamldef read_yaml(file_path): with open(file_path, "r", encoding="utf-8") as file: data = yaml.safe_load(file) return datadata = read_yaml("example.yaml")print(data)  # 输出:{"人员列表": [{"姓名": "王小明", "年龄": 28}, {"姓名": "李小红", "年龄": 25}]}2.3.5 包含字典的列表# 示例配置文件:example.yaml用户数据: - 用户: 小明 编号: 1 - 用户: 小红    编号: 2import yamldef read_yaml(file_path): with open(file_path, "r", encoding="utf-8") as file: data = yaml.safe_load(file) return datadata = read_yaml("example.yaml")print(data)  # 输出:{"用户数据": [{"用户": "小明", "编号": 1}, {"用户": "小红", "编号": 2}]}2.3.6 复杂嵌套# 示例配置文件:example.yaml公司信息: 名称: xx科技有限公司 员工: - 姓名: 王小明 职位: 开发人员 - 姓名: 李小红 职位: 经理 地址: 街道: 1010 月光路    城市: 月光城import yamldef read_yaml(file_path): with open(file_path, "r", encoding="utf-8") as file: data = yaml.safe_load(file) return datadata = read_yaml("example.yaml")print(data)  # 输出:{"公司信息": {"名称": "xx科技有限公司", "员工": [{"姓名": "王小明", "职位": "开发人员"}, {"姓名": "李小红", "职位": "经理"}], "地址": {"街道": "1010 月光路", "城市": "月光城"}}}2.4 读取JSON文件读取JSON文件可以使用Python内置的json模块。import jsondef read_json(file_path): with open(file_path, "r", encoding="utf-8") as jsonfile: data = json.load(jsonfile)    return data2.5 读取XML文件对于XML文件的读取,Python提供了几种不同的库,其中*常用的是xml.etree.ElementTree。import xml.etree.ElementTree as ETdef read_xml(file_path): tree = ET.parse(file_path) root = tree.getroot() data = [] for child in root: record = {} for subchild in child: record[subchild.tag] = subchild.text data.append(record)    return data

END链接:https://blog.csdn.net/weixin_48321392/article/details/142934508本文经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系进行删除点击下方“阅读原文”,寻找职业新风向~

加微信咨询
小博老师 @博为峰
微信号:bwf******zx

提供专业的课程咨询服务

微信咨询
相关资讯
免费领→软件测试入门学习资料(入门课程+学习路线+PDF文档) *高月薪20k!沪漂3年后,东北小伙怒转行软件测试,3个月薪资翻番! 面试中被问到为什么离职时,怎样回答才能避免踩到雷区? 为了不加班,大厂测试员降薪去事业单位,半年后:后悔了! 想离职,但又怕找不到合适的工作...... 怎么办?
相关课程