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

职场   2024-10-30 10:27   上海  
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 openpyxl
def 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 data


2.2 读取CSV文件

Python内置了csv模块,可以很方便地读取CSV文件。

import csv
def 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 data


2.3 读取YAML文件

读取YAML文件可以使用PyYAML库。

import yaml
def read_yaml(file_path): with open(file_path, 'r') as file: data = yaml.safe_load(file)    return data


2.3.1 字典

# 示例配置文件:example.yaml个人信息:  姓名: 王小明  年龄: 28
import yaml
def read_yaml(file_path): with open(file_path, 'r', encoding='utf-8') as file: # 确保文件编码为utf-8,以支持中文 data = yaml.safe_load(file) return data
data = read_yaml('example.yaml')print(data)  # 输出:{'个人信息': {'姓名': '王小明', '年龄': 28}}


2.3.2 列表

# 示例配置文件:example.yaml喜欢的水果:  - 苹果  - 香蕉  - 樱桃
import yaml
def read_yaml(file_path): with open(file_path, 'r', encoding='utf-8') as file: data = yaml.safe_load(file) return data
data = read_yaml('example.yaml')print(data)  # 输出:{'喜欢的水果': ['苹果''香蕉''樱桃']}


2.3.3 混合类型

# 示例配置文件:example.yaml个人资料:  姓名: 王小明  年龄: 28  爱好:    - 阅读    - 游泳  住址:    街道: 789 大街    城市: 未来城
import yaml
def read_yaml(file_path): with open(file_path, 'r', encoding='utf-8') as file: data = yaml.safe_load(file) return data
data = read_yaml('example.yaml')print(data)  # 输出:{'个人资料': {'姓名''王小明''年龄'28'爱好': ['阅读''游泳'], '住址': {'街道''789 大街''城市''未来城'}}}


2.3.4 包含列表的字典

# 示例配置文件:example.yaml人员列表:  - 姓名: 王小明    年龄: 28  - 姓名: 李小红    年龄: 25
import yaml
def read_yaml(file_path): with open(file_path, 'r', encoding='utf-8') as file: data = yaml.safe_load(file) return data
data = read_yaml('example.yaml')print(data)  # 输出:{'人员列表': [{'姓名''王小明''年龄'28}, {'姓名''李小红''年龄'25}]}


2.3.5 包含字典的列表

# 示例配置文件:example.yaml用户数据:  - 用户: 小明    编号: 1  - 用户: 小红    编号: 2
import yaml
def read_yaml(file_path): with open(file_path, 'r', encoding='utf-8') as file: data = yaml.safe_load(file) return data
data = read_yaml('example.yaml')print(data)  # 输出:{'用户数据': [{'用户''小明''编号'1}, {'用户''小红''编号'2}]}


2.3.6 复杂嵌套

# 示例配置文件:example.yaml公司信息:  名称: xx科技有限公司  员工:    - 姓名: 王小明      职位: 开发人员    - 姓名: 李小红      职位: 经理  地址:    街道: 1010 月光路    城市: 月光城
import yaml
def read_yaml(file_path): with open(file_path, 'r', encoding='utf-8') as file: data = yaml.safe_load(file) return data
data = read_yaml('example.yaml')print(data)  # 输出:{'公司信息': {'名称''xx科技有限公司''员工': [{'姓名''王小明''职位''开发人员'}, {'姓名''李小红''职位''经理'}], '地址': {'街道''1010 月光路''城市''月光城'}}}


2.4 读取JSON文件

读取JSON文件可以使用Python内置的json模块。

import json
def read_json(file_path): with open(file_path, 'r', encoding='utf-8') as jsonfile: data = json.load(jsonfile)    return data


2.5 读取XML文件

对于XML文件的读取,Python提供了几种不同的库,其中最常用的是xml.etree.ElementTree。

import xml.etree.ElementTree as ET
def 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

本文经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系进行删除


点击下方“阅读原文”,寻找职业新风向~


博为峰
博为峰20周年,青春正当燃,一起向未来。自2004年以来,博为峰为应届毕业生和职场新人提供IT职业培训,已创立职业教育培训品牌—学掌门。总部位于上海,全国18个城市设有分支服务机构。二十年来,博为峰始终坚守教学品质,绝大多数学员顺利就业。
 最新文章