Exemplo n.º 1
0
def myPayWay(surroundings, cookies):
    # 查询买家各种钱包明细
    myPayWay_url = f"http://m.{surroundings}.hobay.com.cn/ribbon-api/userWallet/myPayWay"
    myPayWay_headers = {"login": ""}
    myPayWay_res = HttpRequest().http_request(myPayWay_url, "get", headers=myPayWay_headers,
                                              cookies=cookies)
    return myPayWay_res.json()
Exemplo n.º 2
0
    def test_login(self, case_info):
        with allure.step("对当前的case进行参数化替换"):
            # 对当前的case进行参数化替换
            case_info = self.params_replace_current_case_info(case_info)

        with allure.step("发起请求"):
            res = HttpRequest().http_request(case_info)

        # 断言
        with allure.step("响应结果断言"):
            self.assert_expected(case_info, res)

        member_id = jmespath.search("data.id", res.json())
        if member_id != None:
            with allure.step("保存token到环境变量里"):
                token = jmespath.search("data.token_info.token", res.json())
                if case_info["case_id"] == 1:
                    # 2、保存到环境变量中
                    setattr(RelyData, "token1", token)

                elif case_info["case_id"] == 2:
                    # 2、保存到环境变量中
                    setattr(RelyData, "token2", token)

                elif case_info["case_id"] == 3:
                    # 2、保存到环境变量中
                    setattr(RelyData, "token3", token)
Exemplo n.º 3
0
    def test_api(self, item):
        my_logger.info('开始执行用例{0}:{1}'.format(item['case_id'], item['title']))
        loan_member_id = getattr(GetData, 'loan_member_id')

        # 请求之前完成load_id的替换
        if item['data'].find('${loan_id}') != -1:
            if getattr(GetData, 'loan_id') is None:
                query_sql = 'select max(id) from loan where member_id={0}'.format(loan_member_id)
                loan_id = DoMysql().do_mysql(query_sql)[0][0]
                item['data'] = item['data'].replace('${loan_id}', str(loan_id))
                setattr(GetData, 'loan_id', loan_id)
                my_logger.info('loan_id为:{0}'.format(loan_id))
            else:
                my_logger.info(getattr(GetData, 'loan_id'))
                item['data'] = item['data'].replace('${loan_id}', str(getattr(GetData, 'loan_id')))
        my_logger.info('获取到的请求数据是{0}'.format(item['data']))

        if item['check_sql'] != None:  # 当你的check_sql的语句不为空时 就可以进行数据库校验
            my_logger.info(item['check_sql'])
            my_logger.info('此条用例需要做数据库校验:{0}'.format(item['title']))
            query_sql = eval(item['check_sql'])['sql']  # 拿到Excel中 字典里面的sql语句
            Before_Amount = DoMysql.do_mysql(query_sql, 1)[0]
            my_logger.info('用例:{0}请求之前的余额是{1}'.format(item['title'], Before_Amount))
            my_logger.info('---------------------开始http 接口请求---------------------')
            res = HttpRequest.http_request(item['url'], eval(item['data']), item['http_method'],
                                           getattr(GetData, 'Cookie'))
            my_logger.info('---------------------完成http 接口请求---------------------')
            After_Amount = DoMysql().do_mysql(query_sql, 1)[0]
            my_logger.info('用例:{0}请求之后的余额是{1}'.format(item['title'], After_Amount))
            if float(abs(Before_Amount-After_Amount+1000)) == float(eval(item['data'])['amount']):
                my_logger.info('数据库余额校验通过')
                check_sql_result = '数据库检查通过'
            else:
                my_logger.info('数据库余额校验未通过')
                check_sql_result = '数据库检查未通过'
            # 写回结果
            DoExcel.write_back(project_path.test_case_path, item['sheet_name'], item['case_id'] + 1, 10, check_sql_result)
        else:
            my_logger.info('此条用例不需要做数据库校验:{0}'.format(item['title']))
            my_logger.info('---------------------开始http 接口请求---------------------')
            res = HttpRequest.http_request(item['url'], eval(item['data']), item['http_method'],
                                           getattr(GetData, 'Cookie'))
            my_logger.info('---------------------完成http 接口请求---------------------')

        if res.cookies:  # 利用反射存储cookie值
            setattr(GetData, 'Cookie', res.cookies)

        try:
            self.assertEqual(str(item['expected']), res.json()['code'])
            test_result = 'PASS'  # 成功的
        except AssertionError as e:
            test_result = 'Failed'  # 失败的
            my_logger.error("执行用例出错:{0}".format(e))
            raise e
        finally:  # 不管try是错还是对,finally里面的代码是一定会执行的
            DoExcel.write_back(project_path.test_case_path, item['sheet_name'], item['case_id'] + 1, 8, str(res.json()))
            DoExcel.write_back(project_path.test_case_path, item['sheet_name'], item['case_id'] + 1, 9, test_result)
            my_logger.info("获取到的结果是:{0}".format(res.json()))
            my_logger.info('----------------------------------------------------------------------------------\n')
Exemplo n.º 4
0
    def test_api(self, item):
        # print("item is {}".format(item))
        # print("url是:{0},data是:{1},header是:{2},http_method是:{3}".format(item['url'],eval(item['data']),item["header"],item["params"],item['http_method']))
        # print("url value:{0}".format(type(item['url'])))
        # print("data value:{0}:".format(type(item['data'])))
        # print("header value:{0}:".format(type(eval(item['header']))))
        # print("params is :{}".format(item['params']))
        # print("params value:{0}:".format(type(eval(item['params']))))
        # print("http_method value:{0}:".format(type(item['http_method'])))
        if item["model"] == "login_notice":
            global accessToken
            res_login = HttpRequest.http_request(item['url'], item['data'],
                                                 eval(item["header"]),
                                                 eval(item["params"]),
                                                 item['http_method'],
                                                 getattr(GetData, "Cookie"))
            accessToken = res_login.json()["accessToken"]
            if res_login.cookies:
                setattr(GetData, 'Cookie', res_login.cookies)
            try:
                self.assertEqual(item['excepted_code'],
                                 res_login.json()["code"])
                TestResult = 'PASS'  # 成功的
            except AssertionError as e:
                TestResult = 'Failed'  # 失败的
                my_logger.info("执行用例出错:{}".format(e))
                raise e
            finally:
                DoExcel.write_back(test_case_path,
                                   'notice', item['case_id'] + 1,
                                   str(res_login.json()), TestResult)
                print('获取到的结果是:{}'.format(res_login.json()))

        elif item["model"] == "notice":

            sid = accessToken
            res_notice = HttpRequest.http_request(
                item['url'], item['data'],
                eval(item["header"].replace(
                    "5EFCC60C2373B9C1FC526F64CAF24610EFA2BFC1C056AF9C92AFC48CE14EE8D8B13942D7F20742E379D7A6F89DB87D72",
                    sid)), eval(item["params"]), item['http_method'],
                getattr(GetData, "Cookie"))
            if res_notice.cookies:
                setattr(GetData, 'Cookie', res_notice.cookies)
            try:
                self.assertEqual(item['excepted_code'],
                                 eval(res_notice.json()["retHead"]))
                TestResult = 'PASS'  # 成功的
            except AssertionError as e:
                TestResult = 'Failed'  # 失败的
                my_logger.info("执行用例出错:{}".format(e))
                raise e
            finally:
                DoExcel.write_back(test_case_path,
                                   'notice', item['case_id'] + 1,
                                   str(res_notice.json()), TestResult)
                print('获取到的结果是:{}'.format(res_notice.json()))
Exemplo n.º 5
0
def get_qrCode(surroundings, orderId, cookies):
    # 获取买家订单序列号
    OrderDetail_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/batchOrders/queryOrderDetail'
    OrderDetail_data = {"orderId": orderId, "buyOrSell": 1}
    OrderDetail_headers = {'login': ''}
    OrderDetail_res = HttpRequest().http_request(OrderDetail_url,
                                                 'post',
                                                 data=OrderDetail_data,
                                                 headers=OrderDetail_headers,
                                                 cookies=cookies)
    qrCode = OrderDetail_res.json()['data']['qrCode']
    return qrCode
Exemplo n.º 6
0
def Pay(surroundings, orderNum, payPassword, payType, cookies):

    # 查询买家各种钱包明细
    myPayWay_url = f"http://m.{surroundings}.hobay.com.cn/ribbon-api/userWallet/myPayWay"
    myPayWay_headers = {"login": ""}
    myPayWay_res = HttpRequest().http_request(myPayWay_url,
                                              "get",
                                              headers=myPayWay_headers,
                                              cookies=cookies)

    # 支付订单
    pay_headers = {"login": "", "payPassword": payPassword}
    if payType in [3, 4]:
        pay_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/batchOrders/payAllCBP'
        pay_data = {
            "tradeNUm": orderNum,
            "payType": payType,
            "shareWalletUserId": "",
            "shareWalletId": ""
        }
        pay_res = HttpRequest().http_request(pay_url,
                                             "post",
                                             json=pay_data,
                                             cookies=cookies,
                                             headers=pay_headers)
    elif payType in [5, 6]:
        if payType == 5:
            shareWalletUserId = myPayWay_res.json(
            )['results']['myPayWay']['myKinship'][0]['shareWalletUserId']
            shareWalletId = myPayWay_res.json(
            )['results']['myPayWay']['myKinship'][0]['shareWalletId']
        elif payType == 6:
            shareWalletUserId = myPayWay_res.json(
            )['results']['myPayWay']['myWages']['shareWalletUserId']
            shareWalletId = myPayWay_res.json(
            )['results']['myPayWay']['myWages']['shareWalletId']
        pay_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/batchOrders/payAllCBP'
        pay_data = {
            "tradeNUm": orderNum,
            "payType": payType,
            "shareWalletUserId": shareWalletUserId,
            "shareWalletId": shareWalletId
        }
        pay_res = HttpRequest().http_request(pay_url,
                                             "post",
                                             json=pay_data,
                                             cookies=cookies,
                                             headers=pay_headers)
    elif payType == 7:
        pay_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/pay/payCash'
        pay_data = {"tradeNum": orderNum}
        pay_res = HttpRequest().http_request(pay_url,
                                             "post",
                                             data=pay_data,
                                             cookies=cookies,
                                             headers=pay_headers)
    return pay_res
Exemplo n.º 7
0
    def test_register(self, caseInfo):
        with allure.step("读数据库获取没有注册过的手机号码"):
            # 读数据库获取没有注册过的手机号码
            if caseInfo["case_id"] == 1:
                mobile_phone = self.get_random_phone()
                setattr(RelyData, "mobile_phone1", mobile_phone)
            elif caseInfo["case_id"] == 2:
                mobile_phone = self.get_random_phone()
                setattr(RelyData, "mobile_phone2", mobile_phone)
            elif caseInfo["case_id"] == 3:
                mobile_phone = self.get_random_phone()
                setattr(RelyData, "mobile_phone3", mobile_phone)

        with allure.step("对当前的case进行参数化替换"):
            # 对当前的case进行参数化替换
            case_info = self.params_replace_current_case_info(caseInfo)

        with allure.step("发起请求"):
            res=HttpRequest().http_request(case_info)

        with allure.step("响应结果断言"):
            # 1、响应结果断言
            self.assert_expected(case_info, res)
        with allure.step("数据库断言"):
            # 2、数据库断言
            self.assert_SQL(case_info)

        memberId = jmespath.search("data.id", res.json())
        if memberId != None:
            with allure.step("保存手机号、用户id、密码到环境变量里"):
                mobile_phone = jmespath.search("data.mobile_phone", res.json())
                # 3、注册成功的密码--从用例数据里面
                pwd = case_info['input_params']['pwd']
                if case_info["case_id"] == 1:
                    setattr(RelyData, "mobile_phone1", mobile_phone)
                    setattr(RelyData, "member_id1", memberId)
                    setattr(RelyData, "pwd1", pwd)

                elif case_info["case_id"] == 2:
                    # 2、保存到环境变量中
                    setattr(RelyData, "mobile_phone2", mobile_phone)
                    setattr(RelyData, "member_id2", memberId)
                    setattr(RelyData, "pwd2", pwd)

                elif case_info["case_id"] == 3:
                    # 2、保存到环境变量中
                    setattr(RelyData, "mobile_phone3", mobile_phone)
                    setattr(RelyData, "member_id3", memberId)
                    setattr(RelyData, "pwd3", pwd)
Exemplo n.º 8
0
 def test_api(self, item):
     print(test_data)
     # print("url是:{0},data是:{1},header是:{2},http_method是:{3}".format(item['url'],eval(item['data']),item["header"],item['http_method']))
     print("url value:{0}".format(type(item['url'])))
     print("data value:{0}:".format(type(item['data'])))
     print("header value:{0}:".format(type(eval(item['header']))))
     # print("params value:{0}:".format(type(eval(item['params']))))
     print("http_method value:{0}:".format(type(item['http_method'])))
     res = HttpRequest.http_request(item['url'], item['data'],
                                    eval(item["header"]),
                                    item['http_method'],
                                    getattr(GetData, "Cookie"))
     if res.cookies:
         setattr(GetData, 'Cookie', res.cookies)
     try:
         self.assertEqual(item['excepted_code'], res.json()["code"])
         TestResult = 'PASS'  #成功的
     except AssertionError as e:
         TestResult = 'Failed'  #失败的
         my_logger.info("执行用例出错:{}".format(e))
         raise e
     finally:
         DoExcel.write_back(test_case_path, 'login', item['case_id'] + 1,
                            str(res.json()), TestResult)
         print('获取到的结果是:{}'.format(res.json()))
Exemplo n.º 9
0
    def test_api(self, item):
        #请求之前完成loan_id的替换
        if item['data'].find('${loan_id}') != -1:
            if getattr(GetData, 'load_id') == None:
                query_sql = 'select Id from loan where Member ID={0}'.format(
                    getattr(GetData, 'loan_member_id'))
                loan_id = DoMysql().do_mysql(query_sql)[0][0]
                item['data'] = item['data'].replace('${loan_id}', str(loan_id))
                setattr(GetData, 'load_id', loan_id)  #利用反射存储结果
            else:
                item['data'] = item['data'].replace(
                    '${loan_id}', str(getattr(GetData, 'loan_id')))

        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetData, 'Cookie'))
        if res.cookies:
            setattr(GetData, 'Cookie', res.cookies)
        try:
            self.assertEqual(str(item['expected']), res.json()['code'])
            TestResult = 'PASS'
        except AssertionError as e:
            TestResult = 'Failed'
            my_logger.info('执行用列出错:{0}'.format(e))
            raise e
        finally:
            DoExcel.write_back(test_case_path,
                               item['sheet_name'], item['case_id'] + 1,
                               str(res.json()), TestResult)
            my_logger.error("获取到的结果是:{0}".format(res.json()))
Exemplo n.º 10
0
    def test_api(self, login_data):
        #登录
        res = HttpRequest().http_request(login_data["url"],
                                         eval(login_data["data"]),
                                         login_data["method"],
                                         getattr(GetCookies, "COOKIES"),
                                         getattr(GetCookies, "headers"))
        my_logger.info("响应的html代码是:{}".format(res.text))
        test_result = None
        if res.cookies:
            setattr(GetCookies, "COOKIES", res.cookies)
            print(getattr(GetCookies, "COOKIES"))

        try:
            assert 200 == res.status_code
            # assert login_data["expected"] ==
            test_result = 'PASS'
            my_logger.info("执行用例通过")
        except AssertionError as e:
            test_result = "Failed"
            my_logger.error("执行用例出错:{0}".format(e))
            raise e
        finally:
            ReadExel(login_path).write_data(
                int(login_data["case_id"]) + 1, login_data["sheet_name"],
                res.status_code, test_result)
            my_logger.info("获取到的结果是:{}".format(res.status_code))
Exemplo n.º 11
0
    def test_add_loan(self, case_info):
        with allure.step("对当前的case进行参数化替换"):
            # 对当前的case进行参数化替换
            case_info = self.params_replace_current_case_info(case_info)

        with allure.step("发起请求"):
            res = HttpRequest().http_request(case_info)

        # 断言
        with allure.step("响应结果断言"):
            self.assert_expected(case_info, res)

        memberId = jmespath.search("data.member_id", res.json())
        if memberId != None:
            loan_id = jmespath.search("data.id", res.json())
            # 2、保存到环境变量中
            setattr(RelyData, "loan_id", loan_id)
Exemplo n.º 12
0
def run(test_data):

    for item in test_data:
        print('正在测试的用例是{0}'.format(item['title']))
        res = HttpRequest().http_request(item['url'],eval(item['data']),item['method'],cookie=getattr(GetCookie,'COOKIE'))
        if res.cookies:
            setattr(GetCookie,'COOKIE',res.cookies)
        print('请求的结果是{0}'.format(res.json()))
        try:
            assert str(item['expected']) == res.json()['code']
            TestResult = 'pass'
        except Exception as e:
            TestResult = 'failed'
            print('接口返回的数据为{}'.format(e))
            raise e
        finally:
            ReadExcel(data_file,'recharge').write_back_data(item['case']+1,TestResult,str(res.json()))
Exemplo n.º 13
0
def suer(surroundings, orderId, payType, sellerUserId, payPassword, cookies):
    # 确认收货
    suer_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/orders/recieve'
    suer_data = {'orderId': orderId, 'payType': payType, 'sellerUserId': sellerUserId}
    suer_headers = {'login': '', 'payPassword': payPassword}
    suer_res = HttpRequest().http_request(suer_url, 'post', data=suer_data, headers=suer_headers,
                                          cookies=cookies)
    return suer_res
Exemplo n.º 14
0
def login(surroundings, phone):
    login_url = f'http://m.{surroundings}.hobay.com.cn/api/app/user/login'  # 登录
    login_data = {
        "loginValidateType": "CODE",
        "phone": phone,
        "validateValue": "666666"
    }
    login_res = HttpRequest().http_request(login_url, "post", json=login_data)
    return login_res
Exemplo n.º 15
0
def SaveOrder(surroundings,productId, productStockId, cookies, addressId=""):
    SaveOrder_headers = {"login": ""}
    # 获取商品类型
    type_url = 'http://m.test.hobay.com.cn/ribbon-api/batchCart/immediatelyBuySettlement'
    type_data = {"productStockIdAndNums": [{"num": 1, "productStockId": productStockId, "productId": productId}]}
    type_res = HttpRequest().http_request(type_url, "post", json=type_data,
                                          cookies=cookies,
                                          headers=SaveOrder_headers)
    goods_type = type_res.json()['data']['type']

    # 提交订单
    SaveOrder_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/batchOrders/immediatelySaveOrder'
    SaveOrder_data = {"message": "", "couponUserId": "", "addressId": addressId,
                      "productStockIdAndNums": [{"num": 1, "productStockId": productStockId}], "type": goods_type}
    SaveOrder_res = HttpRequest().http_request(SaveOrder_url, "post", json=SaveOrder_data,
                                               cookies=cookies,
                                               headers=SaveOrder_headers)
    return SaveOrder_res
Exemplo n.º 16
0
def get_productStockId(surroundings, product_name, cookies):
    # 卖家-商品管理
    product_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/product/queryPageProductsByType?currentPage=1&type=2&pageSize=10'
    product_headers = {"login": ""}
    product_res = HttpRequest().http_request(product_url,
                                             "get",
                                             headers=product_headers,
                                             cookies=cookies)
    # print("商品管理出售中的商品是:", product_res.json())

    # 获取商品规格id
    product_data = product_res.json()['data']['result']
    for i in range(0, len(product_data)):
        if product_data[i]['title'] == product_name:
            productId = product_data[i]['id']
            productStockId = product_data[i]['productStockWithStockImages'][0][
                'id']
            return productId, productStockId
Exemplo n.º 17
0
 def test_api(self, item):
     print("测试开始:{0}".format(item['title']))  #测试标题
     res = HttpRequest().http_request(item['url'], eval(item['data']),
                                      item['http_method'],
                                      getattr(GetData, 'Cookie'))  #获取请求
     if res.cookies:  #利用反射获取cookies
         setattr(GetData, 'Cookie', res.cookies)
     try:  #进行断言
         self.assertEqual(str(item['expect']), res.json()['code'])
         TestResult = 'PASS'
     except Exception as e:
         TestResult = 'Failed'
         print("执行用例出错:{}".format(e))
         raise e
     finally:  #将测试结果返回文档中
         DoExcel().write_back(case_path,
                              item['sheet_name'], item['case_id'] + 1,
                              str(res.json()), TestResult)
Exemplo n.º 18
0
def boss_setting_requests(surroundings, phone, operational_setting):
    '''

    Parameters
    ----------
    surroundings:test/dev1/mtest
    phone:手机号
    operational_setting:[{'个人焕商': 1000650}, {'省代理商': 1000646, '市代理商': 1000647, '区代理商': 1000648}]

    Returns:None
    -------

    '''

    if operational_setting == "未设置":
        salesRatio = "0"
        freeSalesRatio = "0"
        tcoRatio = "0"
    else:
        salesRatio = str(operational_setting['销售'])
        freeSalesRatio = str(operational_setting['业务焕商'])
        tcoRatio = str(operational_setting['TCO'])

    # 登录
    login_url = f'http://boss.{surroundings}.hobay.com.cn/bosszuul/boss/user/login'  # 登录
    login_data = {"phone": phone, "password": "******"}
    login_res = HttpRequest().http_request(login_url, "post", data=login_data)
    # print("BOSS登录结果是:", login_res.json())

    # 设置运营比例
    agentId = login_res.json()['id']
    secondPayagentRatio_url = f'http://boss.{surroundings}.hobay.com.cn/bosszuul/order/secondPayagentRatio/addOrUpdateSecondPayagentRatio'
    secondPayagentRatio_data = {
        "agentId": agentId,
        "freeSalesRatio": freeSalesRatio,
        "salesRatio": salesRatio,
        "tcoRatio": tcoRatio
    }
    secondPayagentRatio_res = HttpRequest().http_request(
        secondPayagentRatio_url,
        "post",
        data=secondPayagentRatio_data,
        cookies=login_res.cookies)
Exemplo n.º 19
0
def delete_partner(surroundings, seller_phone, userId):
    # 卖家登录
    login_url = f'http://m.{surroundings}.hobay.com.cn/api/app/user/login'  # 登录
    seller_login_data = {
        "loginValidateType": "CODE",
        "phone": seller_phone,
        "validateValue": "666666"
    }
    seller_login_res = HttpRequest().http_request(login_url,
                                                  "post",
                                                  json=seller_login_data)
    # print("登录结果是:", seller_login_res.json())

    url = f'http://m.{surroundings}.hobay.com.cn/api/user/partnership/delPartnership?userId={userId}'
    headers = {"login": ""}
    res = HttpRequest.http_request(url,
                                   "get",
                                   headers=headers,
                                   cookies=seller_login_res.cookies)
Exemplo n.º 20
0
    def test_invest(self, case_info):
        with allure.step("对当前的case进行参数化替换"):
            case_info = self.params_replace_current_case_info(case_info)

        with allure.step("发起请求"):
            res = HttpRequest().http_request(case_info)

        # 断言
        with allure.step("响应结果断言"):
            self.assert_expected(case_info, res)
Exemplo n.º 21
0
def AcceptOrder(surroundings, orderId, cookies):
    order_data = {'orderStatus': 0,
                  'buyOrSell': 2,
                  'type': 0,
                  'currentPage': 1,
                  'pageSize': 10}
    AcceptOrder_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/orders/acceptOrder?orderId={orderId}'
    AcceptOrder_headers = {"login": ""}
    AcceptOrder_res = HttpRequest().http_request(AcceptOrder_url, "get", json=order_data,
                                                 cookies=cookies, headers=AcceptOrder_headers)
    return AcceptOrder_res
Exemplo n.º 22
0
def recharge(surroundings, payAmount, cookies):
    # 提交充值订单
    recharge_url = f'http://m.{surroundings}.hobay.com.cn/ribbon-api/charge/saveServiceFeeOrders'
    recharge_data = {"payAmount": payAmount}
    recharge_headers = {"login": ""}
    recharge_res = HttpRequest.http_request(recharge_url,
                                            "post",
                                            data=recharge_data,
                                            headers=recharge_headers,
                                            cookies=cookies)
    return recharge_res
Exemplo n.º 23
0
    def test_api(self, item):

        global TestResult
        res = HttpRequest().http_request(item['url'], eval(item['data']), item['http_method'],
                                         getattr(GetData, "Cookie"))

        actual_code = res.json()['code']  # 实际结果

        if res.cookies:  # 如果有cookies,那就res.cookies赋值给Cookie属性
            setattr(GetData, 'Cookie', res.cookies)  # 反射
        try:
            self.assertEqual(str(item['expected_code']), actual_code)
            print("用例{0}正确!".format(item['case_id']), item['title'])
            TestResult = 'PASS'
        except AssertionError as e:
            print("用例错误!错误原因是{0}:".format(e))
            TestResult = 'Failed'
            raise e  # 异常处理完后记得抛出
        finally:  # 不管怎样都得写入Excel
            DoExcel().write_back(test_case_path, item['sheet_name'], item['case_id'] + 1, str(res.json()), TestResult)
            print("响应体:", "\n", res.json())
Exemplo n.º 24
0
 def test_api(self,item):
     res=HttpRequest.http_request(item['method'],item['url'],eval(item['data']),getattr(GetCookie,'Cookie'))
     if res.cookies: #利用反射存储cookie值
         setattr(GetCookie,'Cookie',res.cookies)
     try:
         self.assertEqual(str(item['expected']),res.json()['resultcode'])
         TestResult='PASS'
     except AssertionError as e:
         TestResult='Failed'
         MyLog.error("执行用例出错:{0}".format(e))
         raise e
     finally:
         DoExcel.write_back(test_case_path,item['sheet_name'],item['case_id']+1,res.text,TestResult)
         MyLog.info("获取到的结果是:{0}".format(res.text))
Exemplo n.º 25
0
def get_address_id(surroundings, cookies):

    address_url = f'http://m.{surroundings}.hobay.com.cn/api/user/graphql/flat'
    address_data = {
        "query":
        "query currentUser{\n        currentUser{\n          receiveAddress(page:1,pageSize:100){\n            numPerPage\n            pageNum\n            totalCount\n            totalPage\n            recordList{\n              id\n              name\n              provinceName\n              cityName\n              areaName\n              detailAddress\n              phone\n              default\n            }\n          }\n        }\n      }"
    }
    address_headers = {"login": ""}
    address_res = HttpRequest().http_request(address_url,
                                             'post',
                                             json=address_data,
                                             cookies=cookies,
                                             headers=address_headers)
    return address_res
Exemplo n.º 26
0
 def setUpClass(cls) -> None:
     """
     登录获取(后台)token
     :return:
     """
     # 获取主机地址
     HOST = ReadConfig.get_config(case_config_path, 'ADDRESS', 'host')
     url = f'{HOST}/api/auth/oauth/user/token'
     param = {"username": "******", "password": "******"}
     header = {
         "Content-Type": "application/json;charset=UTF-8",
         "Authorization": "Basic QmFzZVBsYXRmb3JtOjEyMzQ1Ng=="
     }
     res = HttpRequest().http_request(url,
                                      param,
                                      'post',
                                      'params',
                                      headers=header)
     setattr(GetToken, "Token", res.json()['value'])  # 反射设置token值
     get_header = {
         "Content-Type": "application/json;charset=UTF-8",
         "Authorization": "Bearer " + getattr(GetToken, "Token")
     }
     setattr(GetToken, "header", get_header)  # 反射设置header值
Exemplo n.º 27
0
 def test_api(self, item):
     res = HttpRequest.http_request(item['url'], eval(item['data']),
                                    item['http_method'],
                                    getattr(GetCookie, "Cookie"))
     try:
         self.assertEqual(item['excepted'], res.json()["status"])
         TestResult = 'PASS'  #成功的
     except AssertionError as e:
         TestResult = 'Failed'  #失败的
         print("执行用例出错:{}".format(e))
         raise e
     finally:
         DoExcel.write_back(test_case_path, 'login', item['case_id'] + 1,
                            str(res.json()), TestResult)
         print('获取到的结果是:{}'.format(res.json()))
Exemplo n.º 28
0
def signed(surroundings, orderId, payType, sellerUserId, payPassword, cookies):
    # 签约
    buyer_signed_url = f"http://m.{surroundings}.hobay.com.cn/ribbon-api/orders/signed"
    buyer_signed_data = {
        "orderId": orderId,
        "payType": payType,
        "sellerUserId": sellerUserId
    }
    buyer_signed_headers = {"login": "", "payPassword": payPassword}
    buyer_signed_res = HttpRequest().http_request(buyer_signed_url,
                                                  "post",
                                                  data=buyer_signed_data,
                                                  cookies=cookies,
                                                  headers=buyer_signed_headers)
    return buyer_signed_res
Exemplo n.º 29
0
 def test_api(self, case_data):
     res = HttpRequest.http_request(case_data['url'],
                                    eval(case_data['data']),
                                    case_data['method'])
     try:
         self.assertEqual(str(case_data['expected']), res.json()['code'])
         self.TestResult = 'PASS'
     except Exception as e:
         self.TestResult = 'Failed'
         print('执行用例出错:{0}'.format(e))
         raise e
     finally:
         ReadExcel(data_file,
                   'login').write_back_data(case_data['case'] + 1,
                                            self.TestResult,
                                            str(res.json()))
Exemplo n.º 30
0
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetCookie, 'Cookie'))

        try:
            self.assertEqual(item['expected'], res.json()['stat'])
            TestResult = 'PASS'
        except Exception as e:
            TestResult = 'Failed'
            print("执行用例出错:{0}".format(e))
            raise e
        finally:
            DoExcel.write_back(test_case_path, 'login', item['case_id'] + 1,
                               str(res.json()), TestResult)
            print("获取到结果是:{0}".format(res.json()))