自动化测试(pytest通过yaml文件来维护测试用例参数化,自动生成测试脚本)

简介: yaml读取用例title和用例参数:
#coding:utf-8fromcommon.configure_yamlimport*fromcommon.edit_type_dataimport*defget_testcase_params(file_name,case_type):
"""    该函数为测试用例yaml文件转换使用,任何测试用例都需要通过该函数重新组装数据类型    暂时为两种方式,一个是单校验,一个是双校验    单校验:params,check    双校验:params,set_check,get_check    必须严格按照格式编写yaml文件    :param file_name:    :param case_type:    :return:    """try:
case_data=get_case_yaml(file_name=file_name)["test_case_params"]  # 获取测试用例文件data_info=len(case_data[case_type])
# print(case_data[case_type])ifdata_info==3:#判断数量为3时默认存在cmd,params,checkdata=list(zip(case_data[case_type]["cmd"], case_data[case_type]["params"], case_data[case_type]["check"]))
elifdata_info==4:#判断数量为4时默认存在cmd,params,check,set_checkif"params_special"incase_data[case_type].keys():#如果包涵params_special则走这条data=list(zip(case_data[case_type]["cmd"], case_data[case_type]["params"],
case_data[case_type]["params_special"],
case_data[case_type]["check"]))
else:
data=list(zip(case_data[case_type]["cmd"], case_data[case_type]["params"], case_data[case_type]["set_check"],
case_data[case_type]["get_check"]))
elifdata_info==5:#判断数量为5的时候默认存在cmd,params,params_special,check,set,get_checkdata=list(zip(case_data[case_type]["cmd"], case_data[case_type]["params"], case_data[case_type]["params_special"],
case_data[case_type]["set_check"], case_data[case_type]["get_check"]))
elifdata_info==6:#判断数量为5的时候默认存在cmd,params,params_special,params_special2,check,set,get_checkdata=list(zip(case_data[case_type]["cmd"], case_data[case_type]["params"], case_data[case_type]["params_special"],
case_data[case_type]["params_special2"],case_data[case_type]["set_check"], case_data[case_type]["get_check"]))
else:
returnFalsereturndataexcept:
# print("请检查:"+case_type+"文件格式是否存在问题")return"请检查:"+case_type+"文件格式是否存在问题"defget_testcase_title(file_name):
case_title=get_case_yaml(file_name=file_name)  # 获取测试用例名文件#print(case_title)returncase_title#if __name__ == '__main__':#    robot_get_status_params = get_testcase_params(file_name="SDK/robot_joint/joint.yaml", case_type="test_robot_joint")#    case_title = get_testcase_title(file_name="SDK/robot_joint/joint.yaml")["robot_joint_title"]

python读取yaml数据

#coding:utf-8importyaml,jsonroute="D:/EC_auto_test/common/"case_route="D:/EC_auto_test/case_parameter/"#route = "/home/test/"#print(route)defget_yaml(file_name):
try:
yaml_path=open(route+"yaml_info/"+file_name,encoding="utf-8")
data=yaml.safe_load(stream=yaml_path)
print("文件名:",file_name)
print("文件内容:",data)
returndataexcept:
print("get_yaml函数查询的yaml文件名不存在")
defget_case_yaml(file_name):
try:
yaml_path=open(case_route+file_name,encoding="utf-8")
data=yaml.safe_load(stream=yaml_path)
print(yaml_path)
#print("文件名:",file_name)#print("文件内容:",data)returndataexcept:
print("get_yaml函数查询的yaml文件名不存在")
if__name__=='__main__':
#ip = get_yaml("common.yaml")["ip"]#port = get_yaml("common.yaml")["port"]#print(ip,port)case_parameters=get_case_yaml(file_name="SDK/robot_joint/joint.yaml")["title_case"]
print(case_parameters)

pytest装饰器参数化获取yaml参数

file_name_yaml="SDK/robot_paramservice/test.yaml"case_title=get_testcase_title(file_name=file_name_yaml)#获取测试用例名case_params=get_testcase_params(file_name=file_name_yaml,
case_type="robot_getRobotState_params")#获取测试用例参数@allure.story("测试用例名")
@pytest.mark.parametrize("case_params ,check",
getCurrentEncode_params,ids=case_title["test_title"])
deftest_robot_getRobotState(self,case_params,check,servo):
result=function(case_params)
assertresult==check

目录
相关文章
|
9月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
846 113
|
10月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
10月前
|
测试技术 Linux
VPS一键测试脚本,无痕体验+自动导出,服务器测试更轻松
NodeQuality 是一款整合 Yabs、IPQuality、NetQuality 等主流 VPS 测试脚本的全能工具,支持一键测试硬件性能、IP属性、网络质量,并新增分享与导出功能。其“无痕测试”设计不安装依赖、不留残留,兼容性强;测试结果自动排版、截图并生成分享链接,极大提升效率。适合需要全面、快速、干净测试 VPS 的用户,是运维和测评的高效利器。
887 3
|
10月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
840 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
10月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
10月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
402 4
|
9月前
|
人工智能 监控 Kubernetes
77_自动化脚本:Makefile与Airflow
在当今AI大模型时代,高效的工作流管理对于模型训练、推理和部署至关重要。随着大模型规模的不断增长和复杂度的提升,传统的手动脚本管理方式已无法满足需求。自动化脚本和工作流调度系统成为构建健壮、可重复、可扩展的LLM Pipeline的关键工具。其中,Makefile作为经典的自动化构建工具,与Airflow作为现代工作流调度平台的结合,为LLM开发团队提供了强大的工作流管理能力。
260 0
|
10月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
412 0