Esempio n. 1
0
def searchApp():
    driver = webdriver.Remote('http://localhost:4723/wd/hub', getDesiredcaps())
    try:
        excelObj = ParseExcel()
        excelObj.loadWorkBook(dataFilePath)
        searchSheet = excelObj.getSheetByName("搜索")
        isExecute = excelObj.getColumn(searchSheet, search_isExecute)
        searchKeyWordCols = excelObj.getColumn(searchSheet,
                                               search_searchKeyWord)

        for idx, i in enumerate(isExecute[1:]):
            searchKeyWord = searchKeyWordCols[idx + 1].value
            logger.info("----------搜索APP“{}”开始执行".format(searchKeyWord))
            if i.value == 'y':
                searchRow = excelObj.getRow(searchSheet, idx + 2)
                assertKeyWord = searchRow[search_assertKeyWord - 1].value
                try:
                    SearchAction.search(driver, searchKeyWord, assertKeyWord)
                except Exception as e:
                    excelObj.writeCellCurrentTime(searchSheet,
                                                  rowNo=idx + 2,
                                                  colsNo=search_runTime,
                                                  style="red")
                    excelObj.writeCell(searchSheet,
                                       "Faild",
                                       rowNo=idx + 2,
                                       colsNo=search_testResult,
                                       style="red")
                    logger.error("搜索APP“{}”失败\n异常信息:{}".format(
                        searchKeyWord, traceback.format_exc()))
                else:
                    excelObj.writeCellCurrentTime(searchSheet,
                                                  rowNo=idx + 2,
                                                  colsNo=search_runTime,
                                                  style="green")
                    excelObj.writeCell(searchSheet,
                                       "Pass",
                                       rowNo=idx + 2,
                                       colsNo=search_testResult,
                                       style="green")
                    logger.info("搜索APP“{}”成功".format(searchKeyWord))
            else:
                excelObj.writeCell(
                    searchSheet,
                    "",
                    rowNo=idx + 2,
                    colsNo=search_runTime,
                )
                excelObj.writeCell(searchSheet,
                                   "",
                                   rowNo=idx + 2,
                                   colsNo=search_testResult)
                logger.info("搜索APP“{}”的用例被忽略执行".format(searchKeyWord))
    except Exception as e:
        logger.error("数据驱动框架主程序发生异常\n异常信息:{}" % (traceback.format_exc()))
    finally:
        driver.quit()
Esempio n. 2
0
def appRankAndSearchApp():
    try:
        excelObj = ParseExcel()
        excelObj.loadWorkBook(dataFilePath)
        caseSheet = excelObj.getSheetByName("测试用例")
        caseNum = excelObj.getRowsNumber(caseSheet)
        isExecuteCaseCols = excelObj.getColumn(caseSheet, testCase_isExecute)
        # 记录需要执行的用例个数
        requiredCaseNum = 0
        # 记录执行成功的用例个数
        successfulCaseNum = 0

        for idx, i in enumerate(isExecuteCaseCols[1:]):
            caseName = excelObj.getCellOfValue(caseSheet,
                                               rowNo=idx + 2,
                                               colsNo=testCase_testCaseName)
            logger.info("----------" + caseName)
            # 测试用例sheet中第一行为标题,无须执行
            if i.value == "y":
                requiredCaseNum += 1
                caseRow = excelObj.getRow(caseSheet, idx + 2)
                frameworkName = caseRow[testCase_frameworkName - 1].value
                stepSheetName = caseRow[testCase_testStepSheetName - 1].value

                if frameworkName == "关键字":
                    logger.info("**********调用关键字驱动**********")
                    # 根据用例的sheet名获取用例的sheet对象
                    stepSheet = excelObj.getSheetByName(stepSheetName)
                    # 记录用例步骤的个数
                    stepNum = excelObj.getRowsNumber(stepSheet)
                    # 记录用例步骤执行成功的个数
                    successfulStepNum = 0
                    for j in range(2, stepNum + 1):
                        # 用例步骤中的第一行为标题,无须执行
                        stepRow = excelObj.getRow(stepSheet, j)
                        # 获取用例步骤中描述
                        StepDescription = stepRow[caseStep_caseStepDescription
                                                  - 1].value
                        # 获取函数名
                        keyWord = stepRow[caseStep_keyWord - 1].value
                        print("keyWord = ", keyWord)
                        # 获取操作元素的定位方式
                        locationType = stepRow[caseStep_locationType - 1].value
                        # 获取操作元素定位方式的表达式
                        locatorExpression = stepRow[caseStep_locatorExpression
                                                    - 1].value
                        # 获取函数中的参数
                        operatorValue = stepRow[caseStep_operatorValue -
                                                1].value
                        # 数值类数据从excel取出后为long型数据,转换为字符串,方便拼接
                        if isinstance(operatorValue, int):
                            operatorValue = str(operatorValue)
                        if keyWord and locationType and locatorExpression and operatorValue:
                            step = keyWord + "('%s','%s','%s')" % (
                                locationType, locatorExpression, operatorValue)
                        elif keyWord and locationType and locatorExpression:
                            step = keyWord + "('%s','%s')" % (
                                locationType, locatorExpression)
                        elif keyWord and operatorValue:
                            step = keyWord + "('%s')" % operatorValue
                        elif keyWord:
                            step = keyWord + "()"
                        try:
                            # 用例步骤执行执行成功,写入执行结果和日志
                            print(step)
                            eval(step)
                            successfulStepNum += 1
                            writeResult(excelObj, stepSheet, "Pass", j,
                                        "caseStep")
                            logger.info("执行步骤“%s”成功" % StepDescription)
                        except Exception as err:
                            #用例步骤执行执行成功
                            errPicPath = capture_screen()
                            errMsg = traceback.format_exc()
                            writeResult(excelObj,
                                        stepSheet,
                                        "Faild",
                                        j,
                                        "caseStep",
                                        errMsg=errMsg,
                                        errPicPath=errPicPath)
                            logger.error(
                                "执行步骤“%s”失败\n异常信息:%s" %
                                (StepDescription, str(traceback.format_exc())))
                    if successfulStepNum == stepNum - 1:
                        successfulCaseNum += 1
                        writeResult(excelObj, caseSheet, "Pass", idx + 2,
                                    "testCase")
                        logger.info("用例“%s”执行成功" % caseName)
                    else:
                        writeResult(excelObj, caseSheet, "Faild", idx + 2,
                                    "testCase")
                        logger.info("用例“%s”执行失败" % caseName)
                elif frameworkName == "数据":
                    logger.info("**********调用数据驱动**********")
                    dataSourceSheetName = caseRow[testCase_dataSourceSheetName
                                                  - 1].value
                    # print dataSourceSheetName,stepSheetName
                    stepSheet = excelObj.getSheetByName(stepSheetName)
                    dataSheet = excelObj.getSheetByName(dataSourceSheetName)
                    result = searchApp(excelObj, stepSheet, dataSheet)
                    if result:
                        successfulCaseNum += 1
                        writeResult(excelObj, caseSheet, "Pass", idx + 2,
                                    "testCase")
                        logger.info("用例“%s”执行成功" % caseName)
                    else:
                        writeResult(excelObj, caseSheet, "Faild", idx + 2,
                                    "testCase")
                        logger.info("用例“%s”执行失败" % caseName)
            else:
                # 清空不需要执行用例的执行时间和执行结果,
                writeResult(excelObj, caseSheet, "", idx + 2, "testCase")
                logger.info("用例“%s”被设置为忽略执行" % caseName)
        logger.info("共%s条用例,%s条需要被执行,本次执行通过%s条" %
                    (caseNum - 1, requiredCaseNum, successfulCaseNum))
    except Exception as err:
        logger.error("驱动框架主程序发生异常\n异常信息:%s" % str(traceback.format_exc()))
Esempio n. 3
0
def createContacts():
    try:
        excelObj = ParseExcel()
        excelObj.loadWorkBook(dataFilePath)
        userSheet = excelObj.getSheetByName("126账号")
        isExecute = excelObj.getColumn(userSheet, account_isExecute)
        userNameCols = excelObj.getColumn(userSheet, account_userName)
        for idx, i in enumerate(isExecute[1:]):
            if i.value == 'y':
                userRow = excelObj.getRow(userSheet, idx + 2)
                userName = userRow[account_userName - 1].value
                passWord = str(userRow[account_passWord - 1].value)
                contactSheetName = userRow[account_dataSourceSheetName -
                                           1].value

                driver = webdriver.Chrome()
                driver.maximize_window()
                driver.get("https://mail.126.com/")
                LoginAction.login(driver, userName, passWord)

                #断言前停顿3秒,防止页面跳转太快,断言失败
                time.sleep(3)
                try:
                    assert "收 信" in driver.page_source
                except Exception as e:
                    logger.error("用户“{}”登录后,断言页面关键字“退出”失败\n异常信息:{}".format(
                        userName, traceback.format_exc()))
                else:
                    logger.info("用户“{}”登录后,断言页面关键字“退出”成功".format(userName))

                contactSheet = excelObj.getSheetByName(contactSheetName)
                isExecuteAddContact = excelObj.getColumn(
                    contactSheet, contacts_isExecute)

                contactNum = 0
                successAddContactNum = 0
                coutactPersonNameCols = excelObj.getColumn(
                    contactSheet, contacts_contactPersonName)
                for id, j in enumerate(isExecuteAddContact[1:]):
                    if j.value == 'y':
                        contactNum += 1
                        contactRow = excelObj.getRow(contactSheet, id + 2)
                        coutactPersonName = coutactPersonNameCols[id + 1].value
                        coutactPersonEmail = contactRow[
                            contacts_contactPersonEmail - 1].value
                        isStar = contactRow[contacts_isStar - 1].value
                        countactPersonPhone = str(
                            contactRow[contacts_contactPersonPhone - 1].value)
                        countactPersonComment = contactRow[
                            contacts_contactPersonComment - 1].value
                        assertKeyWords = contactRow[contacts_assertKeyWords -
                                                    1].value

                        logger.info("**********开始添加联系人“%s”**********" %
                                    coutactPersonName)
                        AddContactAction.addContact(driver, coutactPersonName,
                                                    coutactPersonEmail, isStar,
                                                    countactPersonPhone,
                                                    countactPersonComment)
                        time.sleep(3)
                        try:
                            assert assertKeyWords in driver.page_source
                        except Exception as e:
                            excelObj.writeCell(contactSheet,
                                               "faild",
                                               rowNo=id + 2,
                                               colsNo=contacts_testResult,
                                               style="red")
                            excelObj.writeCellCurrentTime(
                                contactSheet,
                                rowNo=id + 2,
                                colsNo=contacts_runTime,
                                style="red")
                            logger.error("添加联系人“{}”失败\n异常信息:{}".format(
                                coutactPersonName, traceback.format_exc()))
                        else:
                            successAddContactNum += 1
                            excelObj.writeCell(contactSheet,
                                               "pass",
                                               rowNo=id + 2,
                                               colsNo=contacts_testResult,
                                               style="green")
                            excelObj.writeCellCurrentTime(
                                contactSheet,
                                rowNo=id + 2,
                                colsNo=contacts_runTime,
                                style="green")
                            logger.info(
                                "添加联系人“{}”成功".format(coutactPersonName))
                    else:
                        excelObj.writeCell(contactSheet,
                                           "",
                                           rowNo=id + 2,
                                           colsNo=contacts_runTime)
                        excelObj.writeCell(contactSheet,
                                           "",
                                           rowNo=id + 2,
                                           colsNo=contacts_testResult)
                        logger.info("联系人“{}”被忽略执行".format(
                            coutactPersonNameCols[idx + 1].value))
                driver.quit()
                if contactNum == successAddContactNum:
                    excelObj.writeCell(userSheet,
                                       "Pass",
                                       rowNo=idx + 2,
                                       colsNo=account_testResult,
                                       style="green")
                else:
                    excelObj.writeCell(userSheet,
                                       "Faild",
                                       rowNo=idx + 2,
                                       colsNo=account_testResult,
                                       style="red")
            else:
                excelObj.writeCell(userSheet,
                                   "",
                                   rowNo=idx + 2,
                                   colsNo=account_testResult)
                logger.info("账号“{}”被忽略执行".format(userNameCols[idx + 1].value))
    except Exception as e:
        logger.error("数据驱动框架主程序发生异常\n异常信息:{}".format(traceback.format_exc()))
Esempio n. 4
0
def appstore():
    try:
        excelObj = ParseExcel()
        excelObj.loadWorkBook(dataFilePath)
        caseSheet = excelObj.getSheetByName("测试用例")
        caseNameCols = excelObj.getColumn(caseSheet, testCase_testCaseName)
        isExecuteCaseCols = excelObj.getColumn(caseSheet, testCase_isExecute)
        # 记录需要执行的用例个数
        requiredCaseNum = 0
        # 记录执行成功的用例个数
        successfulCaseNum = 0

        for idx, i in enumerate(isExecuteCaseCols[1:]):
            # 测试用例sheet中第一行为标题,无须执行
            if i.value == "y":
                requiredCaseNum += 1
                caseRow = excelObj.getRow(caseSheet, idx + 2)
                caseName = caseNameCols[idx + 1].value
                stepSheetName = caseRow[testCase_testStepSheetName - 1].value
                # 根据用例的sheet名获取用例的sheet对象
                stepSheet = excelObj.getSheetByName(stepSheetName)
                # 记录用例步骤的个数
                stepNum = excelObj.getRowsNumber(stepSheet)
                # 记录用例步骤执行成功的个数
                successfulStepNum = 0

                logger.info("----------" + caseName)
                for j in range(2, stepNum + 1):
                    # 用例步骤中的第一行为标题,无须执行
                    stepRow = excelObj.getRow(stepSheet, j)
                    # 获取用例步骤中描述
                    StepDescription = stepRow[caseStep_caseStepDescription -
                                              1].value
                    # 获取函数名
                    keyWord = stepRow[caseStep_keyWord - 1].value
                    # 获取操作元素的定位方式
                    locationType = stepRow[caseStep_locationType - 1].value
                    # 获取操作元素定位方式的表达式
                    locatorExpression = stepRow[caseStep_locatorExpression -
                                                1].value
                    # 获取函数中的参数
                    operatorValue = stepRow[caseStep_operatorValue - 1].value
                    # 数值类数据从excel取出后为int型数据,转换为字符串,方便拼接
                    if isinstance(operatorValue, int):
                        operatorValue = str(operatorValue)
                    if keyWord and locationType and locatorExpression and operatorValue:
                        step = keyWord + "('{}','{}','{}')".format(
                            locationType, locatorExpression, operatorValue)
                    elif keyWord and locationType and locatorExpression:
                        step = keyWord + "('{}','{}')".format(
                            locationType, locatorExpression)
                    elif keyWord and operatorValue:
                        step = keyWord + "('{}')".format(operatorValue)
                    else:
                        step = keyWord + "()"
                    try:
                        # 用例步骤执行执行成功,写入执行结果和日志
                        eval(step)
                        successfulStepNum += 1
                        writeResult(excelObj, stepSheet, "Pass", j, "caseStep")
                        logger.info("执行步骤“{}”成功".format(StepDescription))
                    except Exception as e:
                        # 用例步骤执行执行成功
                        errPicPath = capture_screen()
                        errMsg = traceback.format_exc()
                        writeResult(excelObj,
                                    stepSheet,
                                    "Faild",
                                    j,
                                    "caseStep",
                                    errMsg=errMsg,
                                    errPicPath=errPicPath)
                        logger.error("执行步骤“{}”失败\n异常信息:{}".format(
                            StepDescription, traceback.format_exc()))
                if successfulStepNum == stepNum - 1:
                    successfulCaseNum += 1
                    writeResult(excelObj, caseSheet, "Pass", idx + 2,
                                "testCase")
                else:
                    writeResult(excelObj, caseSheet, "Faild", idx + 2,
                                "testCase")
            else:
                writeResult(excelObj, caseSheet, "", idx + 2, "testCase")
                logger.info("用例“{}”被设置为忽略执行".format(caseNameCols[idx +
                                                                 1].value))
        logger.error("共{}条用例,{}条需要被执行,本次执行通过{}条".format(
            len(isExecuteCaseCols) - 1, requiredCaseNum, successfulCaseNum))
    except Exception as e:
        logger.info("关键字驱动框架主程序发生异常\n异常信息:{}".format(traceback.format_exc()))
Esempio n. 5
0
def sendRequest():
    try:
        excelObj = ParseExcel()
        excelObj.loadWorkBook(dataFilePath)
        apiSheet = excelObj.getSheetByName(ApiSheetName)

        apiNameCols = excelObj.getColumn(apiSheet, API_name)
        apiIsExecuteCols = excelObj.getColumn(apiSheet, API_isExecute)
        for idx, i in enumerate(apiIsExecuteCols[1:]):
            apiName = apiNameCols[idx + 1].value
            if i.value == "y":
                case_total = 0
                case_passNum = 0
                case_ignoreNum = 0
                case_failNum = 0
                case_errorNum = 0
                apiRow = excelObj.getRow(apiSheet, idx + 2)
                requestUrl = apiRow[API_requestUrl - 1].value
                requestMothod = apiRow[API_requestMothod - 1].value
                paramsType = apiRow[API_paramsType - 1].value
                testCaseSheetName = apiRow[API_testCaseSheetName - 1].value

                logger.info("----------" + apiName)
                testCaseSheet = excelObj.getSheetByName(testCaseSheetName)
                testCaseIsExecuteCols = excelObj.getColumn(testCaseSheet, TestCase_isExecute)
                for id, j in enumerate(testCaseIsExecuteCols[1:]):
                    case_total += 1
                    try:
                        if j.value == "y":
                            testCaseRow = excelObj.getRow(testCaseSheet, id + 2)
                            requestHeaders = testCaseRow[TestCase_requestHeaders - 1].value
                            headersEncrypt = testCaseRow[TestCase_headersEncrypt - 1].value
                            requestData = testCaseRow[TestCase_requestData - 1].value
                            dependData = testCaseRow[TestCase_dependData - 1].value
                            bodyEncrypt = testCaseRow[TestCase_bodyEncrypt - 1].value
                            responseData = testCaseRow[TestCase_responseData - 1].value
                            responseDecrypt = testCaseRow[TestCase_responseDecrypt - 1].value
                            dependDataStore = testCaseRow[TestCase_dependDataStore - 1].value
                            checkPoint = testCaseRow[TestCase_checkPoint - 1].value

                            # 当请求参数中不是数值时,处理成字典
                            if not isinstance(requestData, int):
                                requestData = eval(requestData)
                            # 处理请求参数中的依赖数据
                            if requestData and dependData:
                                requestData = getDependData(requestData, eval(dependData))
                            # 处理请求参数中的加密数据
                            if requestData and bodyEncrypt:
                                requestData = bodyEncryptOper(requestData, eval(bodyEncrypt))

                            httpC = HttpClient()
                            response = httpC.request(requestMothod, requestUrl, paramsType, requestData=requestData)
                            # 接口响应结果写入用例工作表
                            excelObj.writeCell(testCaseSheet, response.text, rowNo=id + 2, colsNo=TestCase_responseData)
                            # 当接口响应成功时,验证检查点是否满足
                            if response.status_code == 200 and checkPoint:
                                # 获取检查点错误信息
                                errData = checkResult(response, eval(checkPoint))
                                if errData:
                                    # 接口执行失败,执行的错误结果写入到测试用例工作表
                                    case_failNum += 1
                                    writeResult(excelObj, testCaseSheet, "Faild", id + 2, "testcase",
                                                testCaseErrMsg=str(errData))
                                    logger.info("接口“{}”的第“{}”条用例执行失败".format(apiName, id + 1))

                                else:
                                    # 接口执行成功,执行的正确结果写入到测试用例工作表
                                    case_passNum += 1
                                    writeResult(excelObj, testCaseSheet, "Pass", id + 2, "testcase")
                                    logger.info(u"接口“{}”的第“{}”条用例执行成功".format(apiName, id + 1))
                                    # 当接口执行成功时,保存依赖数据到全局变量RequestData、ResponseData,供后面的接口使用
                                    if dependDataStore:
                                        dataStore(eval(dependDataStore), testCaseSheetName, id + 2,
                                                  requestSource=requestData, responseSource=response.json())
                            elif response.status_code != 200:
                                # 接口响应失败,执行失败的接口写入到测试用例工作表
                                case_errorNum += 1
                                writeResult(excelObj, testCaseSheet, "Error", id + 2, "testcase",
                                            testCaseErrMsg="接口响应异常!")
                                logger.info(
                                    "接口“{}”的第“{}”条用例执行过程出错\n错误信息:{}".format(apiName, id + 1, traceback.format_exc()))
                        else:
                            # 清空忽略执行的测试用例工作表数据
                            case_ignoreNum += 1
                            writeResult(excelObj, testCaseSheet, "", id + 2, "testcase")
                            logger.info("接口“{}”的第“{}”条用例被设置为忽略执行".format(apiName, id + 1))
                    except Exception as e:
                        # 接口请求中,发生异常情况,将错误结果写入测试用例工作表
                        case_errorNum += 1
                        writeResult(excelObj, testCaseSheet, "Error", id + 2, "testcase",
                                    testCaseErrMsg=traceback.format_exc())
                        logger.info(
                            "接口请求发生异常情况,接口“{}”的第“{}”条用例执行过程出错\n错误信息:{}".format(apiName, id + 1, traceback.format_exc()))

                if case_errorNum or case_failNum:
                    # 存在异常错误或者失败测试用例时,表示接口api执行错误,将相关的统计数据写入到接口api的工作表中
                    writeResult(excelObj, apiSheet, "Faild", idx + 2, "api",
                                apiResult=[case_total, case_passNum, case_ignoreNum, case_failNum, case_errorNum])
                else:
                    writeResult(excelObj, apiSheet, "Pass", idx + 2, "api",
                                apiResult=[case_total, case_passNum, case_ignoreNum, case_failNum, case_errorNum])
            else:
                # 清空忽略执行api工作表的数据
                writeResult(excelObj, apiSheet, "", idx + 2, "api")
                logger.info("接口“{}”被设置为忽略执行".format(apiName))

    except Exception as e:
        logger.info("接口框架主程序发生异常\n异常信息:{}".format(traceback.format_exc()))
Esempio n. 6
0
def main():
    # 实现从获取接口测试数据到发送情况,再到获取返回结果,并处理结果
    # 创建ParseExcel类的实例对象
    parseE = ParseExcel()
    # 调用封装好的加载excel到内存的方法将需要解析的excel加载到内存
    parseE.loadWorkBook(excelPath)
    # 获取“API”表的表对象
    sheetObj = parseE.getSheetByName(apiExcelName)
    # 获取API表中是否需要执行api自动化case的列对象
    activeList = parseE.getColumn(sheetObj, API_active)
    # 遍历是否需要执行标记列,只执行标记为yes的api自动化测试
    for idx, cell in enumerate(activeList[1:], 2):
        if cell.value == "y":
            # 需要执行的api
            rowObj = parseE.getRow(sheetObj, idx)
            apiName = rowObj[API_apiName - 1].value
            requestUrl = rowObj[API_requestUrl - 1].value
            requestMethod = rowObj[API_requestMothod - 1].value
            paramsType = rowObj[API_paramsType - 1].value
            apiTestCaseSheetName = rowObj[API_apiTestCaseFileName - 1].value

            # 下一步就是获取api的测试case,然后准备执行用例
            caseSheetObj = parseE.getSheetByName(apiTestCaseSheetName)
            caseActiveObj = parseE.getColumn(caseSheetObj, CASE_active)
            print(caseActiveObj)
            for c_idx, col in enumerate(caseActiveObj[1:], 2):
                if col.value == "y":
                    # 说明当前case是需要被执行的
                    caseRowObj = parseE.getRow(caseSheetObj, c_idx)
                    requestData = caseRowObj[CASE_requestData - 1].value
                    relyData = caseRowObj[CASE_relyData - 1].value
                    dataStore = caseRowObj[CASE_dataStore - 1].value
                    checkPoint = caseRowObj[CASE_checkPoint - 1].value
                    # 下一步,在发送接口请求之前,需要处理数据依赖
                    if relyData:
                        # 需要进行数据依赖处理
                        requestData = GetRelyValue.get(requestData, relyData)
                        print(requestData)
                    else:
                        print("第%s个API的第%s条不需要做数据依赖处理!" % ((idx - 1),
                                                           (c_idx - 1)))
                    # 没有数据依赖处理时,需要判断下是不是json数据类型
                    if requestData[0] == "{" and requestData[-1] == "}":
                        # 说明请求参数是一个json串格式数据,若是,需要转成字典类型
                        requestData = eval(requestData)

                    # 处理登录时的密码加密
                    if apiName == "login":
                        requestData["password"] = md5_encrypt(
                            requestData["password"])

                    # 处理完接口请求参数的依赖数据后,接下来就是发送请求并获取响应结果
                    response = HttpClient.request(requestUrl, requestMethod,
                                                  paramsType, requestData)
                    print(response.status_code)
                    print(response.json())
                    # 下一步,根据接口响应结果,做数据依赖存储以及结果检测
                    if response.status_code == 200:
                        # 获取接口的响应body(获取的是字典类型)
                        responseBody = response.json()
                        # 接下来做数据依赖存储
                        if dataStore:
                            RelyDataStore.do(apiName, c_idx - 1, requestData,
                                             responseBody, eval(dataStore))

                    # 接下来进行接口响应结果的检测
                    if checkPoint:
                        errorKey = CheckResult.check(response.json(),
                                                     eval(checkPoint))

                        # 将测试结果写回excel
                        write_result(parseE, caseSheetObj, response.json(),
                                     errorKey, c_idx)

                else:
                    print("第%s个API的第%s条case被忽略执行!" % ((idx - 1), (c_idx - 1)))
        else:
            print("第%s个API被忽略执行!" % (idx - 1))