def query_case_list(request, project): """列表页查询用例列表""" res = get_list("caseList") project_id = get_project_id(project, res[1]) groups = GroupApiMode.objects.filter(projectId=project_id, groupFlg=True) # 默认下拉框数据 search_dic = dict() api_id = request.GET.get('api') if api_id and int(api_id) > 0: search_dic['apiId'] = api_id case_flag = request.GET.get('caseFlag') if case_flag: search_dic['caseFlag'] = case_flag case_env = request.GET.get('caseEnv') if case_env: search_dic['caseEnv'] = case_env case_level = request.GET.get('caseLev') if case_level: search_dic['caseLevel'] = case_level group_id = request.GET.get('apiGroup') if group_id and int(group_id) > 0: search_dic['groupApiId'] = group_id apis = ApiMode.objects.filter(apiFlg=True, groupApiId=group_id) case_lists = TestCaseMode.objects.filter(**search_dic) else: group_ids = groups.values_list('id', flat=True) apis = ApiMode.objects.filter(apiFlg=True, groupApiId__in=group_ids) case_lists = TestCaseMode.objects.filter(groupApiId__in=group_ids, **search_dic) return render(request, "caseList_manage.html", {"project": project, "products": res[0], "projects": res[1], "groups": groups, "apis": apis, "caseLists": case_lists})
def case_list(request, project): """测试用例列表页""" res = get_list("caseList") project_id = get_project_id(project, res[1]) groups = GroupApiMode.objects.filter(projectId=project_id, groupFlg=True) # 默认下拉框数据 group_ids = groups.values_list('id', flat=True) apis = ApiMode.objects.filter(apiFlg=True, groupApiId__in=group_ids) return render(request, "caseList_manage.html", {"project": project, "products": res[0], "projects": res[1], "groups": groups, "apis": apis})
def query_group_api(request, project): """接口组维护查询""" res = get_list("caseList") search_dict = dict() group_name = request.GET.get("groupName") if group_name: search_dict['groupName'] = group_name group_flag = request.GET.get("groupFlg") if group_flag: search_dict['groupFlg'] = group_flag pro = request.GET.get("project") if pro: search_dict['projectId'] = pro group_list = GroupApiMode.objects.filter(**search_dict) return render(request, 'groupApiList.html', {"project": project, "projectId": pro, "groups": group_list, "products": res[0], "projects": res[1]})
def query_api(request, project): """接口维护列表查询""" res = get_list("caseList") search_dict = dict() project_id = request.GET.get("project") group_list = GroupApiMode.objects.filter(projectId=project_id) api_name = request.GET.get("apiName") if api_name: search_dict['apiName'] = api_name api_flag = request.GET.get("apiFlg") if api_flag: search_dict['apiFlg'] = api_flag api_group = request.GET.get("apiGroup") if not api_group: group_id_list = group_list.values_list('id', flat=True) else: group_id_list = [api_group] api_list = ApiMode.objects.filter(groupApiId__in=group_id_list, **search_dict) return render(request, 'apiList.html', {"project": project, "projectId": project_id, "apis": api_list, "products": res[0], "projects": res[1], "groups": group_list})
def query_task_plan(request, project): """查询任务计划列表""" res = get_list("caseList") search_dict = dict() project_id = request.GET.get("project") search_dict['projectId'] = project_id task_name = request.GET.get("taskPlanName") if task_name: search_dict['taskPlanName'] = task_name task_flag = request.GET.get("taskPlanFlag") if task_flag: search_dict['taskPlanFlag'] = task_flag tasks = TaskPlanMode.objects.filter(**search_dict) for task in tasks: api_list = task.taskPlanCaseApiList.split(',') api_list = list(map(int, api_list)) api_obj_list = ApiMode.objects.filter(id__in=api_list) api_name = api_obj_list.values_list('apiName', flat=True) task.taskPlanCaseApiList = ','.join(api_name) task.taskPlanCaseLevel = task.taskPlanCaseLevel.replace('3', '核心用例').replace('2', '一般用例').replace('1', '次要用例') return render(request, 'taskList.html', {"project": project, "projectId": project_id, "tasks": tasks, "products": res[0], "projects": res[1]})
def case_page(request, project, pages): """接口用例模块页面入口""" res = [None, None] # 导航数据 groups = None # 接口列表下拉框 env = None # 运行环境配置加载数据 project_id = 0 # 用于默认值 task_plan = None # 任务计划详情数据 task_id = 0 case_info = None # 用例详情数据 case_id = 0 sql_list = None # sql语句列表数据 api_info = None logs = None # 日志列表数据 if pages != 'runEnv': res = get_list("caseList") project_id = get_project_id(project, res[1]) if pages == "apiList": groups = GroupApiMode.objects.filter(projectId=project_id) if pages == "apiDetail": groups = GroupApiMode.objects.filter(projectId=project_id) api_id = int(request.GET.get("id")) if api_id > 0: api_info = ApiMode.objects.get(id=api_id) if pages == 'runEnv': project_id = get_project_id(project) try: env = EnvConfigMode.objects.get(projectId=project_id) except Exception as e: print(e.__str__()) if pages == 'taskDetail': task_id = int(request.GET.get("id")) if task_id > 0: task_plan = TaskPlanMode.objects.get(id=task_id) if pages == "caseDetail": case_id = int(request.GET.get("id")) groups = GroupApiMode.objects.filter(projectId=project_id) if case_id > 0: case_info = TestCaseMode.objects.get(id=case_id) if pages == "sqlList": api_id = int(request.GET.get("apiId")) api_info = ApiMode.objects.get(id=api_id) sql_list = ApiSqlListMode.objects.filter(apiId=api_info) if pages == "runLog": try: log_type = request.GET.get("logType") task_log_id = request.GET.get("taskLogId") if log_type and int(log_type) == 0: case_id = request.GET.get("caseId") case_info = TestCaseMode.objects.get(id=case_id) logs = CaseRunLogMode.objects.filter(caseId=case_info, logType=0) elif log_type and int(log_type) == 1: api_id = request.GET.get("apiId") logs = CaseRunLogMode.objects.filter(apiId=api_id, logType=1) elif task_log_id: task_log_info = TaskRunLogMode.objects.get(id=task_log_id) fail_log_list = list(map(int, task_log_info.failLogList.split(','))) logs = CaseRunLogMode.objects.filter(id__in=fail_log_list) except Exception as e: print(e.__str__()) if pages == "taskPlanRunLog": task_id = request.GET.get('id') if task_id: logs = TaskRunLogMode.objects.filter(taskId=task_id) if pages == "userVar": api_id = request.GET.get("apiId") if int(api_id) > 0: api_info = ApiMode.objects.get(id=api_id) return render(request, pages + ".html", {"project": project, "projectId": project_id, "products": res[0], "projects": res[1], "groups": groups, "env": env, "taskPlanInfo": task_plan, "task_id": task_id, "caseInfo": case_info, "caseId": case_id, "sqlList": sql_list, "apiInfo": api_info, "logs": logs})
def case_entry(request): """测试用例初始页面""" res = get_list("caseList") return render(request, "caseList_manage.html", {"products": res[0], "projects": res[1]})