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

目录
相关文章
|
5天前
|
前端开发 测试技术 API
测试金字塔:别再只盯着UI自动化了
测试金字塔:别再只盯着UI自动化了
180 116
|
5天前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
152 116
|
5天前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
152 113
|
14天前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
5天前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
38 2
|
安全 Java 测试技术
python接口自动化(三)--如何设计接口测试用例(详解)
上篇我们已经介绍了什么是接口测试和接口测试的意义。在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作。或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文档直接利用接口 测试工具测试嘛。其实,如果只是三五个接口,你可以这么做一个临时的接口测试。但是,如果是上百个接口,或者,你们公司的这个项目,第一次做接口测试,那么,我们还是很有必要严格遵守接口测试的流程。
471 0
python接口自动化(三)--如何设计接口测试用例(详解)
|
测试技术
正交试验测试用例设计及工具推荐
在科研和生产实践中,人们往往要做许多次实验来进行某项研究。实验条件一般包括很多因素,当因素的值不同时,实验的结果也不一样。如果想把每个因素的每个值都要实验一遍,总实验数就等于各因素的值的个数的乘积,而这个数往往很大,超过了可接受的成本。 例如,假设某个实验由A,B,C,D四个因素,每个因素都有10个不同的取值,那么如果想把每个因素都考虑到,我们需要做 10*10*10*10=10000次实验。 为了减少实验数目,我们必须选出那些最有代表性的例子。于是,就要用到了正交表法(Orthogonal Array Testing Strategy)。
664 0
正交试验测试用例设计及工具推荐
|
算法 安全 测试技术
【软件测试】测试用例的设计方法
测试用例写的过于简单,则可能失去了测试用例的意义,设计过于简单的测试用例其实并没有真正的进行设计,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已,测试用例设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试
【软件测试】测试用例的设计方法
|
安全 中间件 测试技术
【面试高频】给你一句话需求,让你设计测试用例,该怎么做?
【面试高频】给你一句话需求,让你设计测试用例,该怎么做?
【面试高频】给你一句话需求,让你设计测试用例,该怎么做?
|
消息中间件 缓存 中间件
【测试基础】二、我好像真的不会设计“好的”测试用例
【测试基础】二、我好像真的不会设计“好的”测试用例
【测试基础】二、我好像真的不会设计“好的”测试用例

热门文章

最新文章

下一篇
开通oss服务