python-对于一个用例有多个步骤,转换成1条案例的处理方法
前言
对于前文写到的以excel数据驱动的框架中,每个用例都是单独的不依赖其他的案例,现在一个用例可能会有多个步骤,按照前面写道的博文中按excel表中逐行取出excel的值,那么一条用例有多个步骤,取出的数据有多行数据,现在需要对这种情况进行处理
实现过程用到的关键点
# setdefault修改字典,key存在,不修改原来键值的内容;key不存在,添加到字典中
# 字典名[key] = value key存在修改原来键值内容,key不存在,添加到字典中
list1 = {"name":"liujingling","age":25,"sex":"woman"}
# list1.setdefault("sex","man")
# print(list) #sex键的值不变
list1["sex"] = "man"
print(list1) #sex键的值变
将如下样式的数据格式进行优化
list1 =
[{
'测试用例编号': 'case01',
'测试用例名称': '测试能否正确执行*******接口',
'测试用例步骤': 'step_01',
...................
}, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增******',
'测试用例步骤': 'step_01',
...................
}, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_02',
...................
}]
优化步骤1
实现代码:
case_dict = {}
for i in list1:
case_dict.setdefault(i['测试用例编号'],[]).append(i)
print(case_dict) #优化成下面形式
----------------------------------------------------------------------------
{
'case01': [{
'测试用例编号': 'case01',
'测试用例名称': '测试能否正确执行*******接口',
'测试用例步骤': 'step_01',
...................
}],
'case02': [{
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增******',
'测试用例步骤': 'step_01',
...................
}, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_02',
...................
}]
}
优化步骤2:
实现代码:
list2 = []
for k,v in case_dict.items():
dict2 = {}
dict2['test_case']= k
dict2['test_info']= v
list2.append(dict2)
print(list2) #优化成如下形式
--------------------------------------------------------------------------------
[{
'test_info': [{
'测试用例编号': 'case01',
'测试用例名称': '测试能否正确执行获取*****接口',
'测试用例步骤': 'step_01',
...................
}],
'test_case': 'case01'
}, {
'test_info': [{
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_01',
...................
}, {
'测试用例编号': 'case02',
'测试用例名称': '测试能否正确新增*****',
'测试用例步骤': 'step_02',
...................
}],
'test_case': 'case02'
}]