From 101f1670102dbac034975c31dc90604067b244c1 Mon Sep 17 00:00:00 2001 From: ieemoo Date: Wed, 20 Nov 2024 10:16:59 +0800 Subject: [PATCH] Arthur-Wu committed this file on 2024-11-18 --- YiMao/businessFunc/ClientApiLib.py | 116 +++++++++++------- YiMao/businessFunc/ServiceApiLib.py | 2 + YiMao/data/WuShangSceneData.py | 20 ++- YiMao/data/__init__.py | 5 + YiMao/data/前后端联测业务场景梳理.xlsx | Bin 12421 -> 12422 bytes ...02_NonVipAddShoppingBagAndSettlePayment.py | 37 +++--- ...nVipAddNonDiscountedProductsForPurchase.py | 22 ++-- ...004_NonVipAddMemberPproductsForPurchase.py | 21 ++-- ..._C005_NonVipAddMultipleItemsForPurchase.py | 33 +++-- ..._NonVipAddDiscountedProductsForPurchase.py | 21 ++-- ...7_NonVipAddPromotionalWhitelistProducts.py | 47 ++++--- .../test_C008_NonVipAddWeightToTheProduct.py | 48 +++++--- 12 files changed, 232 insertions(+), 140 deletions(-) create mode 100644 YiMao/data/__init__.py 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 396ddd485e49435b674af3a5ecca76f6799b001e..bed8ccef6a1bdd34d45b22b709b9aa5b38b39884 100644 GIT binary patch delta 1172 zcmV;F1Z(?+VTNI_o&f|6zJNWGq5&-e1yqyK0Xl!3qr?ZM1#66k3LU_sMSXcua!a{! z@Z^jI7bN&3lC-DXR%jQ3r5Jm@1I2t69Xg5|;}i?=>9*K1{=v3@i#)%<3IY=>Fx&xC zI}*_mDfo!ApRVZvf@5evfes#%jNl({0H^$)4ZSjPDj5zo?sSYhWeYxtqkHe=Xl&ay zYiECbjF_L`x7FiwziKLVcPkF4E(NFD0Sm^}5hHo01$7+%AL4vXB5p>D zDe(lTOMLbr>Tgg>0|XQR000O8hfd-^z-+S#1ET>7n3(dh!w3KXpe2*84H>h~1a<*x zxJ&@v|7)`7pCQGPa`2xqUupX0a~JLE$LeK2gMTr05aL) zB97XZVc#6<-|E+T4-T8y)Us{&5EcH74vp^dI673{M*d^Oi$#)xcRzgJLx-nvv^BeB z^BI${1~h;0rS*nS>zyQH$~SG+m34q$H(9sOsnT;M zxw(Qi+iK%SZQaCB8?-o01gMN~TQX1|@!{r2`Pvf#v=tlS;D2$_l1d&)VUwS~Y3L9VBe!a~;iEREBrlc@)0 zf55~GRHCg^iP$G)7g;6NGO5Jf3)60e#jr{!4r3`gyR?|MR06{{P>HruC1Q7#U1XJ5 z%cK%{l`Mu;LUCLrsk}-S^Oj2VqbO>CyE)oQm538pc9B&=7RJf-z<4GW!zu}Ri5pm2 z%=mD_XC6#n{fx3+>1UKc1+eZa5dER-e1Az8`R?yC?IKNgr+7mm@q(=o-lCUTl*m4JZc+4gU5FZ!(is z4J9A5WL{O;#HY3!x~duU|9g(XN)ts3CcRsA_dife0|b*VFdDP84N@KfIg)dHUb7IlOZV_lP@kR z0%IeSej^r>Brgz?X&4X-000000RSKX003N*oGv;6cazsHHUXZK4lh6fCzDSvUJ00( m^0C7R005wqwl7x!my-@KMFNKplMgTzlWH&(2Hh(F0000AS_t9* delta 1149 zcmV-@1cLj9VTEC^o&f}Si%Rs9q5&-eEeMm*0Xl!ZL5UAc3)UD76*_=Ni~91S;aE=cf6Bxz5%t5_#wix!(`~V3{DW-)7kPe-6$B<&V7LRO zb|j)BQt%OJKV8!U1jo>T0v$Xi8Nol^08aTo8+v8pR5BcF-02v1$`*VONB7>#(b%?a z*3N(W7%@M=Z>z`We$`a!?p7R7T?$UQ0~U;{C4e%f#FJ8YzJ~d*ikIF<5O;^sb*@BK zAAJCVNMaZ|L_aC7v-^kj64gas%u_;Aa<$HHX;IKTfA0qW>hHo01$7+%AL300|XQR000O8hfd-^z-+S#1ET>7A9t=7!UzBWo+Xp74H>h~1a<*y z_|qk{(Z41M{0Iq_l!5<@*-FzjpSx&RKUOdMA#eBpG`rz>6JN(@`=dSoQa4Y}15n8p z7je|S4EyF-|5m@&dvMsqCegOtLsa-TIyAb&`>5B;6S(bnvh z&6jACuLd-KFr1n3hEMCABxA}qZPt}_hfi{+eTFK0-plc@Ol#;~y}Rw&a|HJoPOU#x zddeg>SI}fzZTzUMn;2??7U;qHdbhe=zCu53EkYqepP_cirJ)!NW2b1uCy6Mf;eIq+ znJxx?L=u`p6U4&C9{v&c5e&nXxF>?Uk4UG8+(%?aQ$#T$;LcE%^%U{Rk8v?Ylp`Vm zVW1$FQ^>ua=86zYzD3Y)Z{H#dPRz;5-LZ?1nOME2oa0$r2z(IadI~8lWNj|FIsTKU z2WEe0wZeJhPDxv-60uLpF0x9jWm1W|7p6xGi(!>e9L7>~c4;whsRV{^pb~ARO2qCe zyT~fBmPsY@Dp?GxgyOhLQhAju<}H=z2T}h_w3R9mC$8)wtAs3!lk0);Oe}^~67mu^ zu(TNSyfEn{n7;ZMWxdkRD1i!K-Blp^L)m{tRsmU91>#l}7Q-qCd5I1#Eyk}v&wgD( zs!z*50=?`i5WT8!m6hO3tOn7A1%g-+XyTJF6=z-|C{PAS^IRFDuG=9j+FOCy6v@jV z6Dva;V1a(T4D!Rrk`hq?(opOiX;^l9FO^CqcA2v#6Jsq7tw2A{n*1DVN)Dz;&nFEq zD&| 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__':