Exemple #1
0
    def get(self, url, params=None, headers=None, **kargs):
        logger.info("执行get请求开始。。。。。。。。。。。。")
        try:

            response = requests.get(url=url, params=params, headers=headers)
        except Exception as e:
            logger.error("执行get请求出错,请查看问题!原因: s%", e)
        return response
Exemple #2
0
    def post(self, url, data=None, headers=None, **kargs):
        logger.info("执行post请求开始。。。。。。。。。。。。。")
        try:

            response = requests.post(url=url, data=data, headers=headers)
        except Exception as e:
            logger.error("执行post请求出错,请查看问题!原因: s%", e)
        return response
Exemple #3
0
    def request(self,
                requestMethod,
                requestUrl,
                paramsType,
                requestData=None,
                headers=None):
        logger.info("执行统一请求方法开始。。。。。。。。。。。。。")
        # 判断requestMethod是否是post
        if requestMethod.lower() == "post":
            # paramsType是form表单提交
            if paramsType == "form":
                response = getpost().post(url=requestUrl,
                                          data=requestData,
                                          headers=headers)
                return response
            # json提交
            elif paramsType == 'json':
                requestData = eval(requestData)
                requestData = json.dumps(requestData)
                headers = eval(headers)
                # headers = json.dumps(headers)
                response = getpost().post(url=requestUrl,
                                          data=requestData,
                                          headers=headers)
                return response

        # 判断requestMethod是否是get
        elif requestMethod == "get":
            if paramsType == "url":

                request_url = "%s%s" % (requestUrl, "" if requestData is None
                                        else requestData)
                headers = eval(headers) if headers != '' else headers
                response = getpost().get(url=request_url, headers=headers)

                print(response)
                return response
            elif paramsType == "params":
                response = getpost().get(url=requestUrl,
                                         params=requestData,
                                         headers=headers)
                return response
Exemple #4
0
    def getExcel(self):
        logger.info("遍历用例目录读取用例excel开始。。。。。。。。。。。。。")
        file_name_list = os.walk(test_case_path, topdown=True)
        dict = {}

        for root, dirs, file_name in file_name_list:
            try:
                for name in file_name:
                    print(os.path.join(root, name))
                    logger.info("读取用例excel中sheet开始。。。。。。。。。。。。。")
                    workbook = load_workbook(os.path.join(root, name))
                    sheet = workbook['Sheet1']

                    lists = []
                    rows_sheet = sheet.iter_rows()
                    for item in rows_sheet:
                        if item[0].value == "url":
                            continue
                        list = []
                        for col in item:
                            logger.info("遍历每一列加入到一行测试数据。。。。。。。。。。。。。")
                            list.append(col.value)
                        lists.append(list)
                    dict[name] = lists
            except Exception as e:
                logger.error("历用例目录读取用例excel执行出错,请查看问题!原因: s%", e)
        print(dict)

        return dict
Exemple #5
0
 def get_excel_data(self):
     logger.info("执行转换用例开始。。。。")
     contents = []
     if len(contents) >= 0:
         logger.info("读取excel用例数据。。。。")
         casedata = excelData().getExcel()
         logger.info("循环读取excel中每行数据开始。。。。")
         for case in casedata:
             name = case
             listcase = casedata[name]
             for list in listcase:
                 contents.append(list)
         logger.info("excel用例数据读取完成。。。。")
     print(contents)
     return contents
Exemple #6
0
    def test_commonapi(self, case):
        print(case)
        url = case[0]
        body = case[1]
        header = case[2]
        method = case[3]
        method_type = case[4]
        expect = case[5]
        jsonpaths = case[6]
        dependency = case[7]

        logger.info("用例数据拆包开始。。。。")
        print(url + "-" + str(body) + "-" + str(header) + "-" + method + "-" +
              method_type + "-" + str(expect) + "-" + jsonpaths + "-" +
              dependency)
        common = request_Common()
        logger.info("替换body中的空格换行特殊字符开始。。。。")
        body = body.replace('\r', '').replace('\n', '').replace(
            '\t', '') if body is not None else ""

        logger.info("转换存在可变变量开始。。。。")
        # 假如body中存在变量获取符号,调用convertBody重新对变量进行转化
        body = operatorConvert().convertBody(
            body) if body.find('$') >= 0 else body
        header = operatorConvert().convertBody(header) if (
            header is not None and header.find('$') >= 0) else header
        header = "" if header is None else header
        res = common.request(method, url, method_type, body, header)

        # 判断dependency是否有值需要存储
        if len(res.content) > 0 and dependency.find('/') < 0:
            depend[dependency] = res.content

        # 获取请求返回值
        resjson = json.loads(res.content)

        # 获得预期jsonpath路径下的值
        result = jsonpath.jsonpath(resjson, expr=jsonpaths)

        # 断言预期值和实际返回值对比
        assert expect.strip() == str(result[0])
    def convertBody(self, body):
        logger.info("----找出存在可变变量区间块----")
        # 找出变量区间块
        try:
            listsplitvar = body.split('$')
            num = 0
            for strrequest in listsplitvar:
                logger.info("----分割字符串----")
                # 从$分割字符串,奇数的得到要取代的块
                if num % 2 == 1:
                    # 取代的块赋值给strchuck
                    strchuck = strrequest
                    # 找到全局变量名称
                    logger.info("----找块中全局变量的名称----")
                    stevar = strchuck[:strchuck.find('.')]
                    # 从depend获取变量值
                    logger.info("----获取全局变量json值----")
                    varvalue = depend[stevar]
                    varvalue = str(varvalue, encoding="utf-8")
                    # 得到变量后面的jsonpath
                    logger.info("----获取块中jsonpath----")
                    varjsonpath = strchuck[strchuck.find('.') + 1:]
                    varjsonresult = json.loads(varvalue)

                    # 从全局变量中获取到jsonpath里面的值
                    logger.info("----由jsonpath从全局变量里面取值并替换变量块----")
                    varchuck = jsonpath.jsonpath(varjsonresult,
                                                 expr='$.' + varjsonpath)
                    listsplitvar[num] = str(varchuck[0])

                num = num + 1

            strsplitvar = ''.join(listsplitvar)
        except Exception as e:
            logger.error("替换变量块出错,请查看问题!原因: s%", e)

        return strsplitvar