下面这段 json 为用例数据,譬如 我要执行用例 1,我要先执行用例 2,执行用例 2 前提下,要先执行用例 3 4 5,执行用例 5 就先执行 6 ,总体顺序就是 先执行依赖用例列表 [3,4,6,5,2 ],最后在执行用例 1。
问题:如何实现输出依赖用例列表?如上面例子
[
{
"api_id": 1,
"name": "用例1",
"step": [
2
]
},
{
"api_id": 2,
"name": "用例2",
"step": [
3,
4,
5
]
},
{
"api_id": 3,
"name": "用例3",
"step": null
},
{
"api_id": 4,
"name": "用例4",
"step": null
},{
"api_id": 5,
"name": "用例5",
"step":[6]
},
{
"api_id": 6,
"name": "用例6",
"step": null
}
]
目前代码实现,不确定是否有隐藏 bug
class Cases(object):
@classmethod
def get_steps(cls, case_data, steps, steps_list):
steps = list(reversed(steps))
for i in steps:
for index, case in enumerate(case_data):
if case['api_id'] == i:
steps_list.insert(0, case_data[index])
if case['step'] is not None:
cls.get_steps(case_data, case['step'], steps_list)
return steps_list
steps = [2]
steps_data = Cases.get_steps(data,steps,[])
print(json.dumps(steps_data,ensure_ascii=False))