예제 #1
0
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())
예제 #2
0
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())
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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)
예제 #6
0
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())
예제 #7
0
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())
예제 #8
0
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
예제 #9
0
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())
예제 #10
0
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())
예제 #11
0
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
예제 #12
0
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())
예제 #13
0
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)
예제 #14
0
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())
예제 #15
0
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
예제 #16
0
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())
예제 #17
0
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
예제 #18
0
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())
예제 #19
0
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)
예제 #20
0
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)
예제 #21
0
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())
예제 #22
0
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())
예제 #23
0
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
예제 #24
0
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())
예제 #25
0
def getInterfaceDataForId(request):
    langDict = getLangTextDict(request)
    serviceConf = ServiceConfService.queryServiceConfSort(request)

    # 根据版本判断应该从哪个表里取数据 王吉亮添加于20180224
    if VersionService.isCurrentVersion(request):
        getDBData = HTTP_interfaceService.getInterfaceForIdToDict(
            request.GET.get("id"))
    else:
        getDBData = HTTP_interfaceService.getVersionInterfaceForIdToDict(
            request.GET.get("id"), request.session.get("version"))
    return HttpResponse(
        ApiReturn(ApiReturn.CODE_OK, langDict["web"]["httpInterfaceSuccess"],
                  json.dumps(getDBData)).toJson())
예제 #26
0
def getTaskSuiteData(request):
    id = request.GET.get("id")

    if VersionService.isCurrentVersion(request):
        taskSuiteDataModel = dubbo_taskSuiteService.findTaskSuiteForId(id)[0]
        taskSuiteData = dbModelToDict(taskSuiteDataModel)
        taskDataList = []
        taskSuiteTaskList = taskSuiteData["taskList"].split(",")
        for i in range(0, len(taskSuiteTaskList)):
            try:
                thisTask = DubboTaskService.getTaskForTaskId(
                    taskSuiteTaskList[i])
                if not thisTask:
                    continue
                thisTaskDict = dbModelToDict(thisTask)
                thisTaskDict["userName"] = thisTask.addBy.userName

                taskDataList.append(thisTaskDict)
            except Exception as e:
                # print(addBy)
                # taskData["interfaceList"][i].update(addBy)
                continue
        taskSuiteData["taskDataList"] = taskDataList
        print(taskDataList)
        return HttpResponse(
            ApiReturn(ApiReturn.CODE_OK, body=taskSuiteData).toJson())
    else:
        taskSuiteDataModel = dubbo_taskSuiteService.findTaskSuiteForId(id)[0]
        taskSuiteData = dbModelToDict(taskSuiteDataModel)
        taskDataList = []
        taskSuiteTaskList = taskSuiteData["taskList"].split(",")
        for i in range(0, len(taskSuiteTaskList)):
            try:
                thisTask = DubboTaskService.getTaskForTaskId(
                    taskSuiteTaskList[i])
                if not thisTask:
                    continue
                thisTaskDict = dbModelToDict(thisTask)
                thisTaskDict["userName"] = thisTask.addBy.userName

                taskDataList.append(thisTaskDict)
            except Exception as e:
                # print(addBy)
                # taskData["interfaceList"][i].update(addBy)
                continue
        taskSuiteData["taskDataList"] = taskDataList
        print(taskDataList)
        return HttpResponse(
            ApiReturn(ApiReturn.CODE_OK, body=taskSuiteData).toJson())
예제 #27
0
def getTestCaseDataForId(request):
    langDict = getLangTextDict(request)
    if VersionService.isCurrentVersion(request):
        getDBData = DubboTestcaseService.getTestCaseForIdToDict(
            request.GET.get("id"))
        getDBData["step"] = DubboTestcaseService.getTestCaseStep(
            getDBData["caseId"])
    else:
        getDBData = HTTP_test_caseService.getVersionTestCaseForIdToDict(
            request.GET.get("id"))
        getDBData["step"] = HTTP_test_case_stepService.getVersionTestCaseStep(
            getDBData["caseId"], request.session.get("version"))
    return HttpResponse(
        ApiReturn(ApiReturn.CODE_OK, langDict["web"]["httpTestCaseSuccess"],
                  json.dumps(getDBData)).toJson())
예제 #28
0
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())
예제 #29
0
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())
예제 #30
0
def queryPageObjectsList(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 = "tb3_ui_page_object"
        versionCondition = ""
    else:
        tbName = "tb_version_global_vars"
        versionCondition = "and versionName='%s'" % request.session.get(
            "version")

    # execSql = "SELECT g.*,u.userName FROM %s g LEFT JOIN tb_user u ON g.addBy = u.loginName WHERE 1=1 AND g.state=1 %s " % (tbName,versionCondition)
    execSql = "SELECT u.* from tb_ui_page_object u WHERE 1=1 "
    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)
    context.update(getHttpConfForUI())
    response = render(
        request, "ui_main/page_object/subPages/page_object_add_subpage.html",
        context)
    return response