diff --git a/YiMao/businessFunc/ClientApiLib.py b/YiMao/businessFunc/ClientApiLib.py index 8fbfc4c..0e049f5 100644 --- a/YiMao/businessFunc/ClientApiLib.py +++ b/YiMao/businessFunc/ClientApiLib.py @@ -7,12 +7,34 @@ import requests,json, logging from commons.SignatureYM import SignatureYM2 - class YMClientApi(object): def __init__(self): self.Domain = "https://api.test.yimaogo.com/cart" self.headerss = SignatureYM2(Mac="b8:2d:28:04:c7:5c")._headers() + ''' 1- without sessionid ''' + def get_ads_list(self): + logging.info("========== [获取广告列表] get_ads_list ==========") + ''' method 1 ''' + payload = {} + url = self.Domain + "/v1/ads/list?areaCode&userId&barcode&adsAreaIds=1,2,3,4,5,6" + logging.info(f"---url: {url}---") + logging.info(f"---headers: {self.headerss}---") + response = requests.request("GET", url, headers=self.headerss, data=payload) + logging.info(f"-----------接口返回状态码:{response.status_code}") + logging.info(f"-----------接口返回数据:{response.json()}\n\n") + return response.json() + + def query_ad_detail(self, ADsId: str): + logging.info("========== [查询广告详情] query_ad_detail ==========") + payload = {} + url = self.Domain + "/v1/ads/{adsId}".replace("{adsId}", str(ADsId)) + response = requests.request("GET", url, headers=self.headerss, data=payload) + logging.info(f"-----------接口返回状态码:{response.status_code}") + logging.info(f"-----------接口返回数据:{response.json()}\n\n") + return response.json() + + ''' 2- sessionid must be started first ''' def session_start(self): logging.info("========== [前置] session_start ==========") url = self.Domain+"/v1/session/start" @@ -84,8 +106,28 @@ class YMClientApi(object): logging.info(f"-----------接口返回数据:{response.json()}\n\n") return response.json() - def delete_cart_goods(self, GoodsInfoData): + def delete_cart_goods(self, GoodsInfoData, LoginData, AddGoodsResponse): + ''' 退购 + + :param GoodsInfoData: + :return: + ''' logging.info("========== [删除购物车商品] delete_cart_goods ==========") + GoodsInfoData = '' + LoginData = '' + AddGoodsResponse = '' + + existGoods = [] + for goodsinfo in AddGoodsResponse["data"]["orderItemList"]: + good_dict = {} + good_dict["inputCode"] = goodsinfo["inputCode"] + good_dict["isNormalAddPurchase"] = True + good_dict["qty"] = goodsinfo["qty"] + good_dict["uuid"] = goodsinfo["uuid"] + # good_dict["weight"] = goodsinfo["weight"] + good_dict["weight"] = GoodsInfoData["data"]["weight"] + existGoods.append(good_dict) + payload = json.dumps({ "addGoods": [], "autoSelectCoupon": True, @@ -114,8 +156,8 @@ class YMClientApi(object): "remainAmount": "13.8", "totalDisc": "0.0", "orderItemList": [{ - "uuid": ["2BEDF9C6DD954E1FB3DCD9A9F3C57D29"], # - "qty": 1, # + "uuid": ["2BEDF9C6DD954E1FB3DCD9A9F3C57D29"], # 下传 + "qty": 1, # 下传 "marketPrice": "5", "salePrice": "5.00", "totalSalePrice": "5", @@ -126,15 +168,15 @@ class YMClientApi(object): "barcode": "6925303796426", "inputCode": "6925303796426", "goodsName": "统一茄皇蕃茄牛肉面", - "goodsPromotionTags": null, + "goodsPromotionTags": None, "measureProperty": 0, - "shoppingBagFlag": false, - "activityId": null, - "activityDescription": null, + "shoppingBagFlag": False, + "activityId": None, + "activityDescription": None, "totalPromotionPrice": 0, - "categoryCode": null, - "isOneBarcodeMore": false, - "pkgFlag": false + "categoryCode": None, + "isOneBarcodeMore": False, + "pkgFlag": False }, { "uuid": ["F9BBA7C9AF7944FF91C717E3D18BD682"], @@ -149,19 +191,19 @@ class YMClientApi(object): "barcode": "6924743915848", "inputCode": "6924743915848", "goodsName": "乐事无限翡翠黄瓜味薯片", - "goodsPromotionTags": null, + "goodsPromotionTags": None, "measureProperty": 0, - "shoppingBagFlag": false, - "activityId": null, - "activityDescription": null, + "shoppingBagFlag": False, + "activityId": None, + "activityDescription": None, "totalPromotionPrice": 0, - "categoryCode": null, - "isOneBarcodeMore": false, - "pkgFlag": false + "categoryCode": None, + "isOneBarcodeMore": False, + "pkgFlag": False }], - "bagInfoList": null, - "couponMap": null, - "activityGoodsList": null + "bagInfoList": None, + "couponMap": None, + "activityGoodsList": None } } @@ -177,11 +219,11 @@ class YMClientApi(object): "weight": 0 }], "existGoods": [{ - "inputCode": "6925303796426", + "inputCode": "6925303796426", # 取自 add_2_result["data"]["orderItemList"][0]["inputCode"] "isNormalAddPurchase": True, - "qty": 1, - "uuid": ["2BEDF9C6DD954E1FB3DCD9A9F3C57D29"], - "weight": 165 # GoodsInfoData["data"]["weight"] + "qty": 1, # 取自 add_2_result["data"]["orderItemList"][0]["qty"] + "uuid": ["2BEDF9C6DD954E1FB3DCD9A9F3C57D29"], # 取自 add_2_result["data"]["orderItemList"][1]["uuid"] + "weight": 165 # 取自 GoodsInfoData["data"]["weight"] }, { "inputCode": "6924743915848", "isNormalAddPurchase": True, @@ -189,9 +231,10 @@ class YMClientApi(object): "uuid": ["F9BBA7C9AF7944FF91C717E3D18BD682"], "weight": 160 # GoodsInfoData["data"]["weight"] }], - "orderNo": "1858386778027515904" + "orderNo": "1858386778027515904" # 取自 LoginData["data"][0]["orderNo"] } + def get_coupon_list(self): logging.info("========== [获取优惠券列表] get_coupon_list ==========") payload = json.dumps({ @@ -254,27 +297,6 @@ class YMClientApi(object): logging.info(f"-----------接口返回数据:{response.json()}\n\n") return response.json() - ''' 2- without sessionid ''' - def get_ads_list(self): - logging.info("========== [获取广告列表] get_ads_list ==========") - ''' method 1 ''' - payload = {} - url = self.Domain+"/v1/ads/list?areaCode&userId&barcode&adsAreaIds=1,2,3,4,5,6" - logging.info(f"---url: {url}---") - logging.info(f"---headers: {self.headerss}---") - response = requests.request("GET", url, headers=self.headerss, data=payload) - logging.info(f"-----------接口返回状态码:{response.status_code}") - logging.info(f"-----------接口返回数据:{response.json()}\n\n") - return response.json() - - def query_ad_detail(self, ADsId:str): - logging.info("========== [查询广告详情] query_ad_detail ==========") - payload = {} - url = self.Domain+"/v1/ads/{adsId}".replace("{adsId}", str(ADsId)) - response = requests.request("GET", url, headers=self.headerss, data=payload) - logging.info(f"-----------接口返回状态码:{response.status_code}") - logging.info(f"-----------接口返回数据:{response.json()}\n\n") - return response.json() if __name__ == '__main__': diff --git a/YiMao/businessFunc/ServiceApiLib.py b/YiMao/businessFunc/ServiceApiLib.py index c1c07ec..45817e9 100644 --- a/YiMao/businessFunc/ServiceApiLib.py +++ b/YiMao/businessFunc/ServiceApiLib.py @@ -61,6 +61,7 @@ class YMServiceApi(object): writeResult = Txt().append_write_txt("ScenarioTest_GoodsWhiteListID.txt", str(goodsWhiteListID)) if not writeResult: logging.error(f"---写入 新建促销商品白名单ID 失败!") + return response.json() def delete_whitelist_goods(self): logging.info("========== [删除促销白名单商品] ==========") @@ -96,6 +97,7 @@ class YMServiceApi(object): writeResult = Txt().append_write_txt("ScenarioTest_WeightWhiteListID.txt", str(weightWhiteListID)) if not writeResult: logging.error(f"---写入 新建重量放通白名单ID 失败!") + return response.json() def delete_weight_whitelist_goods(self): logging.info("========== [删除重量放通白名单商品] ==========") diff --git a/YiMao/data/WuShangSceneData.py b/YiMao/data/WuShangSceneData.py index c075897..48a17d5 100644 --- a/YiMao/data/WuShangSceneData.py +++ b/YiMao/data/WuShangSceneData.py @@ -13,10 +13,28 @@ adsAreaId-6: 支付后广告 adsAreaId-7: 小票广告 ''' +''' 1-商超、门店信息 ''' MarketAndStoreInfo = {"MarketId": 50, "StoreId": 29} - MarketAndStoreDetail = {"putMarketId": 50, "putStoreId": ["29"]} +''' 2-购物袋 ''' +GoodsBagInputcode_mid = '6971648922990' +GoodsBagInputcode_max = '6971648922983' +''' 3-普通商品-2件 ''' +NormalGoodsInputcode01 = "6924743915848" # 乐事薯片 +NormalGoodsInputcode02 = "6925303796426" # 统一番茄牛肉面 +''' 4-会员商品 ''' +VipGoodsInputcode = "6925303796426" # 统一番茄牛肉面 +''' 5-折扣商品 ''' +SaleGoodsInputCode = "6924743915848" # 乐事薯片 +''' 6-促销商品白名单 ''' +PromotionalWhitelistGoods = {"GoodsInputcode": "6925303796426", "GoodsName": "统一茄皇蕃茄牛肉面"} +''' 7-重量放通白名单 ''' +WeightToWhitelistGoods = {"GoodsInputcode": "6924743915848", "GoodsName": "乐事无限翡翠黄瓜味薯片"} + + + +''' 0-广告数据 ''' WuShangADDetail = [ { "adsAreaId": 1, "mediaType": 1, diff --git a/YiMao/data/__init__.py b/YiMao/data/__init__.py new file mode 100644 index 0000000..337dfe6 --- /dev/null +++ b/YiMao/data/__init__.py @@ -0,0 +1,5 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Date:: 2024/11/18-11:49 +# @Description:: diff --git a/YiMao/data/前后端联测业务场景梳理.xlsx b/YiMao/data/前后端联测业务场景梳理.xlsx index 396ddd4..bed8cce 100644 Binary files a/YiMao/data/前后端联测业务场景梳理.xlsx and b/YiMao/data/前后端联测业务场景梳理.xlsx differ diff --git a/YiMao/scripts/BusiScenarios/test_C002_NonVipAddShoppingBagAndSettlePayment.py b/YiMao/scripts/BusiScenarios/test_C002_NonVipAddShoppingBagAndSettlePayment.py index 33b34e5..909dde3 100644 --- a/YiMao/scripts/BusiScenarios/test_C002_NonVipAddShoppingBagAndSettlePayment.py +++ b/YiMao/scripts/BusiScenarios/test_C002_NonVipAddShoppingBagAndSettlePayment.py @@ -6,6 +6,7 @@ import unittest,allure,time from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneData import * class Test_C002_NonVipAddShoppingBagAndSettlePayment(unittest.TestCase): @@ -19,6 +20,8 @@ class Test_C002_NonVipAddShoppingBagAndSettlePayment(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi() + self.goods_inputcode01 = GoodsBagInputcode_mid + self.goods_inputcode02 = GoodsBagInputcode_max @allure.story('[场景测试] 00201-非会员加购购物袋并试算验证-01') def test_C00201_NonVipAddShoppingBagAndSettlePayment(self): @@ -29,13 +32,16 @@ class Test_C002_NonVipAddShoppingBagAndSettlePayment(unittest.TestCase): Payload01 = {"action": 0, "isAnon": True} LoginData = self.ymc.login_app_v2(Payload01) allure.step("步骤3:获取商品信息") - GoodsInfoData = self.ymc.get_goods_info(InputCode=6971648922990) - allure.step("步骤4:添加购物袋") - self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData) - allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData]) - allure.step("步骤6:请求订单结算") - self.ymc.request_order_settlement(LoginData) + GoodsInfoData = self.ymc.get_goods_info(self.goods_inputcode01) + if GoodsInfoData['msg'] != '加购商品不存在': + allure.step("步骤4:添加购物袋") + self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---购物袋 {self.goods_inputcode01} 不存在") @allure.story('[场景测试] 00202-非会员加购购物袋并试算验证-02') def test_C00202_AddShoppingBagAndSettlePayment(self): @@ -46,13 +52,16 @@ class Test_C002_NonVipAddShoppingBagAndSettlePayment(unittest.TestCase): Payload01 = {"action": 0, "isAnon": True} LoginData = self.ymc.login_app_v2(Payload01) allure.step("步骤3:获取商品信息") - GoodsInfoData = self.ymc.get_goods_info(InputCode=6971648922983) - allure.step("步骤4:添加购物袋") - self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData) - allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData]) - allure.step("步骤6:请求订单结算") - self.ymc.request_order_settlement(LoginData) + GoodsInfoData = self.ymc.get_goods_info(self.goods_inputcode02) + if GoodsInfoData['msg'] != '加购商品不存在': + allure.step("步骤4:添加购物袋") + self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---购物袋 {self.goods_inputcode02} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py index b046774..3d15341 100644 --- a/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py @@ -2,10 +2,11 @@ # -*- coding: utf-8 -*- # @Author:: Arthur Wu # @Date:: 2024/11/18-10:49 -# @Description:: 游客登录,加购会员商品,并结算 +# @Description:: 游客登录,加购无优惠普通商品并结算 import unittest,allure,time from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneData import * class Test_C003_NonVipAddNonDiscountedProductsForPurchaset(unittest.TestCase): @@ -19,7 +20,7 @@ class Test_C003_NonVipAddNonDiscountedProductsForPurchaset(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi() - self.vip_goods_inputcode = "6924743915848" # 乐事薯片 + self.NormalGoodsInputcode01 = NormalGoodsInputcode01 # 乐事薯片 @allure.story('[场景测试] 003-非会员加购无优惠商品并试算验证-01') def test_C003_NonVipAddNonDiscountedProductsForPurchase(self): @@ -30,13 +31,16 @@ class Test_C003_NonVipAddNonDiscountedProductsForPurchaset(unittest.TestCase): Payload01 = {"action": 0, "isAnon": True} LoginData = self.ymc.login_app_v2(Payload01) allure.step("步骤3:获取商品信息") - GoodsInfoData = self.ymc.get_goods_info(InputCode=self.vip_goods_inputcode) - allure.step("步骤4:添加无优惠商品") - self.ymc.add_cart_goods(GoodsInfoData, 5, LoginData) - allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData]) - allure.step("步骤6:请求订单结算") - self.ymc.request_order_settlement(LoginData) + GoodsInfoData = self.ymc.get_goods_info(InputCode=self.NormalGoodsInputcode01) + if GoodsInfoData['msg'] != '加购商品不存在': + allure.step("步骤4:添加无优惠商品") + self.ymc.add_cart_goods(GoodsInfoData, 5, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {self.NormalGoodsInputcode01} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py index 7133c34..c5f4b1c 100644 --- a/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py @@ -1,11 +1,12 @@ # !/usr/bin/python # -*- coding: utf-8 -*- # @Author:: Arthur Wu -# @Description:: 游客登录,加购会员商品,并结算 +# @Description:: 游客登录,加购会员商品并结算 # @Date:: 2021-05-10 16:30:23 import unittest,allure,time from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneData import * class Test_C004_NonVipAddMemberPproductsForPurchase(unittest.TestCase): @@ -20,8 +21,7 @@ class Test_C004_NonVipAddMemberPproductsForPurchase(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi() # 会员有优惠商品暂未提供 - self.vip_goods_inputcode = "6924743915848" # 乐事薯片 - self.vip_goods_inputcode = "6925303796426" # 统一番茄牛肉面 + self.vip_goods_inputcode = VipGoodsInputcode # 统一番茄牛肉面 @allure.story('[场景测试] 004-非会员加购会员商品并结算验证-01') def test_C004_NonVipAddMemberPproductsForPurchase(self): @@ -33,12 +33,15 @@ class Test_C004_NonVipAddMemberPproductsForPurchase(unittest.TestCase): LoginData = self.ymc.login_app_v2(Payload01) allure.step("步骤3:获取商品信息") GoodsInfoData = self.ymc.get_goods_info(InputCode=self.vip_goods_inputcode) - allure.step("步骤4:添加会员有优惠商品") - self.ymc.add_cart_goods(GoodsInfoData, 1, LoginData) - allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData]) - allure.step("步骤6:请求订单结算") - self.ymc.request_order_settlement(LoginData) + if GoodsInfoData['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + self.ymc.add_cart_goods(GoodsInfoData, 1, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {self.vip_goods_inputcode} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_C005_NonVipAddMultipleItemsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C005_NonVipAddMultipleItemsForPurchase.py index 79c7449..db0dbd7 100644 --- a/YiMao/scripts/BusiScenarios/test_C005_NonVipAddMultipleItemsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_C005_NonVipAddMultipleItemsForPurchase.py @@ -6,6 +6,7 @@ import unittest,allure,time from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneData import * class Test_C005_NonVipAddMultipleItemsForPurchase(unittest.TestCase): @@ -18,8 +19,8 @@ class Test_C005_NonVipAddMultipleItemsForPurchase(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi() - self.vip_goods_inputcode1 = "6924743915848" # 乐事薯片 - self.vip_goods_inputcode2 = "6925303796426" # 统一番茄牛肉面 + self.goods_inputcode1 = NormalGoodsInputcode01 # 乐事薯片 + self.goods_inputcode2 = NormalGoodsInputcode02 # 统一番茄牛肉面 @allure.story('[场景测试] 005-非会员加购会员商品并结算验证') def test_C005_NonVipAddMultipleItemsForPurchase(self): @@ -30,17 +31,23 @@ class Test_C005_NonVipAddMultipleItemsForPurchase(unittest.TestCase): Payload01 = {"action": 0, "isAnon": True} LoginData = self.ymc.login_app_v2(Payload01) allure.step("步骤3:获取商品1信息") - GoodsInfoData1 = self.ymc.get_goods_info(InputCode=self.vip_goods_inputcode1) - allure.step("步骤4:添加商品1") - self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData) - allure.step("步骤5:获取商品2信息") - GoodsInfoData2 = self.ymc.get_goods_info(InputCode=self.vip_goods_inputcode2) - allure.step("步骤6:添加商品2") - self.ymc.add_cart_goods(GoodsInfoData2, 1, LoginData) - allure.step("步骤7:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData1, GoodsInfoData2]) - allure.step("步骤8:请求订单结算") - self.ymc.request_order_settlement(LoginData) + GoodsInfoData1 = self.ymc.get_goods_info(InputCode=self.goods_inputcode1) + if GoodsInfoData1['msg'] != '加购商品不存在': + allure.step("步骤4:添加商品1") + self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData) + allure.step("步骤5:获取商品2信息") + GoodsInfoData2 = self.ymc.get_goods_info(InputCode=self.goods_inputcode2) + if GoodsInfoData2['msg'] != '加购商品不存在': + allure.step("步骤6:添加商品2") + self.ymc.add_cart_goods(GoodsInfoData2, 1, LoginData) + allure.step("步骤7:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData1, GoodsInfoData2]) + allure.step("步骤8:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {self.goods_inputcode2} 不存在") + else: + LOGGER.info(f"---商品 {self.goods_inputcode1} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_C006_NonVipAddDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C006_NonVipAddDiscountedProductsForPurchase.py index 3528690..01a8212 100644 --- a/YiMao/scripts/BusiScenarios/test_C006_NonVipAddDiscountedProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_C006_NonVipAddDiscountedProductsForPurchase.py @@ -6,6 +6,7 @@ import unittest,allure,time from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneData import * class Test_C006_NonVipAddDiscountedProductsForPurchaset(unittest.TestCase): @@ -20,7 +21,7 @@ class Test_C006_NonVipAddDiscountedProductsForPurchaset(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi() # 折扣商品暂未提供 - self.vip_goods_inputcode1 = "6924743915848" # 乐事薯片 + self.sale_goods_inputCode = SaleGoodsInputCode # 乐事薯片 @allure.story('[场景测试] 006-非会员加购打折商品并结算-01') def test_C006_NonVipAddDiscountedProductsForPurchase(self): @@ -31,14 +32,16 @@ class Test_C006_NonVipAddDiscountedProductsForPurchaset(unittest.TestCase): Payload01 = {"action": 0, "isAnon": True} LoginData = self.ymc.login_app_v2(Payload01) allure.step("步骤3:获取折扣商品信息") - GoodsInfoData1 = self.ymc.get_goods_info(InputCode=self.vip_goods_inputcode1) - allure.step("步骤4:加购折扣商品") - self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData) - - allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData1]) - allure.step("步骤6:请求订单结算") - self.ymc.request_order_settlement(LoginData) + GoodsInfoData = self.ymc.get_goods_info(InputCode=self.sale_goods_inputCode) + if GoodsInfoData['msg'] != '加购商品不存在': + allure.step("步骤4:加购折扣商品") + self.ymc.add_cart_goods(GoodsInfoData, 1, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {self.sale_goods_inputCode} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_C007_NonVipAddPromotionalWhitelistProducts.py b/YiMao/scripts/BusiScenarios/test_C007_NonVipAddPromotionalWhitelistProducts.py index c45e336..eef35ec 100644 --- a/YiMao/scripts/BusiScenarios/test_C007_NonVipAddPromotionalWhitelistProducts.py +++ b/YiMao/scripts/BusiScenarios/test_C007_NonVipAddPromotionalWhitelistProducts.py @@ -7,7 +7,7 @@ import unittest,allure,time from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi from YiMao.businessFunc.ServiceApiLib import YMServiceApi - +from YiMao.data.WuShangSceneData import * class Test_C007_NonVipAddPromotionalWhitelistProducts(unittest.TestCase): '''@Date:: 2024/11/15 @@ -22,6 +22,7 @@ class Test_C007_NonVipAddPromotionalWhitelistProducts(unittest.TestCase): self.ymc = YMClientApi() self.yms = YMServiceApi() # 促销白名单商品暂未提供 + self.promotional_whitelist_goods = PromotionalWhitelistGoods @allure.story('[场景测试] 007-非会员加购促销白名单商品并结算') def test_C007_NonVipAddPromotionalWhitelistProducts(self): @@ -29,25 +30,33 @@ class Test_C007_NonVipAddPromotionalWhitelistProducts(unittest.TestCase): allure.step("[前置条件]:先调用管理平台接口,将指定商品添加到促销白名单中") GoodsInfo = {"GoodsInputcode": "6925303796426", "GoodsName": "统一茄皇蕃茄牛肉面"} MarketAndStoreInfo = {"MarketId": 50, "StoreId": 29} - self.yms.add_promotional_product_whitelist(GoodsInfo, MarketAndStoreInfo) + pre_respomse = self.yms.add_promotional_product_whitelist(GoodsInfo, MarketAndStoreInfo) + if pre_respomse['data'] is not None: + LOGGER.info(f"---商品 {self.promotional_whitelist_goods['GoodsInputcode']} " + f"已添加到促销白名单中") + allure.step("[业务步骤]:再调用客户端接口,执行加购操作") + allure.step("步骤1:session开始") + self.ymc.session_start() + allure.step("步骤2:匿名登录") + Payload01 = {"action": 0, "isAnon": True} + LoginData = self.ymc.login_app_v2(Payload01) + allure.step("步骤3:获取白名单商品信息") + GoodsInfoData1 = self.ymc.get_goods_info(self.promotional_whitelist_goods["GoodsInputcode"]) + if GoodsInfoData1['msg'] != '加购商品不存在': + allure.step("步骤4:加购白名单商品") + self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData1]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在") - allure.step("[业务步骤]:再调用客户端接口,执行加购操作") - allure.step("步骤1:session开始") - self.ymc.session_start() - allure.step("步骤2:匿名登录") - Payload01 = {"action": 0, "isAnon": True} - LoginData = self.ymc.login_app_v2(Payload01) - allure.step("步骤3:获取白名单商品信息") - GoodsInfoData1 = self.ymc.get_goods_info(InputCode=GoodsInfo["GoodsInputcode"]) - allure.step("步骤4:加购白名单商品") - self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData) - allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData1]) - allure.step("步骤6:请求订单结算") - self.ymc.request_order_settlement(LoginData) - - allure.step("[后置处理]:删除添加的促销白名单商品") - self.yms.delete_whitelist_goods() + allure.step("[后置处理]:删除添加的促销白名单商品") + self.yms.delete_whitelist_goods() + else: + LOGGER.info(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " + f"到促销白名单失败") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_C008_NonVipAddWeightToTheProduct.py b/YiMao/scripts/BusiScenarios/test_C008_NonVipAddWeightToTheProduct.py index ebe10cf..ed4ff72 100644 --- a/YiMao/scripts/BusiScenarios/test_C008_NonVipAddWeightToTheProduct.py +++ b/YiMao/scripts/BusiScenarios/test_C008_NonVipAddWeightToTheProduct.py @@ -7,6 +7,7 @@ import unittest,allure,time from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi from YiMao.businessFunc.ServiceApiLib import YMServiceApi +from YiMao.data.WuShangSceneData import * class Test_C008_NonVipAddWeightToTheProduct(unittest.TestCase): @@ -22,6 +23,7 @@ class Test_C008_NonVipAddWeightToTheProduct(unittest.TestCase): self.ymc = YMClientApi() self.yms = YMServiceApi() # 重量放通白名单商品暂未提供 + self.weight_to_whitelist_goods = WeightToWhitelistGoods @allure.story('[场景测试] 008-非会员加购重量放通商品并结算') def test_C008_NonVipAddWeightToTheProduct(self): @@ -29,26 +31,34 @@ class Test_C008_NonVipAddWeightToTheProduct(unittest.TestCase): allure.step("[前置条件]:先调用管理平台接口,将指定商品添加到重量放通白名单中") GoodsInfo = {"GoodsInputcode": "6924743915848", "GoodsName": "乐事无限翡翠黄瓜味薯片"} MarketAndStoreInfo = {"MarketId": 50, "StoreId": 29} - self.yms.add_weight_to_whitelist(GoodsInfo, MarketAndStoreInfo) + pre_respomse = self.yms.add_weight_to_whitelist(GoodsInfo, MarketAndStoreInfo) + if pre_respomse['data'] is not None: + LOGGER.info(f"---商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " + f"已添加到重量放通白名单中") + ''' 2-再调用客户端接口,执行加购操作 ''' + allure.step("[业务步骤]:再调用客户端接口,执行加购操作") + allure.step("步骤1:session开始") + self.ymc.session_start() + allure.step("步骤2:匿名登录") + Payload01 = {"action": 0, "isAnon": True} + LoginData = self.ymc.login_app_v2(Payload01) + allure.step("步骤3:获取白名单商品信息") + GoodsInfoData1 = self.ymc.get_goods_info(self.weight_to_whitelist_goods["GoodsInputcode"]) + if GoodsInfoData1['msg'] != '加购商品不存在': + allure.step("步骤4:加购白名单商品") + self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GoodsInfoData1]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {self.weight_to_whitelist_goods["GoodsInputcode"]} 不存在") - ''' 2-再调用客户端接口,执行加购操作 ''' - allure.step("[业务步骤]:再调用客户端接口,执行加购操作") - allure.step("步骤1:session开始") - self.ymc.session_start() - allure.step("步骤2:匿名登录") - Payload01 = {"action": 0, "isAnon": True} - LoginData = self.ymc.login_app_v2(Payload01) - allure.step("步骤3:获取白名单商品信息") - GoodsInfoData1 = self.ymc.get_goods_info(InputCode=GoodsInfo["GoodsInputcode"]) - allure.step("步骤4:加购白名单商品") - self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData) - allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData1]) - allure.step("步骤6:请求订单结算") - self.ymc.request_order_settlement(LoginData) - - allure.step("[后置处理]:删除添加的重量放通白名单商品") - self.yms.delete_weight_whitelist_goods() + allure.step("[后置处理]:删除添加的重量放通白名单商品") + self.yms.delete_weight_whitelist_goods() + else: + LOGGER.info(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " + f"到重量放通白名单失败") if __name__ == '__main__':