pytest二位元组方式获取测试用例

简介: 二次封装测试用例读取方式
#coding:utf-8fromcommon.yaml_info.configure_yamlimport*fromcommon.robot_methodimport*defget_testcase_params(file_name,case_type):
"""    该函数为测试用例yaml文件转换使用,任何测试用例都需要通过该函数重新组装数据类型    暂时为两种方式,一个是单校验,一个是双校验    单校验:params,check    双校验:params,set_check,get_check    必须严格按照格式编写yaml文件    :param file_name:    :param case_type:    :return:    """try:
robot_type="6"+socket_fuction.send_cmd_with_retvalue(cmd="getRobotSubtype")["result"]#前方拼接6因为读取到的数据是只有型号#print(robot_type)try:
case_data=get_case_yaml(file_name=file_name)["test_case_params"]  # 获取测试用例文件print(case_data)
try:#如果用例中有包含title则使用63/66/612专用用例ifrobot_type=="63"orrobot_type=="612":
try:
case_type_data=case_data[case_type][robot_type]
data_info=len(case_data[case_type][robot_type])
except:
case_type_data=case_data[case_type]["default"]
data_info=len(case_data[case_type]["default"])
else:#66默认使用defaultcase_type_data=case_data[case_type]["default"]
data_info=len(case_data[case_type]["default"])
except:#反之则使用通用用例,通用用例中不需要补充63/66/612case_type_data=case_data[case_type]
data_info=len(case_data[case_type])
ifdata_info==3:#判断数量为3时默认存在cmd,params,checkdata=list(zip(case_type_data["cmd"],
case_type_data["params"],
case_type_data["check"]))
elifdata_info==4:#判断数量为4时默认存在cmd,params,check,set_checkif"params_special"incase_type_data.keys():#如果包涵params_special则走这条data=list(zip(case_type_data["cmd"],
case_type_data["params"],
case_type_data["params_special"],
case_type_data["check"]))
else:
data=list(zip(case_type_data["cmd"],
case_type_data["params"],
case_type_data["set_check"],
case_type_data["get_check"]))
elifdata_info==5:#判断数量为5的时候默认存在cmd,params,params_special,check,set,get_checkdata=list(zip(case_type_data["cmd"],
case_type_data["params"],
case_type_data["params_special"],
case_type_data["set_check"],
case_type_data["get_check"]))
elifdata_info==6:#判断数量为5的时候默认存在cmd,params,params_special,params_special2,check,set,get_checkdata=list(zip(case_type_data["cmd"],
case_type_data["params"],
case_type_data["params_special"],
case_type_data["params_special2"],
case_type_data["set_check"],
case_type_data["get_check"]))
elifdata_info==7:#判断数量为7的时候默认存在cmd,params,params_special,params_special2,params_sepcial2,check,set_check,get_checkif"special_check"incase_type_data.keys():
data=list(zip(case_type_data["cmd"],
case_type_data["params"],
case_type_data["params_special"],
case_type_data["params_special2"],
case_type_data["set_check"],
case_type_data["get_check"],
case_type_data["special_check"]))
else:
data=list(zip(case_type_data["cmd"],
case_type_data["params"],
case_type_data["params_special"],
case_type_data["params_special2"],
case_type_data["params_special3"],
case_type_data["set_check"],
case_type_data["get_check"]))
else:
returnFalsereturndataexcept:
# print("请检查:"+case_type+"文件格式是否存在问题")return"请检查params:"+case_type+"文件格式是否存在问题"exceptExceptionase:
print(e)
print("SDK机器人类型数据无法读取到,终止自动化")
defget_testcase_title(file_name,case_type):
try:
robot_type="6"+socket_fuction.send_cmd_with_retvalue(cmd="getRobotSubtype")["result"]#前方拼接6因为读取到的数据是只有型号print(robot_type)
try:
data_info=get_case_yaml(file_name=file_name)["test_case_title"]
try:#如果用例中有包含title则使用63/66/612专用用例ifrobot_type=="63"orrobot_type=="612":
try:
print(data_info[case_type][robot_type])
title_data=data_info[case_type][robot_type]
#case_info = data_info[case_type]print(title_data)
except:
title_data=data_info[case_type]["default"]
#case_info = data_info[case_type]print(title_data)
else:
title_data=data_info[case_type]["default"]
# case_info = data_info[case_type]print(title_data)
returntitle_dataexcept:
title_data=data_info[case_type]
# case_info = data_info[case_type]print(title_data)
except:
# print("请检查:"+case_type+"文件格式是否存在问题")return"请检查title:"+case_type+"文件格式是否存在问题"exceptExceptionase:
print(e)
print("SDK机器人类型数据无法读取到,终止自动化")
#def get_testcase_title(file_name):#    case_title = get_case_yaml(file_name=file_name)  # 获取测试用例名文件#    #print(case_title)#    return case_titleif__name__=='__main__':
#robot_get_status_params = get_testcase_params(file_name="SDK/robot_ttservice/ttservice.yaml", case_type="robot_tt_params")#print(robot_get_status_params)case_title=get_testcase_title(file_name="SDK/robot_movenmentservice/movenmentservice_II.yaml",case_type="robot_move_by_rotate_title")
目录
相关文章
|
4月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
113 10
|
9月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
233 35
|
9月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
722 15
|
12月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
927 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
173 6
基于Python访问Hive的pytest测试代码实现
|
测试技术
软件测试用例设计之微信群抢红包经典用例
作者在浏览招聘网站时遇到为微信群发和抢红包设计测试用例的问题,作为软件测试新手,作者通过实际体验并撰写测试案例来加深对业务的理解,并分享了测试案例表格。需要注意的是,该用例未考虑添加银行卡支付、红包类型选择及红包描述。
335 5
软件测试用例设计之微信群抢红包经典用例
|
12月前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
538 2
|
12月前
|
测试技术 数据安全/隐私保护
北邮人论坛登录页面测试用例
北邮人论坛登录页面测试用例
204 1
|
前端开发 关系型数据库 测试技术
django集成pytest进行自动化单元测试实战
在Django项目中集成Pytest进行单元测试可以提高测试的灵活性和效率,相比于Django自带的测试框架,Pytest提供了更为丰富和强大的测试功能。本文通过一个实际项目ishareblog介绍django集成pytest进行自动化单元测试实战。
209 3
django集成pytest进行自动化单元测试实战
|
人工智能 测试技术 Python
基于 LangChain 的自动化测试用例的生成与执行
本章节详细介绍了如何利用人工智能技术自动化完成Web、App及接口测试用例的生成与执行过程,避免了手动粘贴和调整测试用例的繁琐操作。通过封装工具包与Agent,不仅提升了测试效率,还实现了从生成到执行的一体化流程。应用价值在于显著节省时间并提高测试自动化水平。

热门文章

最新文章