Beispiel #1
0
class TestLogin(object):


    login = PswLogin()
    yaml_data = GetYamlData()
    log = TestLog().logger()

    # @allure.issue('http://www.baidu.com')
    @allure.severity('critical')
    @allure.title('登录接口用例')
    @allure.story('登录')
    @pytest.mark.test_login
    @pytest.mark.parametrize('in_data, resp_data', yaml_data.get_yaml_data('../data/login_data.yaml'))
    # 对应传入上面的两个参数到test_login()中,in_data参数用于登录,resp_data参数用于后面取值断言
    def test_login(self, in_data, resp_data):
        """
        接口描述:测试用户登录配送app功能
        """
        with allure.step(json.dumps(in_data)):  # in_data是不可哈希元素,不能直接传入
            res = self.login.login(in_data, get_token=False)
        try:
            # 注意:断言取值的层级关系
            with allure.step(res['code']):
                assert res['code'] == resp_data['code']
        except Exception as err:
            self.log.error('---登录接口用例不通过,请检查问题---')
            # 抛出异常
            raise err
def order_id_init():
    token = PswLogin().login(USER)
    # 获取订单编号
    order_id = OrderHomePage(token).home_page({
        'indexState': '0',
        'sort': '0',
        'pageIndex': '1',
        'pageSize': '10'
    })[0]
    return order_id
def offline_pay_init2(offline_pay_init):
    # 获取每个订单对应的应收金额列表返回
    amount_list = []
    token = PswLogin().login(USER)
    for order in offline_pay_init[0]:
        return_amount = OrderManage(token).order_return_amount({
            "id": order,
            "token": token
        })
        amount_receive = return_amount["data"]["obj"]["amountReceivable"]
        amount_list.append(amount_receive)
    return amount_list
def order_confirm_init():
    token = PswLogin().login(USER)
    order_list = OrderManage(token).order_list({
        'orderState': '6',
        'pageSize': '50',
        'pageIndex': '1'
    })
    on_way_num = order_list["data"]["obj"]["onWayNum"]  # 在途中订单数量
    order_ids = order_list["data"]["list"]
    # 获取订单id列表
    order_list = []
    for order_id in order_ids:
        if order_id[
                "orderState"] == "2":  # 0:待配送; 1:待指派; 2:在途中; 3:待回单; 4:代收款; 5:待审核; 6:已完成
            order_list.append(order_id["orderId"])
    return [on_way_num, order_list]
def receipt_order_init():
    token = PswLogin().login(USER)
    # 获取订单列表
    order_list = OrderManage(token).order_list({
        "orderState": "6",
        "pageSize": "50",
        "pageIndex": "1"
    })
    pending_receipt_num = order_list["data"]["obj"][
        "pendingReceiptNum"]  # 待回单数量
    order_ids = order_list["data"]["list"]
    # 获取订单id列表
    order_list = []
    for order_id in order_ids:
        if order_id[
                "orderState"] == "3":  # 0:待配送; 1:待指派; 2:在途中; 3:待回单; 4:代收款; 5:待审核; 6:已完成
            order_list.append(order_id["orderId"])
    # 获取订单商品品牌id
    bucket_brand_id_list = []
    for bucket_brand_id in order_ids:
        if bucket_brand_id["orderState"] == "3":
            bucket_brand_id2 = bucket_brand_id["productList"]
            for product in bucket_brand_id2:
                bucket_brand_id_list.append(product["bucketBrandId"])
    # 获取订单空桶子id列表
    bucket_sub_id_list = []
    for bucket_sub_id in order_ids:
        if bucket_sub_id["orderState"] == "3":
            bucket_sub_id2 = bucket_sub_id["productList"]
            for product in bucket_sub_id2:
                bucket_sub_id_list.append(product["bucketSubId"])
    # 获取订单商品空桶主id
    brand_main_id_list = []
    for brand_main_id in order_ids:
        if brand_main_id["orderState"] == "3":
            brand_main_id2 = brand_main_id["productList"]
            for product in brand_main_id2:
                brand_main_id_list.append(product["bucketMainId"])

    return [
        bucket_brand_id_list, bucket_sub_id_list, brand_main_id_list,
        order_list
    ]
def offline_pay_init():
    token = PswLogin().login(USER)
    # 获取订单列表
    order_list = OrderManage(token).order_list({
        "orderState": "6",
        "pageSize": "50",
        "pageIndex": "1"
    })
    order_ids = order_list["data"]["list"]
    # 获取订单id列表
    order_list = []
    for order_id in order_ids:
        if order_id[
                "orderState"] == "4":  # 0:待配送; 1:待指派; 2:在途中; 3:待回单; 4:待收款; 5:待审核; 6:已完成
            order_list.append(order_id["orderId"])
    # 获取订单支付状态列表
    pay_state = []
    for state in order_ids:
        if state["orderState"] == "4":
            pay_state.append(state["payState"])  # 0未支付;1已支付
    return [order_list, pay_state]
def order_list_init():
    token = PswLogin().login(USER)
    order_list = OrderManage(token).order_list({
        'orderState': '6',
        'pageSize': '50',
        'pageIndex': '1'
    })
    delivery_num = order_list["data"]["obj"]["deliveryNum"]  # 待接单订单数量
    order_ids = order_list["data"]["list"]
    # 获取订单id列表
    order_list = []
    for order_id in order_ids:
        if order_id[
                "orderState"] == "0":  # 0:待配送; 1:待指派; 2:在途中; 3:待回单; 4:代收款; 5:待审核; 6:已完成
            order_list.append(order_id["orderId"])

    # 获取待指派订单状态列表
    order_state = []
    for state in order_ids:
        if state["orderState"] == "0":
            order_state.append(state["orderState"])
    return [delivery_num, order_list, order_state]
Beispiel #8
0
    # 线下支付
    def offline_pay(self, in_data, pay_order_id, payment_amount):
        url = f'{HOST}/api/order/offlinePay'
        in_data['id'] = pay_order_id
        in_data['offlinePaymentAmount'] = payment_amount
        payload = in_data
        res = requests.post(url=url, headers=self.header, data=payload)
        return res.json()


if __name__ == '__main__':
    # 获取token
    token = PswLogin().login({
        'username': '******',
        'password': '******',
        'deviceID': '0',
        'm': '1',
        'identityType': '0'
    })
    manage = OrderManage(token)
    # 获取订单编号
    order_id = OrderHomePage(token).home_page({
        'indexState': '0',
        'sort': '0',
        'pageIndex': '1',
        'pageSize': '10'
    })[0]
    # print(order_id)
    # manage.order_list({'orderState': '4', 'pageSize': '10', 'pageIndex': '1'})
    # manage.complete_delivery({"isDeliveryForm": "0", "orderId": order_id}, order_id)
Beispiel #9
0
 def setup_class(self):
     self.token = PswLogin().login(USER)