Example #1
0
def httpTestCoverageSubPage(request):
    #taskIdList 标准任务集,计入到平台统计的有效的任务集,必须支持从集成开始的5个环境。
    context = {}
    #获取概况
    generalSituation = dbModelListToListDict(
        WebPortalService.getHttpTestGeneralSituation())
    if generalSituation:
        generalSituation[-1]["statisticalDetail"] = json.loads(
            generalSituation[-1]["statisticalDetail"])
        context["generalSituation"] = generalSituation[-1]

    else:
        context["generalSituation"] = []

    #获取执行情况
    interfaceTest = WebPortalService.getInterfaceTest()
    if interfaceTest:
        context["interfaceTest"] = interfaceTest
    else:
        context["interfaceTest"] = []

    allBlDict = dbModelListToListDict(
        TbBusinessLine.objects.filter(state=1).exclude(
            bussinessLineName="营销云"))
    context["allBl"] = allBlDict

    allEnv = dbModelListToListDict(
        TbWebPortalStandardEnv.objects.filter(
            state=1, actionIsShow=1).order_by("lineSort"))
    context["allEnv"] = allEnv
    #获取覆盖度
    coverageRate = WebPortalService.getCoverageRate()
    context["coverageRate"] = coverageRate

    serviceNum = 0
    coverageList = TbWebPortalServiceInterfaceCovered.objects.filter(
        state=1).order_by("-coverage")
    coverageDictList = []
    for coverage in coverageList:
        serviceNum += 1
        coverageDict = {}
        coverageDict["serviceName"] = coverage.serviceName
        coverageDict["totalNum"] = coverage.standardInterfaceNum
        coverageDict["coverageNum"] = coverage.coveredInterfaceNum
        coverageDict["coverage"] = coverage.coverage
        coverageDictList.append(coverageDict)

    leftNum = math.ceil(serviceNum / 2)
    leftList = []
    rightList = []
    for index in range(0, serviceNum):
        if index < leftNum:
            leftList.append(coverageDictList[index])
        else:
            rightList.append(coverageDictList[index])

    context["leftList"] = leftList
    context["rightList"] = rightList
    return render(request, "webportal/subpages/httpTestCoveragePage.html",
                  context)
Example #2
0
def httpTestSubPage(request):
    #taskIdList 标准任务集,计入到平台统计的有效的任务集,必须支持从集成开始的5个环境。
    context = {}
    #获取概况
    generalSituation = dbModelListToListDict(
        WebPortalService.getHttpTestGeneralSituation())
    if generalSituation:
        generalSituation[-1]["statisticalDetail"] = json.loads(
            generalSituation[-1]["statisticalDetail"])
        context["generalSituation"] = generalSituation[-1]

    else:
        context["generalSituation"] = []

    #获取执行情况
    interfaceTest = WebPortalService.getInterfaceTest()
    if interfaceTest:
        context["interfaceTest"] = interfaceTest
    else:
        context["interfaceTest"] = []

    allBlDict = dbModelListToListDict(
        TbBusinessLine.objects.filter(state=1).exclude(
            bussinessLineName="营销云"))
    context["allBl"] = allBlDict

    allEnv = dbModelListToListDict(
        TbWebPortalStandardEnv.objects.filter(
            state=1, actionIsShow=1).order_by("lineSort"))
    context["allEnv"] = allEnv
    #获取覆盖度
    coverageRate = WebPortalService.getCoverageRate()
    context["coverageRate"] = coverageRate

    return render(request, "webportal/subpages/httpTestPage.html", context)
Example #3
0
def getAllPassRate(request):
    allPassRate = list(TbWebPortalAllPassRate.objects.all())[-7:]
    passRateListForEnv = []
    envList = []
    passRateEnvDict = {}
    aliasList = []
    for passRate in allPassRate:
        testResultList = passRate.testResultMsg
        for testResult in json.loads(testResultList):
            if testResult["env"] not in envList:
                envList.append(testResult["env"])

    envAliasDict = WebPortalService.getAllEnvAlias()
    '''根据最新一条数据中的testResultMessage获得aliasList'''
    for envAlias in envAliasDict:
        aliasList.append(envAliasDict[envAlias])
    '''获得每个环境7天的通过'''
    for env in envList:
        passRateList = []
        for passRate in allPassRate:
            testResultList = passRate.testResultMsg
            for testResult in json.loads(testResultList):
                if env == testResult["env"]:
                    passRateList.append(testResult["passRate"])
        passRateListForEnv.append(passRateList)

    passRateEnvDict["envList"] = aliasList
    passRateEnvDict["passRateDict"] = dict(zip(aliasList, passRateListForEnv))

    return HttpResponse(ApiReturn(body=passRateEnvDict).toJson())
Example #4
0
def openApiTestSubPage(request):
    #taskIdList 标准任务集,计入到平台统计的有效的任务集,必须支持从集成开始的5个环境。
    context = {}

    context["generalSituation"] = dbModelToDict(TbWebPortOpenApiGeneralSituation.objects.last())

    # openAPIDBData = TbWebPortOpenApiGeneralSituation.objects.filter()
    context['businessLine'] = dbModelListToListDict(TbOpenApiBusinessLine.objects.filter(state=1))
    context["allEnv"] = dbModelListToListDict(TbWebPortalStandardEnv.objects.filter(state=1,openapiIsShow=1).order_by("lineSort"))
    context["interfaceTest"] = WebPortalService.getOpenApiIntrefaceTest()

    context["openApiBlTest"] = WebPortalService.getOpenApiBlTest()



    return render(request,"webportal/subpages/openApitestPage.html",context)
Example #5
0
def adminPermsion(request):
    context = {}
    currentUser = request.session.get("adminLoginName")

    if request.path.startswith('/myadmin'):
        adminUserList = dbModelListToListDict(
            TbAdminUser.objects.filter(loginName=currentUser,
                                       superManager=1,
                                       state=1))
        if len(adminUserList) == 0:
            context["isTeamLeader"] = 1
        else:
            context["isTeamLeader"] = 0

    isSuperManager = ""
    userPermissions = TbAdminManageUserPermissionRelation.objects.filter(
        loginName=currentUser, state=1)
    permissions = TbAdminManagePermission.objects.filter(state=1)
    permissionKeys = []

    if "adminAudit" in request.session and request.session["adminAudit"] == 1:
        user = TbAdminUser.objects.get(loginName=currentUser, state=1)
        isSuperManager = user.superManager
        '''判断是否是超级管理员,是超级管理员,获得所有的权限列表;不是,获得授权的权限列表'''
        if isSuperManager == 1:
            if len(permissions) != 0:
                for permission in permissions:
                    permissionKeys.append(permission.permissionKey)
        else:
            if len(userPermissions) != 0:
                for userpermission in userPermissions:
                    permissionKeys.append(userpermission.permissionKey)
    context["permissionKeys"] = permissionKeys

    if "adminAudit" in request.session and request.session["adminAudit"] == 1:
        user = TbAdminUser.objects.get(loginName=currentUser, state=1)
        isSuperManager = user.superManager
    context["isSuperManager"] = isSuperManager

    generalSituation = dbModelListToListDict(
        WebPortalService.getHttpTestGeneralSituation())
    if generalSituation:
        generalSituation[-1]["statisticalDetail"] = json.loads(
            generalSituation[-1]["statisticalDetail"])
        context["generalSituation"] = generalSituation[-1]

    else:
        context["generalSituation"] = []
    try:
        platformUser = TbAdminUser.objects.get(loginName=request.session.get(
            "loginName", ""),
                                               state=1)
        context["userIsSuperManager"] = platformUser.superManager
    except:
        context["userIsSuperManager"] = 0
    return context
Example #6
0
def getBusinessLinesActionPassRate(request):
    resultDict = {}
    resultList = []
    envAliasDict = WebPortalService.getAllEnvAlias()
    businessLines = TbWebPortalBusinessLine.objects.filter(
        isShow=1, state=1).order_by("level")
    for businessLine in businessLines:
        allPassRate = list(
            TbWebPortalBusinessLineActionPassRate.objects.filter(
                businessLine=businessLine.bussinessLine, state=1))[-7:]
        passRateListForEnv = []
        envList = []
        passRateEnvDict = {}
        aliasList = []

        for passRate in allPassRate:
            testResultList = passRate.testResultMsg
            for testResult in json.loads(testResultList):
                if testResult["env"] not in envList:
                    envList.append(testResult["env"])

        for envAlias in envAliasDict:
            aliasList.append(envAliasDict[envAlias])

        for env in envList:
            passRateList = []
            for passRate in allPassRate:
                testResultList = passRate.testResultMsg
                for testResult in json.loads(testResultList):
                    if env == testResult["env"]:
                        passRateList.append(testResult["passRate"])
            passRateListForEnv.append(passRateList)

        passRateEnvDict["envList"] = aliasList
        passRateEnvDict["passRateDict"] = dict(
            zip(aliasList, passRateListForEnv))

        resultDict[businessLine.bussinessLine] = passRateEnvDict

    resultList.append(resultDict)

    return HttpResponse(ApiReturn(body=resultList).toJson())
    lr = requests.post(url=loginUrl, data=loginFormData)
    JSESSIONID = lr.cookies.get("JSESSIONID")
    url = "http://jira.ingageapp.com/rest/gadget/1.0/twodimensionalfilterstats/generate?filterId=filter-13452&xstattype=customfield_11435&showTotals=true&sortDirection=desc&sortBy=total&ystattype=project&numberToShow=50&_=1523946330420"
    headers = {
        "cookie":
        "JSESSIONID=%s; atlassian.xsrf.token=%s; AWSELB=%s" %
        (lr.cookies.get("JSESSIONID"), lr.cookies.get("atlassian.xsrf.token"),
         lr.cookies.get("AWSELB"))
    }
    r = requests.get(url=url, headers=headers)
    rStr = r.text
    rJson = {"rows": []}
    try:
        if isJson(rStr):
            rJson = json.loads(rStr)
        androidAutoMated = WebPortalService.reHtmlGetText(
            rJson["rows"][-1]["cells"][1]["markup"])
        androidAutoMatedNum = 0
        IOSAutoMated = WebPortalService.reHtmlGetText(
            rJson["rows"][-1]["cells"][3]["markup"])
        IOSAutoMatedNum = 0
        webAutoMated = WebPortalService.reHtmlGetText(
            rJson["rows"][-1]["cells"][2]["markup"])
        webAutoMatedNum = 0

        if len(androidAutoMated) > 0:
            androidAutoMatedNum = int(androidAutoMated[0])
        if len(IOSAutoMated) > 0:
            IOSAutoMatedNum = int(IOSAutoMated[0])
        if len(webAutoMated) > 0:
            webAutoMatedNum = int(webAutoMated[0])
def getActionPassrate(argv, businessLinesList=[]):
    if len(argv) == 1:
        num = 1
    else:
        num = int(argv[-1])

    if len(businessLinesList) == 0:
        standardTasks = TbWebPortalStandardTask.objects.filter(state=1)
        for standardTask in standardTasks:
            if standardTask.businessLine not in businessLinesList:
                businessLinesList.append(standardTask.businessLine)

    httpConfKeysList = WebPortalService.getAllHttpConf()
    execStatus = [3, 4]
    numList = []
    startExeTime = datetime.datetime.now()
    i = 1
    while (i <= num):
        numList.append(-i)
        i = i + 1
    numList.reverse()

    for num in numList:
        # resultDict = {}
        date = datetime.datetime.today() + datetime.timedelta(days=num)
        zeroToday = date - datetime.timedelta(hours=date.hour,
                                              minutes=date.minute,
                                              seconds=date.second,
                                              microseconds=date.microsecond)
        # 获取23:59:59
        lastToday = zeroToday + datetime.timedelta(
            hours=23, minutes=59, seconds=59)

        for businessLine in businessLinesList:
            envPassRateList = []
            for httpConf in httpConfKeysList:

                totalNum = 0
                passNum = 0
                version = WebPortalService.getEnvVersion(httpConf)
                type = TbVersion.objects.get(versionName=version, state=1).type
                taskList = TbWebPortalStandardTask.objects.filter(
                    version=version, businessLine=businessLine, state=1)
                passRate = 0
                for task in taskList:
                    if type == 2:
                        taskExecuteResult = TbTaskExecute.objects.filter(
                            version="CurrentVersion",
                            taskId=task.taskId,
                            httpConfKey=httpConf,
                            execTime__range=(zeroToday, lastToday),
                            execStatus__in=execStatus,
                            state=1)
                    else:
                        taskExecuteResult = TbTaskExecute.objects.filter(
                            version=version,
                            taskId=task.taskId,
                            httpConfKey=httpConf,
                            execTime__range=(zeroToday, lastToday),
                            execStatus__in=execStatus,
                            state=1)

                    for taskExecute in taskExecuteResult:
                        testResultMsg = taskExecute.testResultMsg

                        if not isJson(
                                testResultMsg
                        ) or "totalExecuteSummary" not in json.loads(
                                testResultMsg).keys():
                            continue
                        num = (
                            json.loads(testResultMsg))["totalExecuteSummary"]
                        totalNum += num["total"]
                        passNum += num["pass"]

                    if totalNum == 0:
                        # passRate = '%.2f%%' % (0)
                        passRate = 0
                    else:
                        passRate = '%.2f' % ((passNum / totalNum) * 100)
                        # passRate = (passNum / totalNum) * 100
                alias = TbWebPortalStandardEnv.objects.get(
                    state=1, httpConfKey=httpConf).alias
                version = TbWebPortalStandardEnv.objects.get(
                    state=1, httpConfKey=httpConf).version
                envPassRateList.append({
                    "env": httpConf,
                    "passRate": passRate,
                    "date": date.strftime("%Y-%m-%d"),
                    "alias": alias + "(" + version + ")",
                    "passNum": passNum,
                    "totalNum": totalNum
                })

            endExeTime = datetime.datetime.now()

            passRate = TbWebPortalBusinessLineActionPassRate()

            passRate.testResultMsg = json.dumps(envPassRateList)
            passRate.state = 1
            passRate.businessLine = businessLine
            passRate.execTakeTime = (endExeTime - startExeTime).seconds
            passRate.save()
Example #9
0
def getRencentDays(request):
    recentDays = WebPortalService.getRencentDays()
    return HttpResponse(ApiReturn(body=recentDays).toJson())
Example #10
0
def getAllHttpConf(request):
    envList = WebPortalService.getAllHttpConf()
    return HttpResponse(ApiReturn(body=envList).toJson())