Beispiel #1
0
def operationTaskSuite(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["addBy"] = HTTP_taskSuiteService.getTaskSuiteForId(
                request.GET.get("id")).addBy
        else:
            context["addBy"] = HTTP_taskSuiteService.getVersionTaskSuiteForId(
                request.GET.get("id")).addBy

    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/HTTPTaskSuite/HTTP_taskSuiteAdd.html",
                  context)
Beispiel #2
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())
def taskSuiteDel(request):
    id = request.GET.get("id")
    if VersionService.isCurrentVersion(request):
        try:
            taskData = DubboTaskService.getTaskForId(id)
        except Exception as e:
            return HttpResponse(
                ApiReturn(ApiReturn.CODE_TASK_EXCEPITON,
                          "参数id错误 %s" % e).toJson())

        if HTTP_taskSuiteService.delTaskSuiteForId(request, id) == 1:
            return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson())
        else:
            return HttpResponse(
                ApiReturn(ApiReturn.CODE_TASK_EXCEPITON,
                          "删除失败,请联系管理员").toJson())
    else:
        try:
            taskData = DubboTaskService.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 DubboTaskService.delVersionTaskForId(request, id) == 1:
            return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson())
        else:
            return HttpResponse(
                ApiReturn(ApiReturn.CODE_TASK_EXCEPITON,
                          "删除失败,请联系管理员").toJson())
Beispiel #4
0
def getTaskSuiteData(request):
    id = request.GET.get("id")

    if VersionService.isCurrentVersion(request):
        taskSuiteDataModel = HTTP_taskSuiteService.getTaskSuiteForId(id)
        taskSuiteData = dbModelToDict(taskSuiteDataModel)
        taskDataList = []
        taskSuiteTaskList = taskSuiteData["taskList"].split(",")
        for i in range(0, len(taskSuiteTaskList)):
            try:
                thisTask = HTTP_taskService.getTaskForTaskId(
                    taskSuiteTaskList[i])
                if not thisTask:
                    continue
                thisTaskDict = dbModelToDict(thisTask)
                thisTaskDict["userName"] = thisTask.addBy.userName
                taskDataList.append(thisTaskDict)
            except Exception as e:
                continue
        taskSuiteData["taskDataList"] = taskDataList
        # print(taskDataList)
        return HttpResponse(
            ApiReturn(ApiReturn.CODE_OK, body=taskSuiteData).toJson())
    else:
        taskSuiteDataModel = HTTP_taskSuiteService.getVersionTaskSuiteForId(id)
        taskSuiteData = dbModelToDict(taskSuiteDataModel)
        taskDataList = []
        taskSuiteTaskList = taskSuiteData["taskList"].split(",")
        for i in range(0, len(taskSuiteTaskList)):
            try:
                # thisTask = HTTP_taskService.getTaskForTaskId(taskSuiteTaskList[i])
                thisTask = HTTP_taskService.getVersionTaskForTaskId(
                    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
        return HttpResponse(ApiReturn(ApiReturn.CODE_ERROR).toJson())
Beispiel #5
0
def taskSuiteSaveEdit(request):
    taskSuiteData = json.loads(request.body)
    taskSuiteData["protocol"] = "HTTP"
    if VersionService.isCurrentVersion(request):

        taskSuiteData["modTime"] = datetime.datetime.now()
        taskSuiteData["modBy"] = request.session.get("loginName")
        editTaskData = HTTP_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())
Beispiel #6
0
def getTaskSuiteForId(request):
    langDict = getLangTextDict(request)
    id = request.GET.get("id")
    if VersionService.isCurrentVersion(request):
        taskData = HTTP_taskSuiteService.getTaskSuiteForId(id)
    else:
        taskData = HTTP_taskSuiteService.getVersionTaskSuiteForId(id)
        # taskData = HTTP_taskService.getVersionTaskForTaskId(taskId, VersionService.getVersionName(request))

    if not taskData:
        return HttpResponse(ApiReturn(ApiReturn.CODE_TASK_EXCEPITON).toJson())
    taskSuiteDataDict = dbModelToDict(taskData)
    taskSuiteDataDict["userName"] = TbUser.objects.get(
        loginName=taskData.addBy).userName
    context = {}
    context.update(getServiceConf(request))
    context["httpConf"] = HttpConfService.queryHttpConfSort(request)
    context["taskSuiteData"] = taskSuiteDataDict
    context["option"] = request.GET.get("option")
    return render(
        request,
        "InterfaceTest/HTTPTaskSuite/SubPages/task_suite_run_details_page.html",
        context)
Beispiel #7
0
def taskSuiteRunAdd(request):
    if VersionService.isCurrentVersion(request):
        taskSuiteData = HTTP_taskSuiteService.getTaskSuiteForId(
            request.POST.get("id"))
    else:
        taskSuiteData = HTTP_taskSuiteService.getVersionTaskSuiteForId(
            request.POST.get("id"))

    #先写taskSuite
    taskSuiteExecuteModel = TbTaskSuiteExecute()
    taskSuiteExecuteModel.taskSuiteId = taskSuiteData.taskSuiteId
    taskSuiteExecuteModel.title = taskSuiteData.title
    taskSuiteExecuteModel.taskSuiteDesc = taskSuiteData.taskSuiteDesc
    taskSuiteExecuteModel.protocol = taskSuiteData.protocol
    taskSuiteExecuteModel.status = taskSuiteData.status
    taskSuiteExecuteModel.taskCount = taskSuiteData.taskCount
    taskSuiteExecuteModel.taskList = taskSuiteData.taskList
    taskSuiteExecuteModel.isSendEmail = request.POST.get("isSendEmail")
    taskSuiteExecuteModel.emailList = request.POST.get(
        "emailList") != "" and request.POST.get(
            "emailList") or taskSuiteData.emailList
    taskSuiteExecuteModel.isSaveHistory = request.POST.get("isSaveHistory")
    taskSuiteExecuteModel.execComments = request.POST.get("execComments")
    taskSuiteExecuteModel.retryCount = request.POST.get("retryCount", 0)
    taskSuiteExecuteModel.execBy = request.session.get("loginName")
    taskSuiteExecuteModel.httpConfKeyList = request.POST.get("httpConfKey_id")
    taskSuiteExecuteModel.execTime = datetime.datetime.now()
    taskSuiteExecuteModel.execStatus = 2
    httpConfList = request.POST.get("httpConfKey_id").split(",")
    httpConfKeyAliasList = ""
    for httpConfIndex in httpConfList:
        if httpConfKeyAliasList == "":
            httpConfKeyAliasList = TbConfigHttp.objects.get(
                httpConfKey=httpConfIndex).alias
        else:
            httpConfKeyAliasList = "%s,%s" % (
                httpConfKeyAliasList,
                TbConfigHttp.objects.get(httpConfKey=httpConfIndex).alias)
    taskSuiteExecuteModel.httpConfKeyAliasList = httpConfKeyAliasList

    taskSuiteExecuteModel.addBy = request.session.get("loginName")
    taskSuiteExecuteModel.save()

    taskList = taskSuiteData.taskList.split(",")

    #获取taskExecuteId list
    taskExecuteIdList = []
    taskExecuteTcpList = []
    for taskIndex in taskList:
        taskData = TbTask.objects.get(taskId=taskIndex)
        for httpConfIndex in range(0, len(httpConfList)):
            taskExecuteData = TbTaskExecute()
            taskExecuteData.taskId = taskData.taskId
            if taskSuiteData.emailList != "":
                taskExecuteData.emailList = taskSuiteData.emailList
            else:
                taskExecuteData.emailList = taskData.emailList
            taskExecuteData.title = taskData.title
            taskExecuteData.taskdesc = taskData.taskdesc
            taskExecuteData.protocol = taskData.protocol
            taskExecuteData.businessLineGroup = taskData.businessLineGroup
            taskExecuteData.modulesGroup = taskData.modulesGroup
            taskExecuteData.interfaceCount = taskData.interfaceCount
            taskExecuteData.taskInterfaces = taskData.taskInterfaces
            taskExecuteData.caseCount = taskData.caseCount
            taskExecuteData.taskTestcases = taskData.taskTestcases
            taskExecuteData.interfaceNum = taskData.interfaceNum
            taskExecuteData.protocol = request.POST.get("protocol")
            taskExecuteData.emailList = request.POST.get("emailList")
            taskExecuteData.addBy_id = request.session.get("loginName")
            taskExecuteData.addByName = request.session.get("userName")
            taskExecuteData.modBy = request.session.get("loginName")
            taskExecuteData.modByName = request.session.get("userName")

            taskExecuteData.isSaveHistory = request.POST.get("isSaveHistory")
            # taskExecuteData.isSendEmail = 0

            taskExecuteData.isSendEmail = 0
            taskExecuteData.execBy_id = request.session.get("loginName")
            taskExecuteData.execByName = request.session.get("userName")

            taskExecuteData.version = VersionService.getVersionName(request)
            taskExecuteData.execComments = request.POST.get("execComments")
            taskExecuteData.retryCount = request.POST.get("retryCount", 0)
            taskExecuteData.httpConfKey_id = httpConfList[httpConfIndex]
            taskExecuteData.httpConfKeyAlias = TbConfigHttp.objects.get(
                httpConfKey=httpConfList[httpConfIndex]).alias
            taskExecuteData.taskSuiteExecuteId = taskSuiteExecuteModel.id

            taskExecuteData.save(force_insert=True)
            taskExecuteIdList.append(taskExecuteData.id)
            RedisCache().set_data(
                "%s_taskExecute_%s" % ("HTTP", taskExecuteData.id),
                "0:0:0:0:0", 60 * 60 * 12)
            RedisCache().set_data(
                "%s_taskExecuteStatus_%s" % ("HTTP", taskExecuteData.id), "1",
                60 * 60 * 12)
            RedisCache().set_data(
                "%s_taskSuite_%s_task_%s" %
                ("HTTP", taskSuiteExecuteModel.id, taskExecuteData.id),
                json.dumps({
                    "progress": 0,
                    "testResult": "",
                    "execStatus": 0
                }), 60 * 60 * 12)
            tcpin = '{"do":3,"TaskExecuteId":%s,"TaskExecuteEnv":"%s","TaskId":"%s","protocol":"HTTP","TaskSuiteExecuteId":"%s"}' % (
                taskExecuteData.id, taskExecuteData.httpConfKey_id,
                taskExecuteData.taskId, taskSuiteExecuteModel.id)
            taskExecuteTcpList.append(tcpin)

    taskSuiteExecuteModel.taskExecuteIdList = ",".join(
        '%s' % id for id in taskExecuteIdList)
    taskSuiteExecuteModel.save(force_update=True)
    taskSuiteRedisDict = {
        "taskExecuteIdList": taskExecuteIdList,
        "execStatus": 1,
        "progress": 0,
        "protocol": taskSuiteData.protocol
    }
    RedisCache().set_data(
        "%s_taskSuiteExecuteId_%s" % ("HTTP", taskSuiteExecuteModel.id),
        json.dumps(taskSuiteRedisDict), 60 * 60 * 12)
    for index in taskExecuteTcpList:
        retApiResult = send_tcp_request(index)
        if retApiResult.code != ApiReturn.CODE_OK:
            RedisCache().del_data("%s_taskSuiteExecuteId_%s" %
                                  ("HTTP", taskSuiteExecuteModel.id))
            for taskIndex in taskExecuteTcpList:
                RedisCache().del_data(
                    "%s_taskExecute_%s" %
                    ("HTTP", json.loads(taskIndex)['TaskExecuteId']))
                taskExecuteDataDel = TbTaskExecute.objects.get(
                    id=json.loads(taskIndex)['TaskExecuteId'])
                taskExecuteDataDel.testResult = "ERROR"
                taskExecuteDataDel.save()
            taskSuiteExecuteModel.testResult = "ERROR"
            taskSuiteExecuteModel.save()
            return HttpResponse(
                ApiReturn(ApiReturn.CODE_ERROR,
                          "任务执行添加成功,但是执行服务出现异常,请联系管理员").toJson())

    addUserLog(request, "任务管理->任务执行->成功", "PASS")

    return HttpResponse(ApiReturn(ApiReturn.CODE_OK).toJson())