def testCaseDel(request): id = request.GET.get("id") if VersionService.isCurrentVersion(request): try: testCaseData = HTTP_test_caseService.getTestCaseForId(id) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_TESTCASE_ERROR, "参数id错误 %s" % e).toJson()) if HTTP_test_caseService.delTestCaseForId(request, id) == 1: HTTP_test_case_stepService.stepDel( request, dbModelToDict(testCaseData)["caseId"]) return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TESTCASE_ERROR).toJson()) else: testCaseData = HTTP_test_caseService.getVersionTestCaseForId(id) if HTTP_test_caseService.delVersionTestCaseForId(request, id) == 1: HTTP_test_case_stepService.stepVersionDel( request, dbModelToDict(testCaseData)["caseId"], VersionService.getVersionName(request)) return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TESTCASE_ERROR).toJson())
def interfaceDel(request): id = request.GET.get("id") try: if VersionService.isCurrentVersion(request): interfaceData = HTTP_interfaceService.getInterfaceForId( request.GET.get("id")) else: interfaceData = HTTP_interfaceService.getVersionInterfaceForId( request.GET.get("id")) except Exception as e: print(traceback.format_exc()) return HttpResponse( ApiReturn(ApiReturn.CODE_INTERFACE_ERROR, "参数id错误 %s" % e).toJson()) if VersionService.isCurrentVersion(request): syncDel(request, dbModelToDict(interfaceData)) if HTTP_interfaceService.delInterfaceForId(request, id) == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_INTERFACE_ERROR).toJson()) else: syncVersionDel(request, dbModelToDict(interfaceData), VersionService.getVersionName(request)) if HTTP_interfaceService.delVersionInterfaceForId(request, id) == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_INTERFACE_ERROR).toJson())
def textConfEdit(request): TextData = json.loads(parse.unquote(request.POST.get("data"))) TextData["modBy"] = request.session.get("loginName") if VersionService.isCurrentVersion(request): getText = global_textService.getText(TextData["id"]) if getText.addBy.loginName != request.session.get("loginName"): changeLog = TbUserChangeLog() changeLog.version = request.session.get("version") changeLog.loginName = request.session.get("loginName") changeLog.otherLoginName = getText.addBy.loginName changeLog.type = 1 changeLog.beforeChangeData = dictToJson(dbModelToDict(getText)) changeLog.afterChangeData = dictToJson(TextData) changeLog.dataId = getText.textKey changeLog.changeDataId = getText.textKey changeLog.save() global_textService.editText(TextData) return HttpResponse(ApiReturn().toJson()) else: getText = global_textService.getVersionText(TextData["id"]) if getText.addBy.loginName != request.session.get("loginName"): changeLog = TbUserChangeLog() changeLog.version = request.session.get("version") changeLog.loginName = request.session.get("loginName") changeLog.otherLoginName = getText.addBy.loginName changeLog.type = 1 changeLog.beforeChangeData = dictToJson(dbModelToDict(getText)) changeLog.afterChangeData = dictToJson(TextData) changeLog.dataId = getText.textKey changeLog.changeDataId = getText.textKey changeLog.save() global_textService.editVersionText( TextData, VersionService.getVersionName(request)) return HttpResponse(ApiReturn().toJson())
def getTaskListDataForTaskSuite(request): id = request.GET.get("id") if VersionService.isCurrentVersion(request): taskDataModel = Tb2DUBBOTaskSuite.objects.get(id=id) taskData = dbModelToDict(taskDataModel) getTaskDataSql = taskData["taskList"].replace( ",", "' union all select thi.id,thi.taskId,thi.title,thi.taskdesc,thi.interfaceNum,thi.addBy,tu.userName from tb2_dubbo_task thi LEFT JOIN tb_user tu on thi.addBy = tu .loginName where taskId = '" ) sql = "select thi.id,thi.taskId,thi.title,thi.taskdesc,thi.interfaceNum,thi.addBy,tu.userName from tb2_dubbo_task thi LEFT JOIN tb_user tu on thi.addBy = tu .loginName where taskId = '%s'" % getTaskDataSql else: taskDataModel = DubboTaskService.getVersionTaskById(id) taskData = dbModelToDict(taskDataModel) getInterFaceDataSql = taskData["taskInterfaces"].replace( ",", "' union all select thi.id,thi.interfaceId,thi.title,thi.casedesc,thi.url,thi.addBy,tu.userName from tb_version_http_interface thi LEFT JOIN tb_user tu on thi.addBy = tu .loginName where interfaceId = '" ) sql = "select thi.id,thi.interfaceId,thi.title,thi.casedesc,thi.url,thi.addBy,tu.userName from tb_version_http_interface thi LEFT JOIN tb_user tu on thi.addBy = tu .loginName where interfaceId = '%s' and versionName='%s'" % ( getInterFaceDataSql, VersionService.getVersionName(request)) taskInterfaceListData = executeSqlGetDict(sql) response = render(request, "dubbo/taskSuite/SubPages/task_list_check_page.html", {"pageDatas": taskInterfaceListData}) return response
def taskAddData(request): taskData = json.loads(request.body) taskData = HTTP_taskService.taskDataToDict(request, taskData) taskData["addBy_id"] = request.session.get("loginName") taskData["addByName"] = request.session.get("userName") if VersionService.isCurrentVersion(request): # if "id" not in taskData.keys(): createTask = HTTP_taskService.addTask(taskData) if createTask.id >= 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务保存失败").toJson()) # else: # taskData["modTime"] = datetime.datetime.now() # editTaskData = HTTP_taskService.editTask(taskData) # if editTaskData == 1: # return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) # else: # return HttpResponse(ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务编辑保存失败").toJson()) else: # if "id" not in taskData.keys(): createTask = HTTP_taskService.addVersionTask( taskData, VersionService.getVersionName(request)) if createTask.id >= 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务保存失败").toJson())
def getTestCaseListDataForTask(request): id = request.GET.get("id") if VersionService.isCurrentVersion(request): taskDataModel = HTTP_taskService.getTaskForId(id) taskData = dbModelToDict(taskDataModel) getTestCaseDataSql = taskData["taskTestcases"].replace( ",", "' union all select tht.id,tht.caseId,tht.title,tht.casedesc,tht.stepCount,tht.addBy,tu.userName from tb_http_testcase tht LEFT JOIN tb_user tu on tht.addBy = tu .loginName where tht.caseId = '" ) sql = "select tht.id,tht.caseId,tht.title,tht.casedesc,tht.stepCount,tht.addBy,tu.userName from tb_http_testcase tht LEFT JOIN tb_user tu on tht.addBy = tu .loginName where tht.caseId ='%s'" % getTestCaseDataSql else: taskDataModel = HTTP_taskService.getVersionTaskById(id) taskData = dbModelToDict(taskDataModel) getTestCaseDataSql = taskData["taskTestcases"].replace( ",", "' union all select tht.id,tht.caseId,tht.title,tht.casedesc,tht.stepCount,tht.addBy,tu.userName from tb_version_http_testcase tht LEFT JOIN tb_user tu on tht.addBy = tu .loginName where tht.caseId = '" ) sql = "select tht.id,tht.caseId,tht.title,tht.casedesc,tht.stepCount,tht.addBy,tu.userName from tb_version_http_testcase tht LEFT JOIN tb_user tu on tht.addBy = tu .loginName where tht.caseId ='%s' and versionName='%s'" % ( getTestCaseDataSql, VersionService.getVersionName(request)) taskTestCaseListData = executeSqlGetDict(sql) response = render( request, "InterfaceTest/HTTPTask/SubPages/HTTP_Task_Details_Select_TestCase_list_check_page.html", {"pageDatas": taskTestCaseListData}) return response
def taskSuiteAddData(request): taskSuiteData = json.loads(request.body) taskSuiteData["protocol"] = "HTTP" if VersionService.isCurrentVersion(request): taskSuiteData["addBy"] = request.session.get("loginName") createTask = HTTP_taskSuiteService.addTaskSuite(taskSuiteData) if createTask.id >= 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务保存失败").toJson()) else: createTask = HTTP_taskSuiteService.addVersionTask( taskSuiteData, VersionService.getVersionName(request)) if createTask.id >= 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务保存失败").toJson())
def interfaceDel(request): id = request.GET.get("id") try: if VersionService.isCurrentVersion(request): interfaceData = DubboInterfaceService.getInterfaceById(request.GET.get("id")) # syncDel(dbModelToDict(interfaceData)) #TODO 实现dubbo用例的时候要做此部分 else: #TODO 多版本未实现 interfaceData = HTTP_interfaceService.getVersionInterfaceForId(request.GET.get("id")) syncVersionDel(dbModelToDict(interfaceData), VersionService.getVersionName(request)) except Exception as e: return HttpResponse(ApiReturn(ApiReturn.CODE_INTERFACE_ERROR, "参数id错误 %s" % e).toJson()) # if request.session.get("loginName") != interfaceData.addBy.loginName: # return HttpResponse(ApiReturn(ApiReturn.CODE_INTERFACE_ERROR, "只能删除自己创建的接口").toJson()) # if VersionService.isCurrentVersion(request): if DubboInterfaceService.delInterfaceById(id) == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse(ApiReturn(ApiReturn.CODE_INTERFACE_ERROR).toJson()) else: if HTTP_interfaceService.delVersionInterfaceForId(id) == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse(ApiReturn(ApiReturn.CODE_INTERFACE_ERROR).toJson())
def getTaskInterfaceData(taskId,request): if VersionService.isCurrentVersion(request): taskData = dbModelToDict(HTTP_taskService.getTaskForTaskId(taskId)) else: taskData = dbModelToDict(HTTP_taskService.getVersionTaskForTaskId(taskId,VersionService.getVersionName(request))) allInerfaceIdList = [] allTestCaseIdList = [] thisTaskInterfaceList = taskData["taskInterfaces"].split(",") allInerfaceIdList.extend(thisTaskInterfaceList) thisTaskTestCaseList = taskData["taskTestcases"].split(",") allTestCaseIdList.extend(thisTaskTestCaseList) allInerfaceIdList = list(set(allInerfaceIdList)) allTestCaseIdList = list(set(allTestCaseIdList)) allstepIdList = [] for testCaseIndex in range(0, len(allTestCaseIdList)): if VersionService.isCurrentVersion(request): thisStepList = HTTP_test_case_stepService.getTestCaseStep(allTestCaseIdList[testCaseIndex]) else: thisStepList = HTTP_test_case_stepService.getVersionTestCaseStep(allTestCaseIdList[testCaseIndex],VersionService.getVersionName(request)) for stepIndex in range(0, len(thisStepList)): allstepIdList.append(thisStepList[stepIndex]["id"]) if VersionService.isCurrentVersion(request): tbName = "tb_http_interface" versionCondition = "" else: tbName = "tb_version_http_interface" versionCondition = "and i.versionName='%s'" % request.session.get("version") allInterfaceSql = "SELECT i.url url,b.bussinessLineName businessLineName,m.moduleName moduleName,u.userName userName,count(DISTINCT b.bussinessLineName,m.moduleName,i.url ) FROM %s i LEFT JOIN tb_business_line b ON i.businessLineId = b.id LEFT JOIN tb_modules m ON i.moduleId = m.id LEFT JOIN tb_user u ON i.addBy = u.loginName where i.state = 1 and i.interfaceId in ('%s') %s group by i.url,i.businessLineId,i.moduleId" % ( tbName,"','".join(allInerfaceIdList),versionCondition) allInterfaceData = executeSqlGetDict(allInterfaceSql, []) if VersionService.isCurrentVersion(request): tbName = "tb_http_testcase_step" versionCondition = "" else: tbName = "tb_version_http_testcase_step" versionCondition = "and i.versionName='%s'" % request.session.get("version") allStepSql = "SELECT i.url url,b.bussinessLineName businessLineName,m.moduleName moduleName,u.userName userName,count(DISTINCT b.bussinessLineName,m.moduleName,i.url ) FROM %s i LEFT JOIN tb_business_line b ON i.businessLineId = b.id LEFT JOIN tb_modules m ON i.moduleId = m.id LEFT JOIN tb_user u ON i.addBy = u.loginName where i.state = 1 and i.id in ('%s') %s GROUP BY i.url,i.businessLineId,i.moduleId" % ( tbName,"','".join((str(i) for i in allstepIdList)),versionCondition) allStepData = executeSqlGetDict(allStepSql, []) print(len(allInterfaceData)) print(len(allStepData)) stepDataLen = len(allStepData) for dataIndex in range(0, len(allInterfaceData)): stepIndex = 0 while stepIndex < stepDataLen: if allInterfaceData[dataIndex]["businessLineName"] == allStepData[stepIndex]["businessLineName"]: if allInterfaceData[dataIndex]["moduleName"] == allStepData[stepIndex]["moduleName"]: if allInterfaceData[dataIndex]["url"] == allStepData[stepIndex]["url"]: del allStepData[stepIndex] stepDataLen = len(allStepData) stepIndex += 1 allInterfaceData.extend(allStepData) return allInterfaceData
def interfaceGetSyncTestCaseStep(request): id = request.GET.get("id") if VersionService.isCurrentVersion(request): interfaceData = dbModelToDict(DubboInterfaceService.getInterfaceForId(id)) syncList = DubboInterfaceService.syncDelTipList(interfaceData) else: interfaceData = dbModelToDict(HTTP_interfaceService.getVersionInterfaceForId(id)) syncList = syncVersionDelTipList(interfaceData, VersionService.getVersionName(request)) return HttpResponse(ApiReturn(body=syncList).toJson())
def addSession(request, data): #addSession #设置session关闭浏览器才失效 request.session.set_expiry(0) request.session["loginName"] = data[0].loginName request.session["userName"] = data[0].userName request.session["id"] = data[0].id request.session["audit"] = data[0].audit VersionService.setToCurrentVersion(request) VersionService.setLastVersionSession(request)
def varsConfAdd(request): varData = json.loads(parse.unquote(request.POST.get("data"))) varData["addBy"] = request.session.get("loginName") try: if VersionService.isCurrentVersion(request): global_varsService.addVar(varData) else: global_varsService.addVersionVar( varData, VersionService.getVersionName(request)) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON, "key重复").toJson()) return HttpResponse(ApiReturn().toJson())
def textConfEdit(request): TextData = json.loads(parse.unquote(request.POST.get("data"))) if VersionService.isCurrentVersion(request): getText = global_textService.getText(TextData["id"]) if getText.addBy != request.session.get("loginName"): return HttpResponse(ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON, "只能修改自己的变量").toJson()) global_textService.editText(TextData) return HttpResponse(ApiReturn().toJson()) else: getText = global_textService.getVersionText(TextData["id"]) if getText.addBy != request.session.get("loginName"): return HttpResponse(ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON, "只能修改自己的变量").toJson()) global_textService.editVersionText(TextData,VersionService.getVersionName(request)) return HttpResponse(ApiReturn().toJson())
def textConfAdd(request): TextData = json.loads(parse.unquote(request.POST.get("data"))) TextData["addBy"] = request.session.get("loginName") if VersionService.isCurrentVersion(request): try: global_textService.addText(TextData) except Exception as e: return HttpResponse(ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON,"key重复").toJson()) return HttpResponse(ApiReturn().toJson()) else: try: global_textService.addVersionText(TextData,VersionService.getVersionName(request)) except Exception as e: return HttpResponse(ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON,"key重复").toJson()) return HttpResponse(ApiReturn().toJson())
def queryPeopleTestCase(request): langDict = getLangTextDict(request) pageNum = int(request.GET.get("num")) if VersionService.isCurrentVersion(request): attrData = DubboTestcaseService.queryPeopleTestCase( pageNum, commonWebConfig.queryPeopleInterface, request.session.get("loginName")) else: attrData = HTTP_test_caseService.queryVersionPeopleTestCase( pageNum, commonWebConfig.queryPeopleInterface, request.session.get("loginName"), VersionService.getVersionName(request)) return HttpResponse( ApiReturn(ApiReturn.CODE_OK, langDict["web"]["httpTestCaseSuccess"], attrData).toJson())
def operationInterface(request, context): langDict = getLangTextDict(request) context["id"] = request.GET.get("id", -1) context["option"] = request.GET.get("option") try: if int(context["id"]) <= 0: interfaceId = request.GET.get("interfaceId") interObj = DubboInterfaceService.getInterfaceByInterfaceId( interfaceId) return redirect("/dubbo/operationInterface?id=%s&option=%s" % (interObj.id, context["option"])) except: return render(request, "permission/page_404.html") context["addHTTPInterface"] = "current-page" if not isRelease: context["env"] = "test" try: if VersionService.isCurrentVersion(request): context["addBy"] = DubboInterfaceService.getInterfaceById( request.GET.get("id")).addBy.loginName else: context["addBy"] = DubboInterfaceService.getInterfaceById( request.GET.get("id")).addBy.loginName except Exception as e: return HttpResponse("参数id错误 %s" % e) ####httoConfList ##dubugInfos envConfList = DubboInterfaceService.queryDubboConfSort(request) context["envConfList"] = envConfList ################################################### # if context["option"] == 'edit' and request.session.get("loginName") != context["dataAddBy"]: # return HttpResponse("只能修改自己创建的接口") # 文本 text = {} try: text["pageTitle"] = langDict["dubbo"]["interfacePageHeadings_%s" % context["option"]] text["subPageTitle"] = langDict["dubbo"]["interfaceSubPageTitle_%s" % context["option"]] except Exception as e: return HttpResponse("参数错误 %s" % e) context["text"] = text # 页面所需参数 context.update(ConfigServiceForDubbo.getConfigs(request)) context.update(getServiceConf(request)) context["debugBtnCount"] = commonWebConfig.debugBtnCount # 调试按钮 getDebugBtnList = ConfigServiceForDubbo.getDebugBtn(request) context.update(getDebugBtnList) addUserLog(request, "DUBBO单接口管理->%s用例->页面展示->成功" % context["option"], "PASS") context["serviceJson"] = json.dumps( ServiceConfService.queryServiceConfSort(request)) context["title"] = "DUBBO接口-" + request.GET.get("id") return render(request, "dubbo/interface/interfaceAddPage.html", context)
def dubbo_interfaceListCheck(request): page = request.POST.get("page") if isInt(page): page = int(page) else: addUserLog(request, "DUBBO单接口管理->查看用例->获取数据->页面参数不合法", "FAIL") return HttpResponse("<script>alert('请验证页数参数');</script>") checkArr = json.loads(parse.unquote(request.POST.get("checkArr"))) orderBy = request.POST.get("orderBy") if isSqlInjectable(orderBy): addUserLog(request, "DUBBO单接口管理->查看用例->获取数据->SQL注入检测时发现查询条件非法", "FAIL") return HttpResponse("<script>alert('查询条件非法');</script>") # 根据版本判断应该从哪个表里取数据 王吉亮添加于20180224 if VersionService.isCurrentVersion(request): tbName = "tb2_dubbo_interface" versionCondition = "" else: tbName = "tb2_version_dubbo_interface" #暂时未做多版本处理 versionCondition = "and versionName='%s'" % request.session.get( "version") execSql = "SELECT i.*,u.userName,mu.userName modByName from %s i LEFT JOIN tb_user mu ON i.modBy = mu.loginName LEFT JOIN tb_user u ON i.addBy = u.loginName LEFT JOIN tb_modules m ON i.moduleId = m.id LEFT JOIN tb_business_line b ON i.businessLineId = b.id WHERE 1=1 and i.state=1 %s" % ( tbName, versionCondition) checkList = [] for key in checkArr: if checkArr[key] == "": continue elif key == "caseFounder": checkList.append("%%%s%%" % checkArr[key]) checkList.append("%%%s%%" % checkArr[key]) execSql += """ and (i.addBy LIKE %s or u.userName LIKE %s) """ continue elif key == "module": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and m.moduleName LIKE %s """ continue elif key == "businessLine": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and b.bussinessLineName LIKE %s """ continue elif key == "dubboSystem": checkList.append("%s" % checkArr[key]) execSql += """ and i.dubboSystem= %s """ continue checkList.append("%%%s%%" % checkArr[key]) execSql += """ and i.%s """ % key execSql += """ LIKE %s""" execSql += """ ORDER BY %s""" % orderBy context = pagination(sqlStr=execSql, attrList=checkList, page=page, pageNum=commonWebConfig.interFacePageNum, request=request) response = render( request, "dubbo/interface/SubPages/interface_list_check_page.html", context) addUserLog(request, "DUBBO单接口管理->查看用例->获取数据->成功", "PASS") return response
def http_testCaseStepListCheck(request): page = request.POST.get("page") if isInt(page): page = int(page) else: return HttpResponse("<script>alert('请验证页数参数');</script>") checkArr = json.loads(parse.unquote(request.POST.get("checkVal"))) orderBy = request.POST.get("orderBy") if isSqlInjectable(orderBy): return HttpResponse("<script>alert('查询条件非法');</script>") #根据版本判断应该从哪个表里取数据 王吉亮添加于20180224 if VersionService.isCurrentVersion(request): tbName = "tb_http_testcase_step" versionCondition = "" else: tbName = "tb_version_http_testcase_step" versionCondition = "and versionName='%s'" % request.session.get( "version") execSql = "SELECT t.*,u.userName,m.moduleName,b.bussinessLineName,mu.userName modByName,tc.id tid from %s t LEFT JOIN tb_user mu ON t.modBy = mu.loginName LEFT JOIN tb_modules m on t.moduleId = m.id LEFT JOIN tb_business_line b on t.businessLineId = b.id LEFT JOIN tb_user u ON t.addBy = u.loginName LEFT JOIN tb_http_testcase tc ON t.caseId = tc.caseId WHERE 1=1 and t.state=1 %s" % ( tbName, versionCondition) checkList = [] for key in checkArr: if checkArr[key] == "": continue elif key == "caseFounder": checkList.append("%%%s%%" % checkArr[key]) checkList.append("%%%s%%" % checkArr[key]) execSql += """ and (t.addBy LIKE %s or u.userName LIKE %s) """ continue elif key == "module": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and m.moduleName LIKE %s """ continue elif key == "businessLine": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and b.bussinessLineName LIKE %s """ continue elif key == "fromInterfaceId": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and t.fromInterfaceId LIKE %s and isSync = 1 """ continue checkList.append("%%%s%%" % checkArr[key]) execSql += """ and t.%s """ % key execSql += """ LIKE %s""" execSql += """ ORDER BY %s""" % orderBy context = pagination(sqlStr=execSql, attrList=checkList, page=page, pageNum=commonWebConfig.testCasePageNum, request=request) response = render( request, "InterfaceTest/HTTPTestCase/SubPages/HTTP_testCaseStep_list_check_page.html", context) return response
def operationTask(request, context): langDict = getLangTextDict(request) context["option"] = request.GET.get("option") context["page"] = 1 if not isRelease: context["env"] = "test" try: if VersionService.isCurrentVersion(request): context["dataAddBy"] = HTTP_taskService.getTaskForId( request.GET.get("id")).addBy.loginName else: context["dataAddBy"] = HTTP_taskService.getVersionTaskForId( request.GET.get("id"), request.session.get("version")).addBy.loginName except Exception as e: print(traceback.format_exc()) return render(request, "permission/page_404.html") context["checkBusinessLine"] = dbModelListToListDict( BusinessService.getAllBusinessLine()) context["checkModules"] = dbModelListToListDict( ModulesService.getAllModules()) context["id"] = request.GET.get("id") context["interfacePage"] = 1 context["testCasePage"] = 1 context["taskAdd"] = "current-page" text = {} text["pageTitle"] = langDict["web"]["httpTaskPageHeadings_%s" % context["option"]] context["text"] = text context.update(getServiceConf(request)) return render(request, "InterfaceTest/HTTPTask/HTTP_taskAdd.html", context)
def taskDel(request): id = request.GET.get("id") if VersionService.isCurrentVersion(request): try: taskData = HTTP_taskService.getTaskForId(id) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "参数id错误 %s" % e).toJson()) if HTTP_taskService.delTaskForId(request, id) == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "删除失败,请联系管理员").toJson()) else: try: taskData = HTTP_taskService.getVersionTaskById(id) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "参数id错误 %s" % e).toJson()) # if request.session.get("loginName") != taskData.addBy.loginName: # return HttpResponse(ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "只能删除自己创建的任务").toJson()) if HTTP_taskService.delVersionTaskForId(request, id) == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "删除失败,请联系管理员").toJson())
def varsConfDel(request): id = request.GET.get("id") if VersionService.isCurrentVersion(request): getVar = global_varsService.getVar(id) if getVar.addBy != request.session.get("loginName"): return HttpResponse( ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON, "只能删除自己的变量").toJson()) try: global_varsService.delVar(id) return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON, e).toJson()) else: getVar = global_varsService.getVersionVar(id) if getVar.addBy.loginName != request.session.get("loginName"): return HttpResponse( ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON, "只能删除自己的变量").toJson()) try: global_varsService.delVersionVar(id) return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_GLOBAL_EXCEPITON, e).toJson())
def taskDelTheSameCase(request): id = request.GET.get("id") if VersionService.isCurrentVersion(request): try: taskData = HTTP_taskService.getTaskForId(id) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "参数id错误 %s" % e).toJson()) if request.session.get("loginName") != taskData.addBy.loginName: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "只能去重自己创建的任务").toJson()) #开始对task进行去重并保存。 else: try: taskData = HTTP_taskService.getVersionTaskById(id) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "参数id错误 %s" % e).toJson()) if request.session.get("loginName") != taskData.addBy.loginName: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "只能去重自己创建的任务").toJson()) #开始对VersionTask进行去重并保存 oldTaskInterfaces = taskData.taskInterfaces oldInterfaceList = oldTaskInterfaces.split(",") newInterfaceList = list(set(oldInterfaceList)) newInterfaceListStr = "" for tmpInterface in newInterfaceList: newInterfaceListStr += tmpInterface + "," newInterfaceListStr = newInterfaceListStr[:-1] taskData.taskInterfaces = newInterfaceListStr oldTaskCases = taskData.taskTestcases oldCaseList = oldTaskCases.split(",") newCaseList = list(set(oldCaseList)) newCaseStr = "" for tmpCase in newCaseList: newCaseStr += tmpCase + "," newCaseStr = newCaseStr[:-1] taskData.taskTestcases = newCaseStr try: taskData.save(force_update=True) return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) except Exception as e: return HttpResponse( ApiReturn(ApiReturn.CODE_INTERFACE_ERROR, '去重失败!').toJson())
def httpTaskSelectTestCaseCheckList(request): page = request.POST.get("testCasePage") if isInt(page): page = int(page) else: return HttpResponse("<script>alert('请验证页数参数');</script>") checkArr = json.loads(parse.unquote(request.POST.get("checkArr"))) orderBy = request.POST.get("orderBy") if isSqlInjectable(orderBy): return HttpResponse("<script>alert('查询条件非法');</script>") if VersionService.isCurrentVersion(request): tbName = "tb_http_testcase" versionCondition = "" else: tbName = "tb_version_http_testcase" versionCondition = "and versionName='%s'" % request.session.get( "version") execSql = "SELECT t.*,u.userName from %s t LEFT JOIN tb_user u ON t.addBy = u.loginName LEFT JOIN tb_modules m ON t.moduleId = m.id LEFT JOIN tb_business_line b ON t.businessLineId = b.id WHERE 1=1 and t.state=1 %s " % ( tbName, versionCondition) checkList = [] for key in checkArr: if checkArr[key] == "": continue elif key == "caseFounder": checkList.append("%%%s%%" % checkArr[key]) checkList.append("%%%s%%" % checkArr[key]) execSql += """ and (t.addBy LIKE %s or u.userName LIKE %s) """ continue elif key == "module": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and m.moduleName LIKE %s """ continue elif key == "businessLine": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and b.bussinessLineName LIKE %s """ continue checkList.append("%%%s%%" % checkArr[key]) execSql += """ and t.%s """ % key execSql += """ LIKE %s""" execSql += """ ORDER BY %s""" % orderBy context = pagination(sqlStr=execSql, attrList=checkList, page=page, pageNum=commonWebConfig.interfaceSelectPageNum) response = render( request, "InterfaceTest/HTTPTask/SubPages/HTTP_Task_Select_TestCase_list_check_page.html", context) return response
def operationInterface(request, context): langDict = getLangTextDict(request) context["id"] = request.GET.get("id", -1) context["option"] = request.GET.get("option") context["addBy"] = request.GET.get("addBy") try: if int(context["id"]) <= 0: interfaceId = request.GET.get("interfaceId") interObj = HTTP_interfaceService.getInterfaceByInterfaceId( interfaceId) return redirect( "/interfaceTest/HTTP_operationInterface?id=%s&option=%s" % (interObj.id, context["option"])) except: return render(request, "permission/page_404.html") context["addHTTPInterface"] = "current-page" if not isRelease: context["env"] = "test" try: if VersionService.isCurrentVersion(request): context["dataAddBy"] = HTTP_interfaceService.getInterfaceForId( request.GET.get("id")).addBy.loginName else: context[ "dataAddBy"] = HTTP_interfaceService.getVersionInterfaceForId( request.GET.get("id")).addBy.loginName except Exception as e: return render(request, "permission/page_404.html") # 文本 text = {} try: text["pageTitle"] = langDict["web"]["httpInterfacePageHeadings_%s" % context["option"]] text["subPageTitle"] = langDict["web"]["httpInterfaceSubPageTitle_%s" % context["option"]] except Exception as e: return HttpResponse("参数错误 %s" % e) context["text"] = text context.update(getConfigs(request)) context.update(getServiceConf(request)) context["debugBtnCount"] = commonWebConfig.debugBtnCount getDebugBtnList = getDebugBtn(request) context.update(getDebugBtnList) context["serviceJson"] = json.dumps( ServiceConfService.queryServiceConfSort(request)) context["title"] = "HTTP接口-" + request.GET.get("id") return render(request, "InterfaceTest/HTTPInterface/HTTP_interface.html", context)
def dubbo_taskSuiteListCheck(request): page = request.POST.get("page") if isInt(page): page = int(page) else: return HttpResponse("<script>alert('请验证页数参数');</script>") checkArr = json.loads(parse.unquote(request.POST.get("checkArr"))) orderBy = request.POST.get("orderBy") if isSqlInjectable(orderBy): return HttpResponse("<script>alert('查询条件非法');</script>") if VersionService.isCurrentVersion(request): tbName = "tb2_dubbo_task_suite" versionCondition = "" else: tbName = "tb_version_task_suite" versionCondition = "and versionName='%s'" % request.session.get( "version") execSql = "SELECT t.*,u.userName,um.userName modByName from %s t LEFT JOIN tb_user u ON t.addBy = u.loginName LEFT JOIN tb_user um ON t.modBy = um.loginName WHERE 1=1 and t.state=1 %s " % ( tbName, versionCondition) checkList = [] for key in checkArr: if checkArr[key] == "": continue elif key == "taskFounder": checkList.append("%%%s%%" % checkArr[key]) checkList.append("%%%s%%" % checkArr[key]) execSql += """ and (t.addBy LIKE %s or u.userName LIKE %s) """ continue elif key == "module": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and t.modulesGroup LIKE %s """ continue elif key == "businessLine": checkList.append("%%%s%%" % checkArr[key]) execSql += """ and t.businessLineGroup LIKE %s """ continue checkList.append("%%%s%%" % checkArr[key]) execSql += """ and t.%s """ % key execSql += """ LIKE %s""" execSql += """ ORDER BY %s""" % orderBy context = pagination(sqlStr=execSql, attrList=checkList, page=page, pageNum=commonWebConfig.taskPageNum, request=request) return render(request, "dubbo/taskSuite/SubPages/task_suite_list_check_page.html", context)
def change_version(request): langDict = getLangTextDict(request) context = {} if not isRelease: context["env"] = "test" versionName = request.GET.get("version", "CurrentVersion") versionHistorySets = TbVersion.objects.filter( type=1).order_by("-closeTime") isVersionExist = False for tmpVersion in versionHistorySets: if tmpVersion.versionName == versionName: isVersionExist = True VersionService.setLastVersionSession(request) if versionName == "CurrentVersion" or isVersionExist == False: VersionService.setToCurrentVersion(request) context["current_version"] = "current-page" context["userName"] = request.session.get("userName") # 文本 text = {} text[ "pageTitle"] = "当前版本信息查看" # langDict["web"]["httpInterfacePageHeadings_check"] context["text"] = text versionObj = TbVersion.objects.filter(type=2) context["versionName"] = "没有找到版本" context["versionDesc"] = "没有找到版本" context["closeTime"] = "没有封板时间" if versionObj: context["versionName"] = versionObj[0].versionName context["versionDesc"] = versionObj[0].versionDesc context["closeTime"] = versionObj[0].closeTime templatePath = "InterfaceTest/version_manage/current_version.html" else: VersionService.setToHistoryVersion(request, versionName) context["history_version"] = "current-page" context["userName"] = request.session.get("userName") # 文本 text = {} text[ "pageTitle"] = "历史版本信息查看" # langDict["web"]["httpInterfacePageHeadings_check"] context["text"] = text versionObj = TbVersion.objects.filter(type=1).order_by("-closeTime") context["versionList"] = [] for tmpVersion in versionObj: tmpVersionInfo = {} tmpVersionInfo['versionName'] = tmpVersion.versionName tmpVersionInfo['versionDesc'] = tmpVersion.versionDesc tmpVersionInfo['closeTime'] = tmpVersion.closeTime context["versionList"].append(tmpVersionInfo) templatePath = "InterfaceTest/version_manage/history_version.html" return render(request, templatePath, context)
def taskDataSaveEdit(request): taskData = json.loads(request.body) taskData = HTTP_taskService.taskDataToDict(request, taskData) if VersionService.isCurrentVersion(request): taskData["modTime"] = datetime.datetime.now() editTaskData = HTTP_taskService.editTask(taskData) if editTaskData == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务编辑保存失败").toJson()) else: taskData["modTime"] = datetime.datetime.now() editTaskData = HTTP_taskService.editVersionTask( taskData, VersionService.getVersionName(request)) if editTaskData == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务编辑保存失败").toJson())
def getInterfaceDataById(request): langDict = getLangTextDict(request) serviceConf = ServiceConfService.queryServiceConfSort(request) # 根据版本判断应该从哪个表里取数据 王吉亮添加于20180224 if VersionService.isCurrentVersion(request): getDBData = DubboInterfaceService.getInterfaceByIdToDict(request.GET.get("id")) else: getDBData = DubboInterfaceService.getInterfaceByIdToDict(request.GET.get("id")) varspre = getDBData["varsPre"] return HttpResponse( ApiReturn(ApiReturn.CODE_OK, langDict["web"]["httpInterfaceSuccess"], json.dumps(getDBData)).toJson())
def taskSuitSaveEdit(request): taskSuiteData = json.loads(request.body) taskSuiteData["protocol"] = "DUBBO" if VersionService.isCurrentVersion(request): taskSuiteData["modTime"] = datetime.datetime.now() taskSuiteData["modBy"] = request.session.get("loginName") editTaskData = dubbo_taskSuiteService.editTaskSuite(taskSuiteData) if editTaskData == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务编辑保存失败").toJson()) else: taskSuiteData["modTime"] = datetime.datetime.now() editTaskData = HTTP_taskSuiteService.editVersionTask( taskSuiteData, VersionService.getVersionName(request)) if editTaskData == 1: return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson()) else: return HttpResponse( ApiReturn(ApiReturn.CODE_TASK_EXCEPITON, "任务编辑保存失败").toJson())
def queryVars(request): page = request.POST.get("page") if isInt(page): page = int(page) else: return HttpResponse("<script>alert('请验证页数参数');</script>") checkArr = json.loads(parse.unquote(request.POST.get("queryArr"))) orderBy = request.POST.get("orderBy") if isSqlInjectable(orderBy): return HttpResponse("<script>alert('查询条件非法');</script>") #根据版本判断应该从哪个表里取数据 王吉亮添加于20180224 if VersionService.isCurrentVersion(request): tbName = "tb_global_vars" versionCondition = "" else: tbName = "tb_version_global_vars" versionCondition = "and versionName='%s'" % request.session.get( "version") execSql = "SELECT g.*,u.userName,umod.userName modByName FROM %s g LEFT JOIN tb_user u ON g.addBy = u.loginName LEFT JOIN tb_user umod ON g.modBy = umod.loginName WHERE g.state=1 %s " % ( tbName, versionCondition) checkList = [] for key in checkArr: if checkArr[key] == "": continue elif key == "addBy": checkList.append("%%%s%%" % checkArr[key]) checkList.append("%%%s%%" % checkArr[key]) execSql += """ and (g.addBy LIKE %s or u.userName LIKE %s) """ continue checkList.append("%%%s%%" % checkArr[key]) execSql += """ and g.%s """ % key execSql += """ LIKE %s""" execSql += """ ORDER BY %s""" % orderBy context = pagination(sqlStr=execSql, attrList=checkList, page=page, pageNum=commonWebConfig.testCasePageNum, request=request) context.update(getServiceConf(request)) response = render( request, "InterfaceTest/user_center/SubPages/global_vars_conf_sub_page.html", context) return response