Pytest+Yaml 数据驱动测试用例
简介:当需要执行的测试用例达到一定的量后,存储和管理测试用例直接放在test_case显然是不合理的,需要将测试用例存储在测试用例文件。综合来看,主要有3种方式存储,即:excel、csv、yaml。
Excel: 提供了丰富的格式和功能,可以方便地进行编辑和维护。图形界面使得用户可以直观地看到数据。但不是纯文本格式,不适合版本控制,也不易于自动化测试工具的集成。
CSV: 纯文本格式,易于版本控制,也易于自动化工具处理。缺乏Excel的直观性和功能,不适合存储复杂的测试用例数据。
YAML:可读性高,可读取的数据序列化格式,易于维护和阅读。它支持复杂的数据结构,如列表和字典。YAML不提供Excel那样的可视化界面。
小记:萝卜青菜各有所爱,如果需要设计比较复杂的业务场景,个人更倾向于yaml。
安装依赖:
pip install pyyaml
测试用例文件:yaml
-
test_demo: -
test_demo_01: -
before_cmd_list: ["ls -al", "hostnamect"] -
cmd_list: ["free -h"] -
assert: ["Mem:"] -
after_cmd_list: ["date", "who"] -
test_demo_02: -
before_cmd_list: ["pwd"] -
cmd_list: ["date"] -
assert: ["2023"] -
after_cmd_list: ["echo python2"] -
test_demo_03: -
before_cmd_list: ["pwd"] -
cmd_list: ["date"] -
assert: ["2024"] -
after_cmd_list: ["echo python3"]
编写读取yaml测试用例的方法 read_yaml.py
-
import yaml -
def read_yaml(yaml_path, node_name): -
with open(yaml_path, "r", encoding="utf8")as f: -
data = yaml.safe_load(f) -
print(data[node_name]) -
return list(data[node_name].values()) -
if __name__ == '__main__': -
yaml_path = r"../data/demo.yaml" -
data = read_yaml(yaml_path, "test_demo")
test_demo.py解析参数化
-
import time -
import pytest -
from lib.read_ym import read_yaml -
from logger import log -
class TestDemo: -
@pytest.mark.parametrize("case_info", read_yaml("./data/demo.yaml", "test_demo")) -
def test_demo(self, case_info): -
log.info(case_info["before_cmd_list"]) -
log.info(case_info["cmd_list"]) -
log.info(case_info["assert"]) -
log.info(case_info["after_cmd_list"])
执行main.py
-
import os -
import pytest -
if __name__ == "__main__": -
# step-1:use pytest run test_case -
pytest.main(["-s", "test_case/test_demo.py", '-n', 'auto', "--alluredir", "./report"]) -
# step-2:auto report json data,zip to allure-html -
os.system("allure serve report")
运行结果:


感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。
更多推荐


所有评论(0)