简介:当需要执行的测试用例达到一定的量后,存储和管理测试用例直接放在test_case显然是不合理的,需要将测试用例存储在测试用例文件。综合来看,主要有3种方式存储,即:excel、csv、yaml。

Excel: 提供了丰富的格式和功能,可以方便地进行编辑和维护。图形界面使得用户可以直观地看到数据。但不是纯文本格式,不适合版本控制,也不易于自动化测试工具的集成。

CSV: 纯文本格式,易于版本控制,也易于自动化工具处理。缺乏Excel的直观性和功能,不适合存储复杂的测试用例数据。

YAML:可读性高,可读取的数据序列化格式,易于维护和阅读。它支持复杂的数据结构,如列表和字典。YAML不提供Excel那样的可视化界面。

小记:萝卜青菜各有所爱,如果需要设计比较复杂的业务场景,个人更倾向于yaml。

安装依赖:

pip install pyyaml

测试用例文件:yaml

  1. test_demo:

  2. test_demo_01:

  3. before_cmd_list: ["ls -al", "hostnamect"]

  4. cmd_list: ["free -h"]

  5. assert: ["Mem:"]

  6. after_cmd_list: ["date", "who"]

  7. test_demo_02:

  8. before_cmd_list: ["pwd"]

  9. cmd_list: ["date"]

  10. assert: ["2023"]

  11. after_cmd_list: ["echo python2"]

  12. test_demo_03:

  13. before_cmd_list: ["pwd"]

  14. cmd_list: ["date"]

  15. assert: ["2024"]

  16. after_cmd_list: ["echo python3"]

编写读取yaml测试用例的方法 read_yaml.py

  1. import yaml

  2. def read_yaml(yaml_path, node_name):

  3. with open(yaml_path, "r", encoding="utf8")as f:

  4. data = yaml.safe_load(f)

  5. print(data[node_name])

  6. return list(data[node_name].values())

  7. if __name__ == '__main__':

  8. yaml_path = r"../data/demo.yaml"

  9. data = read_yaml(yaml_path, "test_demo")

test_demo.py解析参数化

  1. import time

  2. import pytest

  3. from lib.read_ym import read_yaml

  4. from logger import log

  5. class TestDemo:

  6. @pytest.mark.parametrize("case_info", read_yaml("./data/demo.yaml", "test_demo"))

  7. def test_demo(self, case_info):

  8. log.info(case_info["before_cmd_list"])

  9. log.info(case_info["cmd_list"])

  10. log.info(case_info["assert"])

  11. log.info(case_info["after_cmd_list"])

执行main.py

  1. import os

  2. import pytest

  3. if __name__ == "__main__":

  4. # step-1:use pytest run test_case

  5. pytest.main(["-s", "test_case/test_demo.py", '-n', 'auto', "--alluredir", "./report"])

  6. # step-2:auto report json data,zip to allure-html

  7. os.system("allure serve report")

运行结果:

 

 感谢每一个认真阅读我文章的人!!!

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

软件测试面试文档

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

 

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

更多推荐