? ? ? ? 现在很多测试人员包括我自己喜欢用脑图编写测试用例,不仅能更有逻辑的梳理测试用例,减少遗漏,也很高效方便。但是xmind文档在执行测试用例时可能就没有这么规范了,而且如果是多测试人员协作的团队,最好还是按照公司规范的测试用例格式编写。本文的重点是解析.xmind格式的测试用例,可以将解析到的数据导入到excel或测试管理系统中。
?
下面是一个极简的测试用例解析例子,读者可以按照自己的需求增加字段。
测试用例格式按下图红框中的格式编写,解析获取对应的字段内容。
上传.xmind文件后,导入测试系统中(读者可以根据自己的需要导出到excel):
?
?
?
from xmindparser import xmind_to_dict # 引入解析xmind的python包
class CasesImport(APIView):
def post(self, request):
sprint_name = request.data.get('sprint_name')
file_path = request.data.get('file_path') # 可以是文件路径,实际读的是文件对象
result = sprints.objects.get(sprint_name=sprint_name)
if file_path:
content = xmind_to_dict(file_path) # Xmind文件解析为字典格式
xmind_cases = content[0]['topic']['topics'] # 用例集
# print(xmind_cases[0]['topics'][0]['topics'][0]['title']) 读取第一条测试用例描述
app_len = len(xmind_cases) # 系统/应用/页面个数,xmind用例二级分类的个数
for i in range(0, app_len):
app_name = xmind_cases[i]['title'] # 系统/应用/页面名称
module_len = len(xmind_cases[i]['topics']) # 各模块用例数
module_case = xmind_cases[i]['topics'] # 各模块用例集
i += 1
for j in range(0, module_len):
module_name = module_case[j]['title'] # 模块名称
cases_suits = module_case[j]['topics']
case_len = len(cases_suits) # 每个模块的用例数
j += 1
for k in range(0, case_len):
case_description = cases_suits[k]['title']
cases.objects.create(app_name=app_name, module_name=module_name,
case_description=case_description, sprint_name_id=result.id)
result = {"status": "200", "data": {'msg': 'OK'}}
return Response(result, status=status.HTTP_200_OK)
else:
result = {"status": "500", "data": {'msg': '导入失败'}}
return Response(result, status=status.HTTP_200_OK)
|