Exemple #1
0
def getExpectedValue(valueAccessMethod, value, paramDataDict, actionJson):
    result = None
    if valueAccessMethod == "getGlobalVariable":
        result = publicMethod.getGlobalVariable(value)
    elif valueAccessMethod == "getParam":
        result = getParam(paramDataDict, value)
    elif valueAccessMethod == "getCustom":
        actualValueType = actionJson["expectedValueType"]
        result = publicMethod.convertType(value, actualValueType)
    return result
Exemple #2
0
def publicAssert(actionData, paramDataDict):
    print("=======actionData========")
    print(actionData)
    actionJson = demjson.decode(actionData["actionJson"])
    print("<b><-----执行assert操作-----></b>")
    actualValueAccessMethod = actionJson["actualValueAccessMethod"]
    actualValue = actionJson["actualValue"]
    actual = None
    if actualValueAccessMethod == "getGlobalVariable":
        actual = publicMethod.getGlobalVariable(actualValue)
    expectedValueAccessMethod = actionJson["expectedValueAccessMethod"]
    expectedValue = actionJson["expectedValue"]
    expect = None
    if expectedValueAccessMethod == "getCustom":
        expectedValueType = actionJson["expectedValueType"]
        expect = publicMethod.convertType(expectedValue, expectedValueType)
    elif expectedValueAccessMethod == "getParam":
        expect = getParam(paramDataDict, expectedValue)
    elif expectedValueAccessMethod == "getGlobalVariable":
        expect = publicMethod.getGlobalVariable(expectedValue)
    print("实际值:" + str(actual))
    print("期望值:" + str(expect))
    assert actual == expect, actionData["stepName"]
Exemple #3
0
    def runTask(toDoTaskData, reportPath):
        testSuite = unittest.TestSuite()
        reportId = toDoTaskData[0]
        taskType = toDoTaskData[2]
        taskId = toDoTaskData[3]
        try:
            print("开始执行任务,type:" + str(taskType) + ",id:" + taskId)
            # 加载环境变量
            environmentId = toDoTaskData[12]
            getEnvironmentVariablesSql = "select * from environment_variables where environmentId = %s and  status = %s"
            getEnvironmentVariablesSqlParamList = [environmentId, 1]
            environmentVariables = mySqlOperate.search(
                getEnvironmentVariablesSql,
                getEnvironmentVariablesSqlParamList)
            if not (environmentVariables is None):
                for environmentVariable in environmentVariables:
                    try:
                        environmentVariableName = environmentVariable[2]
                        environmentVariableType = environmentVariable[7]
                        environmentVariableValue = environmentVariable[3]
                        value = publicMethod.convertType(
                            environmentVariableValue, environmentVariableType)
                        publicMethod.environmentVariableDict[
                            environmentVariableName] = value
                    except Exception as e:
                        print("加载环境变量失败2")
                        failed(reportId, 4)
                        print(e)
            else:
                print("加载环境变量失败1")
                failed(reportId, 4)
            if runAndReport.lock == 0:
                # 加载测试用例
                if taskType == 1:
                    caseId = taskId
                    publicMethod.caseIdList.append(caseId)
                    publicMethod.casesDataDict[caseId] = {}
                    publicMethod.casesDataDict[caseId][
                        "caseName"] = toDoTaskData[1]
                    publicMethod.casesDataDict[caseId]["caseData"] = []
                elif taskType == 2:
                    publicMethod.currentSuiteName = toDoTaskData[1]
                    suiteStepsSql = "select * from suite_step where suiteId = %s and status = %s"
                    suiteStepsSqlParamList = [taskId, 1]
                    suiteSteps = mySqlOperate.search(suiteStepsSql,
                                                     suiteStepsSqlParamList)
                    if not (suiteSteps is None):
                        for suiteStep in suiteSteps:
                            if runAndReport.lock == 0:
                                caseId = suiteStep[2]
                                publicMethod.caseIdList.append(caseId)
                                publicMethod.casesDataDict[caseId] = {}
                                caseSql = "select * from `case` where id = %s"
                                caseSqlParamList = [caseId]
                                case = mySqlOperate.search(
                                    caseSql, caseSqlParamList)
                                if not (case is None):
                                    case = case[0]
                                    publicMethod.casesDataDict[caseId][
                                        "caseName"] = case[1]
                                    publicMethod.casesDataDict[caseId][
                                        "caseData"] = []
                                else:
                                    print("获取测试用例失败")
                                    failed(reportId, 5)
                    else:
                        print("获取集合步骤失败")
                        failed(reportId, 6)
                if runAndReport.lock == 0:
                    # 加载测试用例步骤,即测试片段
                    for caseId in publicMethod.caseIdList:
                        caseStepsSql = "select * from `case_step` where caseId = %s and status = %s order by sequence asc"
                        caseStepsSqlParamList = [caseId, 1]
                        caseSteps = mySqlOperate.search(
                            caseStepsSql, caseStepsSqlParamList)
                        caseStepDict = {}
                        if not (caseSteps is None):
                            for caseStep in caseSteps:
                                testSuite.addTest(
                                    publicTestCase('test_public'))
                                if runAndReport.lock == 0:
                                    caseStepDict = {}
                                    fragmentId = caseStep[2]
                                    fragmentSql = "select * from `fragment` where id = %s"
                                    fragmentSqlParamList = [fragmentId]
                                    fragment = mySqlOperate.search(
                                        fragmentSql, fragmentSqlParamList)
                                    if not (fragment is None):
                                        fragment = fragment[0]
                                        fragmentId = fragment[0]
                                        fragmentName = fragment[1]
                                        fragmentTemplateId = fragment[2]
                                        caseStepDict["fragmentId"] = fragmentId
                                        caseStepDict[
                                            "fragmentName"] = fragmentName
                                        caseStepDict[
                                            "fragmentTemplateId"] = fragmentTemplateId
                                        # 加载测试片段参数
                                        fragmentParamsSql = "select * from fragment_param where fragmentId = %s and status = %s"
                                        fragmentParamsSqlParamList = [
                                            fragmentId, 1
                                        ]
                                        fragmentParams = mySqlOperate.search(
                                            fragmentParamsSql,
                                            fragmentParamsSqlParamList)
                                        if not (fragmentParams is None):
                                            paramDict = {}
                                            for fragmentParam in fragmentParams:
                                                paramName = fragmentParam[1]
                                                paramType = fragmentParam[2]
                                                paramValue = fragmentParam[3]
                                                value = publicMethod.convertType(
                                                    paramValue, paramType)
                                                print(paramName)
                                                paramDict[paramName] = value
                                            caseStepDict[
                                                "fragmentParamDict"] = paramDict
                                        else:
                                            print("获取片段参数失败")
                                            failed(reportId, 9)
                                        if runAndReport.lock == 0:
                                            fragmentTemplateStepsSql = "select * from fragment_template_step where templateId = %s and parentId is %s and status = %s order by sequence asc"
                                            fragmentTemplateStepsParams = [
                                                fragmentTemplateId, None, 1
                                            ]
                                            fragmentTemplateSteps = mySqlOperate.search(
                                                fragmentTemplateStepsSql,
                                                fragmentTemplateStepsParams)
                                            if not (fragmentTemplateSteps is
                                                    None):
                                                templateStepList = []
                                                for fragmentTemplateStep in fragmentTemplateSteps:
                                                    dictionary = {}
                                                    dictionary[
                                                        "id"] = fragmentTemplateStep[
                                                            0]
                                                    dictionary[
                                                        "stepName"] = fragmentTemplateStep[
                                                            1]
                                                    dictionary[
                                                        "actionType"] = fragmentTemplateStep[
                                                            2]
                                                    dictionary[
                                                        "actionKey"] = fragmentTemplateStep[
                                                            3]
                                                    dictionary[
                                                        "actionJson"] = fragmentTemplateStep[
                                                            4]
                                                    dictionary[
                                                        "sequence"] = fragmentTemplateStep[
                                                            5]
                                                    templateStepList.append(
                                                        dictionary)
                                                caseStepDict[
                                                    "templateStepList"] = templateStepList
                                            else:
                                                print("获取片段模板步骤失败")
                                                failed(reportId, 10)
                                    else:
                                        print("获取用例片段失败")
                                        failed(reportId, 8)
                                    if runAndReport.lock == 0:
                                        publicMethod.casesDataDict[caseId][
                                            "caseData"].append(caseStepDict)
                        else:
                            print("获取用例步骤失败")
                            failed(reportId, 7)
                print(publicMethod.casesDataDict)
                print(publicMethod.environmentVariableDict)

                if runAndReport.lock == 0:
                    """执行所有测试用例,并把结果写入报告"""
                    result = BeautifulReport(testSuite)
                    now = time.strftime("%Y%m%d%H%M%S")
                    if not os.path.exists(reportPath):
                        os.makedirs(os.path.abspath(reportPath))
                    filename = now + '_' + toDoTaskData[1] + '.html'
                    result.report(filename=filename,
                                  description=toDoTaskData[1],
                                  log_path=reportPath)
                    now = time.strftime("%Y-%m-%d %H:%M:%S")
                    reportPath = str(
                        os.path.abspath(reportPath)) + "\\" + filename
                    reportPath = reportPath.replace("\\", "/", -1)
                    if runAndReport.lock == 0:
                        suiteLastResult = 1
                        taskResult = 1
                        i = 0
                        for caseId in publicMethod.caseIdList:
                            result = publicMethod.runCaseResultList[i]
                            if taskType == 2:
                                if result == 0:
                                    suiteLastResult = 0
                            if result == 0:
                                taskResult = 0
                            now = time.strftime("%Y-%m-%d %H:%M:%S")
                            updateCaseSql = "update `case` SET lastResult = %s, updateTime = %s where id = %s"
                            updateCaseSqlParamList = [result, now, caseId]
                            updateCaseSqlResult = mySqlOperate.update(
                                updateCaseSql, updateCaseSqlParamList)
                            i = i + 1
                        if taskType == 2:
                            now = time.strftime("%Y-%m-%d %H:%M:%S")
                            updateSuiteSql = "update `suite` SET lastResult = %s, updateTime = %s where id = %s"
                            updateSuiteSqlParamList = [
                                suiteLastResult, now, taskId
                            ]
                            updateSuiteSqlResult = mySqlOperate.update(
                                updateSuiteSql, updateSuiteSqlParamList)
                        updateReportSql = "update report set status = %s, result = %s, reportPath = %s, updateTime = %s where id = %s"
                        updateReportSqlParamList = [
                            2, taskResult, reportPath, now, reportId
                        ]
                        updateReportSqlResult = mySqlOperate.update(
                            updateReportSql, updateReportSqlParamList)
                    if runAndReport.lock == 0:
                        initializationData()
        except Exception as e:
            print("发生未知错误")
            failed(reportId, 11)
            print(e)
Exemple #4
0
def public(actionData, paramDataDict):
    print("=======actionData========")
    print(actionData)
    actionJson = demjson.decode(actionData["actionJson"])
    actionKey = actionData["actionKey"]
    if actionKey == "defineVariables":
        print("<b><-----执行defineVariables操作-----></b>")
        value = ""
        variableValueType = actionJson["variableValueType"]
        variableValue = actionJson["variableValue"]
        value = publicMethod.convertType(variableValue, variableValueType)
        variableStorageMethod = actionJson["variableStorageMethod"]
        variableStorageValue = actionJson["variableStorageValue"]
        if variableStorageMethod == "setGlobalVariable":
            try:
                print("定义变量为全局变量,变量名:" + variableStorageValue + ",值:" +
                      str(value))
            except:
                pass
            publicMethod.setGlobalVariable(variableStorageValue, value)
    elif actionKey == "if" or actionKey == "while":
        if actionKey == "if":
            print("<b><-----执行if操作-----></b>")
        elif actionKey == "while":
            print("<b><-----执行while操作-----></b>")
        while 1 == 1:
            actualValueAccessMethod = actionJson["actualValueAccessMethod"]
            actualValue = actionJson["actualValue"]
            actual = getActualValue(actualValueAccessMethod, actualValue,
                                    paramDataDict, actionJson)
            expectedValueAccessMethod = actionJson["expectedValueAccessMethod"]
            expectedValue = actionJson["expectedValue"]
            expected = getExpectedValue(expectedValueAccessMethod,
                                        expectedValue, paramDataDict,
                                        actionJson)
            condition = actionJson["condition"]
            try:
                print("进行逻辑判断,actual:" + str(actual) + ",condition:" +
                      condition + ",expected:" + str(expected))
            except:
                pass
            result = 0
            if condition == "=":
                if actual == expected:
                    result = 1
            elif condition == ">":
                if actual > expected:
                    result = 1
            elif condition == "<":
                if actual < expected:
                    result = 1
            elif condition == "<=":
                if actual <= expected:
                    result = 1
            elif condition == ">=":
                if actual >= expected:
                    result = 1
            elif condition == "in":
                if actual in expected:
                    result = 1
            if result == 1:
                fragmentTemplateStepsSql = "select * from fragment_template_step where id = %s and parentId = %s order by sequence asc"
                fragmentTemplateStepsParams = [
                    publicMethod.currentTemplateId, actionData["id"]
                ]
                fragmentTemplateSteps = mySqlOperate.search(
                    fragmentTemplateStepsSql, fragmentTemplateStepsParams)
                if not (fragmentTemplateSteps is None):
                    templateStepList = []
                    for fragmentTemplateStep in fragmentTemplateSteps:
                        dictionary = {}
                        dictionary["id"] = fragmentTemplateStep[0]
                        dictionary["stepName"] = fragmentTemplateStep[1]
                        dictionary["actionType"] = fragmentTemplateStep[2]
                        dictionary["actionKey"] = fragmentTemplateStep[3]
                        dictionary["actionJson"] = fragmentTemplateStep[4]
                        dictionary["sequence"] = fragmentTemplateStep[5]
                        dictionary["parentId"] = fragmentTemplateStep[6]
                        templateStepList.append(dictionary)
                print("开始执行" + actionData["id"] + "步骤的子级步骤")
                for step in templateStepList:
                    if step["parentId"] == actionData["id"]:
                        stepType = step["actionType"]
                        if stepType == "selenium":
                            uiAction(step, paramDataDict, "selenium")
                        elif stepType == "appium":
                            uiAction(step, paramDataDict, "appium")
                        elif stepType == "public":
                            public(step, paramDataDict)
                        elif stepType == "assert":
                            publicAssert(step, paramDataDict)
                        elif stepType == "request":
                            request(step, paramDataDict)
                        elif stepType == "custom":
                            custom(actionData, paramDataDict)
                        else:
                            raise Exception("actionType错误,actionType:" +
                                            stepType + "\n")
            elif result == 0:
                if actionKey == "if":
                    print("条件不符,不执行if步骤下的子步骤")
                elif actionKey == "while":
                    print("条件不符,跳出while循环")
                break
            if actionKey == "if":
                break
    elif actionKey == "for":
        print("<b><-----执行for操作-----></b>")
        dataListAccessMethod = actionJson["dataListAccessMethod"]
        dataListValue = actionJson["dataListValue"]
        dataList = None
        if dataListAccessMethod == "getParam":
            dataList = getParam(paramDataDict, dataListValue)
        elif dataListAccessMethod == "getGlobalVariable":
            dataList = publicMethod.getGlobalVariable(dataListValue)
        elif dataListAccessMethod == "getCustom":
            dataList = dataListValue
        try:
            print("循环列表/字符串为:" + str(dataList))
        except:
            pass
        fragmentTemplateStepsSql = "select * from fragment_template_step where id = %s and parentId = %s order by sequence asc"
        fragmentTemplateStepsParams = [
            publicMethod.currentTemplateId, actionData["id"]
        ]
        fragmentTemplateSteps = mySqlOperate.search(
            fragmentTemplateStepsSql, fragmentTemplateStepsParams)
        if not (fragmentTemplateSteps is None):
            templateStepList = []
            for fragmentTemplateStep in fragmentTemplateSteps:
                dictionary = {}
                dictionary["id"] = fragmentTemplateStep[0]
                dictionary["stepName"] = fragmentTemplateStep[1]
                dictionary["actionType"] = fragmentTemplateStep[2]
                dictionary["actionKey"] = fragmentTemplateStep[3]
                dictionary["actionJson"] = fragmentTemplateStep[4]
                dictionary["sequence"] = fragmentTemplateStep[5]
                dictionary["parentId"] = fragmentTemplateStep[6]
                templateStepList.append(dictionary)
        for data in dataList:
            if "dataStorageMethod" in actionJson:
                if "dataStorageValue" in actionJson:
                    dataStorageMethod = actionJson["dataStorageMethod"]
                    dataStorageValue = actionJson["dataStorageValue"]
                    if dataStorageMethod == "setGlobalVariable":
                        print("将data设置为全局变量:" + dataStorageValue)
                        publicMethod.setGlobalVariable(dataStorageValue, data)
                else:
                    raise Exception("resultStorageValue不存在\n")
            else:
                raise Exception("resultStorageMethod不存在\n")
            print("开始执行" + actionData["id"] + "步骤的子级步骤")
            for step in templateStepList:
                if step["parentId"] == actionData["id"]:
                    stepType = step["actionType"]
                    if stepType == "selenium":
                        uiAction(step, paramDataDict, "selenium")
                    elif stepType == "appium":
                        uiAction(step, paramDataDict, "appium")
                    elif stepType == "public":
                        public(step, paramDataDict)
                    elif stepType == "assert":
                        publicAssert(step, paramDataDict)
                    elif stepType == "request":
                        request(step, paramDataDict)
                    else:
                        raise Exception("actionType错误,actionType:" + stepType +
                                        "\n")
    elif actionKey == "arithmetic":
        print("<b><-----执行arithmetic操作-----></b>")
        num_1_AccessMethod = actionJson["num_1_AccessMethod"]
        num_1_Value = actionJson["num_1_Value"]
        num1 = None
        if num_1_AccessMethod == "getParam":
            num1 = getParam(paramDataDict, num_1_Value)
        elif num_1_AccessMethod == "getGlobalVariable":
            num1 = publicMethod.getGlobalVariable(num_1_Value)
        elif num_1_AccessMethod == "getCustom":
            num1 = publicMethod.convertType(num_1_Value, "float")
        condition = actionJson["condition"]
        num_2_AccessMethod = actionJson["num_2_AccessMethod"]
        num_2_Value = actionJson["num_2_Value"]
        num2 = None
        if num_2_AccessMethod == "getParam":
            num2 = getParam(paramDataDict, num_2_Value)
        elif num_2_AccessMethod == "getGlobalVariable":
            num2 = publicMethod.getGlobalVariable(num_2_Value)
        elif num_2_AccessMethod == "getCustom":
            num2 = publicMethod.convertType(num_2_Value, "float")
        result = None
        num1 = publicMethod.convertType(num1, "float")
        print("算数1:" + str(num1))
        num2 = publicMethod.convertType(num2, "float")
        print("算数2:" + str(num2))
        if condition == "+":
            print("执行加法运算")
            result = num1 + num2
        elif condition == "-":
            print("执行减法运算")
            result = num1 - num2
        elif condition == "*":
            print("执行乘法运算")
            result = num1 * num2
        elif condition == "/":
            print("执行除法运算")
            result = num1 / num2
        print("运算结果:" + str(result))
        if "resultStorageMethod" in actionJson:
            if "resultStorageValue" in actionJson:
                resultStorageMethod = actionJson["resultStorageMethod"]
                resultStorageValue = actionJson["resultStorageValue"]
                if resultStorageMethod == "setGlobalVariable":
                    print("将运算结果设置为全局变量:" + resultStorageValue)
                    publicMethod.setGlobalVariable(resultStorageValue, result)
            else:
                raise Exception("resultStorageValue不存在\n")
        else:
            raise Exception("resultStorageMethod不存在\n")
    elif actionKey == "list_append":
        print("<b><-----执行list_append操作-----></b>")
        listAccessMethod = actionJson["listAccessMethod"]
        listName = actionJson["listName"]
        list_1 = []
        print("list获取方式:" + listAccessMethod)
        print("list名称:" + listName)
        if listAccessMethod == "getParam":
            list_1 = getParam(paramDataDict, listName)
        elif listAccessMethod == "getGlobalVariable":
            list_1 = publicMethod.getGlobalVariable(listName)
        appendValueAccessMethod = actionJson["appendValueAccessMethod"]
        appendValue = actionJson["appendValue"]
        print("追加值获取方式:" + appendValueAccessMethod)
        value = None
        if appendValueAccessMethod == "getParam":
            value = getParam(paramDataDict, appendValue)
        elif appendValueAccessMethod == "getGlobalVariable":
            value = publicMethod.getGlobalVariable(appendValue)
        elif appendValueAccessMethod == "getCustom":
            appendValueType = actionJson["appendValueType"]
            print("追加值类型:" + appendValueType)
            value = publicMethod.convertType(appendValue, appendValueType)
        try:
            print("追加值:" + str(value))
        except:
            pass
        list_1.append(value)
        if listAccessMethod == "getParam":
            setParam(paramDataDict, listName, list_1)
        elif listAccessMethod == "getGlobalVariable":
            publicMethod.setGlobalVariable(listName, list_1)
    elif actionKey == "dict_update":
        print("<b><-----执行dict_update操作-----></b>")
        dictAccessMethod = actionJson["dictAccessMethod"]
        dictName = actionJson["dictName"]
        print("dict获取方式:" + dictAccessMethod)
        print("dict名称:" + dictName)
        dict_1 = None
        if dictAccessMethod == "getParam":
            dict_1 = getParam(paramDataDict, dictName)
        elif dictAccessMethod == "getGlobalVariable":
            dict_1 = publicMethod.getGlobalVariable(dictName)
        dictKey = actionJson["dictKey"]
        valueAccessMethod = actionJson["valueAccessMethod"]
        dictValue = actionJson["dictValue"]
        print("追加值获取方式:" + valueAccessMethod)
        value = None
        if valueAccessMethod == "getParam":
            value = getParam(paramDataDict, dictValue)
        elif valueAccessMethod == "getGlobalVariable":
            value = publicMethod.getGlobalVariable(dictValue)
        elif valueAccessMethod == "getCustom":
            dictValueType = actionJson["dictValueType"]
            print("追加值类型:" + dictValueType)
            value = publicMethod.convertType(dictValue, dictValueType)
        try:
            print("追加Key:" + str(dictKey) + ",追加Value:" + str(value))
        except:
            pass
        dict_1[dictKey] = value
        if dictAccessMethod == "getParam":
            setParam(paramDataDict, dictName, dict_1)
        elif dictAccessMethod == "getGlobalVariable":
            publicMethod.setGlobalVariable(dictName, dict_1)
    elif actionKey == "getListValue":
        print("<b><-----执行getListValue操作-----></b>")
        listAccessMethod = actionJson["listAccessMethod"]
        listName = actionJson["listName"]
        list_1 = []
        print("list获取方式:" + listAccessMethod)
        print("list名称:" + listName)
        if listAccessMethod == "getParam":
            list_1 = getParam(paramDataDict, listName)
        elif listAccessMethod == "getGlobalVariable":
            list_1 = publicMethod.getGlobalVariable(listName)
        sequence = actionJson["sequence"]
        print("取第" + str(sequence) + "个的值")
        result = list_1[int(sequence)]
        try:
            print("result:" + str(result))
        except:
            pass
        if "resultStorageMethod" in actionJson:
            if "resultStorageValue" in actionJson:
                resultStorageMethod = actionJson["resultStorageMethod"]
                resultStorageValue = actionJson["resultStorageValue"]
                if resultStorageMethod == "setGlobalVariable":
                    print("将结果设置为全局变量:" + resultStorageValue)
                    publicMethod.setGlobalVariable(resultStorageValue, result)
            else:
                raise Exception("resultStorageValue不存在\n")
        else:
            raise Exception("resultStorageMethod不存在\n")
    elif actionKey == "getDictValue":
        print("<b><-----执行getDictValue操作-----></b>")
        dictAccessMethod = actionJson["dictAccessMethod"]
        dictName = actionJson["dictName"]
        print("dict获取方式:" + dictAccessMethod)
        print("dict名称:" + dictName)
        dict_1 = None
        if dictAccessMethod == "getParam":
            dict_1 = getParam(paramDataDict, dictName)
        elif dictAccessMethod == "getGlobalVariable":
            dict_1 = publicMethod.getGlobalVariable(dictName)
        dictKey = actionJson["key"]
        print("取关键字为'" + str(dictKey) + "'的值")
        result = dict_1[dictKey]
        try:
            print("result:" + str(result))
        except:
            pass
        if "resultStorageMethod" in actionJson:
            if "resultStorageValue" in actionJson:
                resultStorageMethod = actionJson["resultStorageMethod"]
                resultStorageValue = actionJson["resultStorageValue"]
                if resultStorageMethod == "setGlobalVariable":
                    print("将结果设置为全局变量:" + resultStorageValue)
                    publicMethod.setGlobalVariable(resultStorageValue, result)
            else:
                raise Exception("resultStorageValue不存在\n")
        else:
            raise Exception("resultStorageMethod不存在\n")