def case_xmindimport(request, project): if request.method == "POST": # 请求方法为POST时,进行处理 upload_file =request.FILES.get("action", None) # 获取上传的文件,如果没有文件,则默认为None if not upload_file: return HttpResponse("请先上传文件……") file_path = os.path.join(settings.MEDIA_ROOT,upload_file.name) destination = open(file_path,'wb+') # 打开特定的文件进行二进制的写操作 for chunk in upload_file.chunks(): # 分块写入文件 destination.write(chunk) destination.close() t_handle = t_TestCase(project=project, file_name=file_path) case_list = t_handle.read_all() for info in case_list: ret_old = list(m_TestCase.objects.filter(case_number=info['case_number']).values()) if len(ret_old) > 0: obj = m_TestCase.objects.filter(case_number=info['case_number']).update(case_name=info['case_name'],case_type=info['case_type'],priority=info['priority'],pre_condition=info['pre_condition'],test_range=info['test_range'],test_steps=info['test_steps'],expect_result=info['expect_result'],auto=info['auto'],case_id=info['api_related'], fun_developer=info['fun_developer'], case_designer=info['case_designer'],case_executor=info['case_executor'],test_time=info['test_time'], test_result=info['test_result'],project_id=info['project'],module=info['module']['name'],remark=info['remark']) else: obj = m_TestCase(case_number=info['case_number'], case_name=info['case_name'],case_type=info['case_type'],priority=info['priority'],pre_condition=info['pre_condition'],test_range=info['test_range'],test_steps=info['test_steps'],expect_result=info['expect_result'],auto=info['auto'],case_id=info['api_related'], fun_developer=info['fun_developer'], case_designer=info['case_designer'],case_executor=info['case_executor'],test_time=info['test_time'], test_result=info['test_result'],project_id=info['project'],module=info['module']['name'],remark=info['remark']) obj.save() messages.success(request,"操作成功") module_list = list(set(list(m_TestCase.objects.filter(project_id=project).values_list("module")))) modules = [] for item in module_list: modules.append(item[0]) return redirect("/%s/case/%s" %(project, modules[0]))
def xmind_convert(): # 用例执行类型 execution_type = {1:"no", 2:"yes"} # 优先级 importance = {1:"高",2:"中", 3:"低"} #用例状态 case_status = {1:"草稿", 2:"待评审", 3:"评审中", 4:"重做", 5:"废弃", 6:"feature", 7:"终稿"} #case_number_def = {"Sum_Up": "概览", "Host_Apply": "主机交付", "IDC_Mgmt": "数据中心", "Device_Mgmt": "设备管理", "Hardware_Mgmt": "硬件管理", "InstallOS_Mgmt": "装机管理", "Image_Mgmt": "镜像管理", "OOB_Mgmt": "带外管理", "Task_Mgmt": "任务管理", "Proxy_Mgmt": "分布式管理", "Asset_Mgmt": "资产管理", "ACL_Mgmt": "安全审计", "Report_Mgmt": "报表管理", "User_Mgmt": "用户管理", "System_Mgmt": "系统管理", "Notice_Mgmt": "通知中心", "Env_Config": "环境配置与日志", "Auth_Mgmt": "权限管理-UAM", "Data_Sync": "数据对接", "新需求": "new_requirement"} case_number_def = {"global": "全局", "Task": "任务", "Alarm": "告警", "Audit": "审计", "OpenAPI": "扩展", "Report": "报表", "SumUp": "概览", "InstallOS": "装机", "Device": "设备", "Setting": "设置", "Assert": "资产", "NewRequirement": "新需求", "Other": "未分类"} test_result = {0:"未执行", 1:"PASS", 2:"FAIL", 3:"BLOCKED",4:"SKIPPED"} with open(file_name) as f: context = f.read() context = json.load(context) list_info = context[0]["sub_suites"] for module_dict in list_info: module_name = module_dict["name"] if "新需求" in module_name: items = module_name.split("-") module_name = items[0] version = items[1] module_key = "NewRequirement_%s"%version elif module_name in module_dict.values(): module_key = list(case_number_def.keys())[list(case_number_def.values()).index(module_name)] module_key = "%s_3.0.0" %module_key else: module_key = "Other" for info in module_dict["testcase_list"]: count = 1 case_number = "%s_%d" %(module_key, count) if info["importance"] == 1: case_type = "基本功能测试" priority = "Level0" elif info["importance"] == 2: case_type = "场景测试" priority = "Level1" elif info["importance"] == 3: case_type = "异常测试" priority = "Level2" else: case_type = "未知类型" priority = "Level3" auto = execution_type[info['auto']] result = test_result[info['result']] test_steps = "" expect_result = "" step_count = 1 for step_dict in info["steps"]: test_steps = test_steps + "%d: %s\n" %(step_count,step_dict["action"]) expect_result = expect_result + "%d: %s\n" %(step_count, step_dict["expectedresults"]) step_count = step_count + 1 ret_old = list(m_TestCase.objects.filter(case_number=case_number).values()) if len(ret_old) > 0: obj = m_TestCase.objects.filter(case_number=case_number).update(case_name=info['name'],case_type=case_type,priority=priority,pre_condition=info['preconditions'],test_range="",test_steps=test_steps,expect_result=expect_result,auto=auto, test_result=result,project_id=info['project'],module=module_name,remark="") else: obj = m_TestCase(case_number=case_number, case_name=info['name'],case_type=case_type,priority=priority,pre_condition=info['preconditions'],test_range="",test_steps=test_steps,expect_result=expect_result,auto=auto,case_id="", fun_developer="", case_designer="",case_executor="",test_time="", test_result=result,project_id=info['project'],module=module_name,remark="") obj.save() count = count + 1
def test_case(request, project,module): if request.method == "POST": body = dict(request.POST) case_number = request.POST.get('case_number') case_name = request.POST.get('case_name') case_type = request.POST.get('case_type') priority = request.POST.get('priority') pre_condition = request.POST.get('pre_condition') test_range = request.POST.get('test_range') test_steps = request.POST.get('test_steps') expect_result = request.POST.get('expect_result') auto = request.POST.get('auto') case_id = request.POST.get('api_related') fun_developer = request.POST.get('fun_developer') case_designer = request.POST.get('case_designer') case_executor = request.POST.get('case_executor') test_time = request.POST.get('test_time') remark = request.POST.get('remark') ret_old = list(m_TestCase.objects.filter(case_number=case_number,project_id=project).values()) if len(ret_old) > 0: obj = m_TestCase.objects.filter(case_number=case_number,project_id=project).update(case_name=case_name,case_type=case_type,priority=priority,pre_condition=pre_condition,test_range=test_range,test_steps=test_steps,expect_result=expect_result,auto=auto,case_id=case_id,fun_developer=fun_developer,case_designer=case_designer,case_executor=case_executor,test_time=test_time,module=module,remark=remark,project_id=project) else: obj = m_TestCase(case_number=case_number,case_name=case_name,case_type=case_type,priority=priority,pre_condition=pre_condition,test_range=test_range,test_steps=test_steps,expect_result=expect_result,auto=auto,case_id=case_id,fun_developer=fun_developer,case_designer=case_designer,case_executor=case_executor,test_time=test_time,module=module,remark=remark,project_id=project) obj.save() messages.success(request,"操作成功") module_list = list(set(list(m_TestCase.objects.filter(project_id=project).values_list("module")))) modules = [] for item in module_list: modules.append(item[0]) if len(modules) == 0: modules = ["新需求"] ret_list = [] else: ret_list = list(m_TestCase.objects.filter(project_id=project,module=module).values()) titles = ["case_number"] return render(request, "test_case.html", {"transList": ret_list, "module": module, "modules": modules, "titles":titles, "project": project})