自动化测试(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

目录
相关文章
|
26天前
|
前端开发 测试技术 API
测试金字塔:别再只盯着UI自动化了
测试金字塔:别再只盯着UI自动化了
274 116
|
26天前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
217 116
|
26天前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
264 113
|
1月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
26天前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
230 114
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
968 23
|
7月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1025 24
|
7月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
321 2
|
9月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
648 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡

热门文章

最新文章