diff --git a/YiMao/businessFunc/ClientApiLib.py b/YiMao/businessFunc/ClientApiLib.py index e9c673f..8fbfc4c 100644 --- a/YiMao/businessFunc/ClientApiLib.py +++ b/YiMao/businessFunc/ClientApiLib.py @@ -63,7 +63,7 @@ class YMClientApi(object): logging.info(f"-----------接口返回数据:{response.json()}\n\n") return response.json() - def add_retire_purchase(self, GoodsInfoData, AddPurchaseQuantity, LoginData): + def add_cart_goods(self, GoodsInfoData, AddPurchaseQuantity, LoginData): logging.info("========== [加入购物车] add_retire_purchase ==========") payload = json.dumps({ "addGoods":[{ @@ -82,6 +82,115 @@ class YMClientApi(object): response = requests.request("POST", url, headers=self.headerss, data=payload) logging.info(f"-----------接口返回状态码:{response.status_code}") logging.info(f"-----------接口返回数据:{response.json()}\n\n") + return response.json() + + def delete_cart_goods(self, GoodsInfoData): + logging.info("========== [删除购物车商品] delete_cart_goods ==========") + payload = json.dumps({ + "addGoods": [], + "autoSelectCoupon": True, + "coupons": [], + "deleteGoods": [{ + "inputCode": "6924743915848", + "isNormalAddPurchase": True, + "qty": 1, + "uuid": ["23B2363A224E4933942992F84B937D7D"], + "weight": 0 + }], + "existGoods": [{ + "inputCode": "6924743915848", + "isNormalAddPurchase": True, + "qty": 1, + "uuid": ["23B2363A224E4933942992F84B937D7D"], + "weight": 155 + }], + "orderNo": "1858386778027515904" + }) + + add_2_result = { + "code": 0, + "msg": "成功", + "data": { + "remainAmount": "13.8", + "totalDisc": "0.0", + "orderItemList": [{ + "uuid": ["2BEDF9C6DD954E1FB3DCD9A9F3C57D29"], # + "qty": 1, # + "marketPrice": "5", + "salePrice": "5.00", + "totalSalePrice": "5", + "minWeight": 0, + "weight": 0, + "maxWeight": 0, + "goodsPic": "https://ieemoo-storage.obs.cn-east-3.myhuaweicloud.com/lhpic/6925303796426.jpg", + "barcode": "6925303796426", + "inputCode": "6925303796426", + "goodsName": "统一茄皇蕃茄牛肉面", + "goodsPromotionTags": null, + "measureProperty": 0, + "shoppingBagFlag": false, + "activityId": null, + "activityDescription": null, + "totalPromotionPrice": 0, + "categoryCode": null, + "isOneBarcodeMore": false, + "pkgFlag": false + }, + { + "uuid": ["F9BBA7C9AF7944FF91C717E3D18BD682"], + "qty": 1, + "marketPrice": "8.8", + "salePrice": "8.80", + "totalSalePrice": "8.8", + "minWeight": 0, + "weight": 0, + "maxWeight": 0, + "goodsPic": "https://ieemoo-storage.obs.cn-east-3.myhuaweicloud.com/lhpic/6924743915848.jpg", + "barcode": "6924743915848", + "inputCode": "6924743915848", + "goodsName": "乐事无限翡翠黄瓜味薯片", + "goodsPromotionTags": null, + "measureProperty": 0, + "shoppingBagFlag": false, + "activityId": null, + "activityDescription": null, + "totalPromotionPrice": 0, + "categoryCode": null, + "isOneBarcodeMore": false, + "pkgFlag": false + }], + "bagInfoList": null, + "couponMap": null, + "activityGoodsList": null + } + } + + del_201 = { + "addGoods": [], + "autoSelectCoupon": True, + "coupons": [], + "deleteGoods": [{ + "inputCode": "6924743915848", + "isNormalAddPurchase": True, + "qty": 1, + "uuid": ["F9BBA7C9AF7944FF91C717E3D18BD682"], + "weight": 0 + }], + "existGoods": [{ + "inputCode": "6925303796426", + "isNormalAddPurchase": True, + "qty": 1, + "uuid": ["2BEDF9C6DD954E1FB3DCD9A9F3C57D29"], + "weight": 165 # GoodsInfoData["data"]["weight"] + }, { + "inputCode": "6924743915848", + "isNormalAddPurchase": True, + "qty": 1, + "uuid": ["F9BBA7C9AF7944FF91C717E3D18BD682"], + "weight": 160 # GoodsInfoData["data"]["weight"] + }], + "orderNo": "1858386778027515904" + } def get_coupon_list(self): logging.info("========== [获取优惠券列表] get_coupon_list ==========") @@ -116,13 +225,16 @@ class YMClientApi(object): logging.info(f"-----------接口返回数据:{response.json()}\n\n") return response.json() - def get_cart_goods_info(self, GoodsInfoData): + def get_cart_goods_info(self, GoodsDataList): logging.info("========== [获取购物车商品信息] get_cart_goods_info ==========") - payload = json.dumps({"goodsParamList":[{ - "inputCode": GoodsInfoData["data"]["inputCode"], - "qty": GoodsInfoData["data"]["qty"], - "weight": int(GoodsInfoData["data"]["weight"]), - }]}) + goods_param_lList = [] + for goods_data in GoodsDataList: + goods_dict = {} + goods_dict["inputCode"] = goods_data["data"]["inputCode"] + goods_dict["qty"] = goods_data["data"]["qty"] + goods_dict["weight"] = int(goods_data["data"]["weight"]) + goods_param_lList.append(goods_dict) + payload = json.dumps({"goodsParamList": goods_param_lList}) url = self.Domain+"/v2/shopping/cart/goods/info" response = requests.request("POST", url, headers=self.headerss, data=payload) logging.info(f"-----------接口返回状态码:{response.status_code}") @@ -142,12 +254,6 @@ class YMClientApi(object): logging.info(f"-----------接口返回数据:{response.json()}\n\n") return response.json() - ''' 加购购物袋 - POST - https://api.test.yimaogo.com/cart/v2/shopping/add/retire/purchase - - ''' - ''' 2- without sessionid ''' def get_ads_list(self): logging.info("========== [获取广告列表] get_ads_list ==========") @@ -185,7 +291,7 @@ if __name__ == '__main__': CouponListData = ymc.get_coupon_list() # step6:获取优惠券列表 ymc.receive_coupon(CouponListData) # step7:领取优惠券 ymc.query_coupon_list_user() # step8:查询用户持有的优惠券列表 - ymc.add_retire_purchase(GoodsInfoData, 1, LoginData) # step9:加购商品 ------ 6924882486100 + ymc.add_cart_goods(GoodsInfoData, 1, LoginData) # step9:加购商品 ------ 6924882486100 ymc.get_cart_goods_info(GoodsInfoData) # step10:获取购物车商品信息 ymc.request_order_settlement(LoginData) # step11:请求订单结算 diff --git a/YiMao/businessFunc/ServiceApiLib.py b/YiMao/businessFunc/ServiceApiLib.py index 0a2db71..c1c07ec 100644 --- a/YiMao/businessFunc/ServiceApiLib.py +++ b/YiMao/businessFunc/ServiceApiLib.py @@ -6,6 +6,7 @@ import requests,json, time, logging from configs.globalParams import * from commons.SignatureYM import SignatureYM +from commons.FileHandler import Txt class YMServiceApi(object): @@ -14,65 +15,105 @@ class YMServiceApi(object): self.headerss = SignatureYM().return_headers() ''' 1-广告模块 ''' - def publish_ad(self, ADDetail, MarketAndStoreDetail): + def publish_ad(self, ADDetailList, MarketAndStoreDetail): logging.info("========== [发布广告] ==========") - timeStamp = str(int(time.time())) - PublicParams = { - "status": 4, "name": "Auto"+timeStamp, - "agencyId": 3, "agencyName": "洪家班", "advertiserId": 3, - "advertiserName": "阿宝传媒", "adsUse": 1, "customerTag": 3, - "putRangeCycle": "[7,6,5,1,2,3,4]", - "addType": 1, "pricingType": 1, "standardPrice": "1", "minPrice": "1", - "putStart": GlobalParams["todayDate"], "putEnd": GlobalParams["todayDate"], - "putStartTime": "00:00:00", "putEndTime": "23:00:00" - } - payload = json.dumps(PublicParams | ADDetail | MarketAndStoreDetail) - url = self.Domain + "admin/ads" + def __publish(ADDetail, MarketAndStoreDetail): + timeStamp = str(int(time.time())) + PublicParams = { + "status": 4, "name": "Auto"+timeStamp, + "agencyId": 3, "agencyName": "洪家班", "advertiserId": 3, + "advertiserName": "阿宝传媒", "adsUse": 1, "customerTag": 3, + "putRangeCycle": "[7,6,5,1,2,3,4]", + "addType": 1, "pricingType": 1, "standardPrice": "1", "minPrice": "1", + "putStart": GlobalParams["todayDate"], "putEnd": GlobalParams["todayDate"], + "putStartTime": "00:00:00", "putEndTime": "23:00:00" + } + payload = json.dumps(PublicParams | ADDetail | MarketAndStoreDetail) + url = self.Domain + "admin/ads" + response = requests.request("POST", url, headers=self.headerss, data=payload) + logging.info(f"-----------接口返回状态码:{response.status_code}") + logging.info(f"-----------接口返回数据:{response.json()}\n\n") + + for adDetail in ADDetailList: + __publish(adDetail, MarketAndStoreDetail) + time.sleep(0.5) + + def add_promotional_product_whitelist(self, GoodsInfo, MarketAndStoreInfo): + logging.info("========== [新增促销白名单] ==========") + payload = json.dumps({ + "goodsType": 3, + "dataScope": 1, + "categoryCode": "", + "categoryName": "", + "barcode": GoodsInfo["GoodsInputcode"], + "goodsName": GoodsInfo["GoodsName"], + "storeId": MarketAndStoreInfo["StoreId"], + "marketId": MarketAndStoreInfo["MarketId"] + }) + url = self.Domain + "admin/goods/promotion" response = requests.request("POST", url, headers=self.headerss, data=payload) logging.info(f"-----------接口返回状态码:{response.status_code}") logging.info(f"-----------接口返回数据:{response.json()}\n\n") + if response.status_code == 200: + time.sleep(0.5) + rspJson = response.json() + goodsWhiteListID = rspJson["data"]['id'] + writeResult = Txt().append_write_txt("ScenarioTest_GoodsWhiteListID.txt", str(goodsWhiteListID)) + if not writeResult: + logging.error(f"---写入 新建促销商品白名单ID 失败!") + + def delete_whitelist_goods(self): + logging.info("========== [删除促销白名单商品] ==========") + GoodsWhiteListIDList = Txt().read_txt("ScenarioTest_GoodsWhiteListID.txt") + for i in range(len(GoodsWhiteListIDList)): + if GoodsWhiteListIDList[i] not in [None, '']: + url = self.Domain + "admin/goods/promotion/{GoodsWhiteListID}".replace( + "{GoodsWhiteListID}", str(GoodsWhiteListIDList[i])) + logging.info(f"---删除促销白名单商品接口URL为:: {url}") + response = requests.request(method="DELETE", url=url, headers=HEADERS, data={}) + logging.info(f"---接口返回状态码为:: {response.status_code}") + logging.info(f"---接口返回体为:: {response.json()}\n") + + def add_weight_to_whitelist(self, GoodsInfo, MarketAndStoreInfo): + logging.info("========== [新增重量放通白名单] ==========") + payload = json.dumps({ + "goodsType": 4, + "content": GoodsInfo["GoodsInputcode"], + "type": 1, + "dataScope": 1, + "reason": "自动化测试之场景测试", + "storeId": MarketAndStoreInfo["StoreId"], + "marketId": MarketAndStoreInfo["MarketId"] + }) + url = self.Domain + "admin/goods/weight/promotion" + response = requests.request("POST", url, headers=self.headerss, data=payload) + logging.info(f"-----------接口返回状态码:{response.status_code}") + logging.info(f"-----------接口返回数据:{response.json()}\n\n") + if response.status_code == 200: + time.sleep(0.5) + rspJson = response.json() + weightWhiteListID = rspJson["data"]['id'] + writeResult = Txt().append_write_txt("ScenarioTest_WeightWhiteListID.txt", str(weightWhiteListID)) + if not writeResult: + logging.error(f"---写入 新建重量放通白名单ID 失败!") + + def delete_weight_whitelist_goods(self): + logging.info("========== [删除重量放通白名单商品] ==========") + WeightWhiteListIDList = Txt().read_txt("ScenarioTest_WeightWhiteListID.txt") + for i in range(len(WeightWhiteListIDList)): + if WeightWhiteListIDList[i] not in [None, '']: + url = self.Domain + "admin/goods/weight/promotion/{WeightWhiteListID}".replace( + "{WeightWhiteListID}", str(WeightWhiteListIDList[i])) + logging.info(f"---删除重量放通白名单商品接口URL为:: {url}") + response = requests.request(method="DELETE", url=url, headers=self.headerss, data={}) + logging.info(f"---接口返回状态码为:: {response.status_code}") + logging.info(f"---接口返回体为:: {response.json()}\n\n") if __name__ == '__main__': yms = YMServiceApi() - ''' 武商 ''' - ADDetail = [ - { # 登录页 - "adsAreaId": 1, "mediaType": 1, - "mediaUrl": "ads/content/534ae9d7-3f65-48da-bc2e-3d5e66fe56d8.jpg", - "showOrder": 1, "showTime": 5, - }, - { # 登录后弹窗 - "adsAreaId": 2, "mediaType": 1, - "mediaUrl": "ads/content/93e34d0e-9f4c-499b-ad8b-5741e55528b5.jpg", - }, - { # 购物车主页 - "adsAreaId": 3, "mediaType": 1, - "mediaUrl": "ads/content/581ec30a-4d90-43f3-b0e9-b5c8fe0006b4.jpg", - "showOrder": 1, "showTime": 5, - }, - { # 待机页 - "adsAreaId": 4, "mediaType": 1, - "mediaUrl": "ads/content/8c8f6de0-6eb7-4b66-98cd-2c85eb057ed5.png", - "showOrder": 1, "showTime": 5, - }, - { # 扫码 - "adsAreaId": 5, "mediaType": 1, - "mediaUrl": "ads/content/9d5555e3-fec1-4e1a-94e7-b517f4e88aba.jpg", - }, - { # 支付后 - "adsAreaId": 6, "mediaType": 1, - "mediaUrl": "ads/content/e2e2e892-1a81-4b0f-9af2-cb46f04a5dc4.jpg", - }, - { # 小票 - "adsAreaId": 7, "mediaType": 1, - "mediaUrl": "ads/content/6d9c14ca-3fd1-4fe7-b04a-84cf18937e60.jpg", - } - ] - MarketAndStoreDetail = {"putMarketId": 50, "putStoreId": ["29"]} - for ad in ADDetail: - yms.publish_ad(ad, MarketAndStoreDetail) - time.sleep(0.5) - - - + GoodsInfo = {"GoodsInputcode": "6924743915848"} + MarketAndStoreInfo = {"MarketId": 50, "StoreId": 29} + yms.add_weight_to_whitelist(GoodsInfo, MarketAndStoreInfo) + time.sleep(10) + yms.delete_weight_whitelist_goods() \ No newline at end of file diff --git a/YiMao/data/WuShangSceneData.py b/YiMao/data/WuShangSceneData.py index c951223..c075897 100644 --- a/YiMao/data/WuShangSceneData.py +++ b/YiMao/data/WuShangSceneData.py @@ -3,9 +3,21 @@ # @Author:: Arthur Wu # @Date:: 2024/11/15-14:46 # @Description:: -''' 武商场景数据集 ''' +''' 武商场景数据集 +adsAreaId-1: 登录页广告 +adsAreaId-2: 登录后弹窗广告 +adsAreaId-3: 购物车主页广告 +adsAreaId-4: 待机广告 +adsAreaId-5: 扫码广告 +adsAreaId-6: 支付后广告 +adsAreaId-7: 小票广告 +''' -ADDetail = [ +MarketAndStoreInfo = {"MarketId": 50, "StoreId": 29} + +MarketAndStoreDetail = {"putMarketId": 50, "putStoreId": ["29"]} + +WuShangADDetail = [ { "adsAreaId": 1, "mediaType": 1, "mediaUrl": "ads/content/534ae9d7-3f65-48da-bc2e-3d5e66fe56d8.jpg", @@ -38,4 +50,4 @@ ADDetail = [ "mediaUrl": "ads/content/6d9c14ca-3fd1-4fe7-b04a-84cf18937e60.jpg", } ] -MarketAndStoreDetail = {"putMarketId": 50, "putStoreId": ["29"]} + diff --git a/YiMao/data/YMHT_ApiTestCase_0.0.1.xlsx b/YiMao/data/YMHT_ApiTestCase_0.0.1.xlsx index e781899..4ece096 100644 Binary files a/YiMao/data/YMHT_ApiTestCase_0.0.1.xlsx and b/YiMao/data/YMHT_ApiTestCase_0.0.1.xlsx differ diff --git a/YiMao/data/前后端联测业务场景梳理.xlsx b/YiMao/data/前后端联测业务场景梳理.xlsx index 962e3e1..396ddd4 100644 Binary files a/YiMao/data/前后端联测业务场景梳理.xlsx and b/YiMao/data/前后端联测业务场景梳理.xlsx differ diff --git a/YiMao/debugLib/test_C005_NonVipAddMultipleItemsForPurchase.py b/YiMao/debugLib/test_C005_NonVipAddMultipleItemsForPurchase.py deleted file mode 100644 index fb5a0bf..0000000 --- a/YiMao/debugLib/test_C005_NonVipAddMultipleItemsForPurchase.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 游客登录,加购多件商品,并结算 -# @Date:: 2021-05-10 16:30:23 \ No newline at end of file diff --git a/YiMao/debugLib/test_C006_NonVipAddDiscountedProductsForPurchase.py b/YiMao/debugLib/test_C006_NonVipAddDiscountedProductsForPurchase.py deleted file mode 100644 index 716cc90..0000000 --- a/YiMao/debugLib/test_C006_NonVipAddDiscountedProductsForPurchase.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 游客登录,加购打折商品,并结算 -# @Date:: 2021-05-10 16:30:22 \ No newline at end of file diff --git a/YiMao/debugLib/test_C007_NonVipAddPromotionalWhitelistProducts.py b/YiMao/debugLib/test_C007_NonVipAddPromotionalWhitelistProducts.py deleted file mode 100644 index 38bebae..0000000 --- a/YiMao/debugLib/test_C007_NonVipAddPromotionalWhitelistProducts.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 游客登录,加购促销白名单商品,并结算 -# @Date:: 2021-05-10 16:30:23 \ No newline at end of file diff --git a/YiMao/debugLib/test_C008_NonVipAddWeightToTheProduct.py b/YiMao/debugLib/test_C008_NonVipAddWeightToTheProduct.py deleted file mode 100644 index 29ee56c..0000000 --- a/YiMao/debugLib/test_C008_NonVipAddWeightToTheProduct.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 游客登录,加购重量放通商品,并结算 -# @Date:: 2021-05-10 16:30:22 diff --git a/YiMao/scripts/BusiScenarios/test_C001_CheckADs.py b/YiMao/scripts/BusiScenarios/test_C001_NonLoginCheckADs.py similarity index 84% rename from YiMao/scripts/BusiScenarios/test_C001_CheckADs.py rename to YiMao/scripts/BusiScenarios/test_C001_NonLoginCheckADs.py index aa11bc4..74b8cc5 100644 --- a/YiMao/scripts/BusiScenarios/test_C001_CheckADs.py +++ b/YiMao/scripts/BusiScenarios/test_C001_NonLoginCheckADs.py @@ -8,7 +8,7 @@ from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi -class Test_C001_CheckADs(unittest.TestCase): +class Test_C001_NonLoginCheckADs(unittest.TestCase): '''@Date:: 2024/11/15 @Author:: Arthur Wu @Desc:: @@ -18,8 +18,8 @@ class Test_C001_CheckADs(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi() - @allure.story('[购物车客户端] 广告验证') - def test_C001_CheckADs(self): + @allure.story('[场景测试] 001-购物车客户端-广告验证') + def test_C001_NonLoginCheckADs(self): allure.dynamic.description("描述:购物车客户端-广告验证") AdListData = self.ymc.get_ads_list() if "error_msg" not in AdListData: diff --git a/YiMao/scripts/BusiScenarios/test_C002_AddShoppingBagAndSettlePayment.py b/YiMao/scripts/BusiScenarios/test_C002_NonVipAddShoppingBagAndSettlePayment.py similarity index 72% rename from YiMao/scripts/BusiScenarios/test_C002_AddShoppingBagAndSettlePayment.py rename to YiMao/scripts/BusiScenarios/test_C002_NonVipAddShoppingBagAndSettlePayment.py index 689698a..33b34e5 100644 --- a/YiMao/scripts/BusiScenarios/test_C002_AddShoppingBagAndSettlePayment.py +++ b/YiMao/scripts/BusiScenarios/test_C002_NonVipAddShoppingBagAndSettlePayment.py @@ -8,7 +8,7 @@ from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi -class Test_C002_AddShoppingBagAndSettlePayment(unittest.TestCase): +class Test_C002_NonVipAddShoppingBagAndSettlePayment(unittest.TestCase): '''@Date:: 2024/11/15 @Author:: Arthur Wu @Desc:: @@ -20,9 +20,9 @@ class Test_C002_AddShoppingBagAndSettlePayment(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi() - @allure.story('[购物车客户端] 加购购物袋并试算验证-01') - def test_C00201_AddShoppingBagAndSettlePayment(self): - allure.dynamic.description("描述:加购中号购物袋") + @allure.story('[场景测试] 00201-非会员加购购物袋并试算验证-01') + def test_C00201_NonVipAddShoppingBagAndSettlePayment(self): + allure.dynamic.description("描述:非会员加购中号购物袋") allure.step("步骤1:session开始") self.ymc.session_start() allure.step("步骤2:匿名登录") @@ -31,15 +31,15 @@ class Test_C002_AddShoppingBagAndSettlePayment(unittest.TestCase): allure.step("步骤3:获取商品信息") GoodsInfoData = self.ymc.get_goods_info(InputCode=6971648922990) allure.step("步骤4:添加购物袋") - self.ymc.add_retire_purchase(GoodsInfoData, 2, LoginData) + self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData) allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info(GoodsInfoData) + self.ymc.get_cart_goods_info([GoodsInfoData]) allure.step("步骤6:请求订单结算") self.ymc.request_order_settlement(LoginData) - @allure.story('[购物车客户端] 加购购物袋并试算验证-02') + @allure.story('[场景测试] 00202-非会员加购购物袋并试算验证-02') def test_C00202_AddShoppingBagAndSettlePayment(self): - allure.dynamic.description("描述:加购大号购物袋") + allure.dynamic.description("描述:非会员加购大号购物袋") allure.step("步骤1:session开始") self.ymc.session_start() allure.step("步骤2:匿名登录") @@ -48,9 +48,9 @@ class Test_C002_AddShoppingBagAndSettlePayment(unittest.TestCase): allure.step("步骤3:获取商品信息") GoodsInfoData = self.ymc.get_goods_info(InputCode=6971648922983) allure.step("步骤4:添加购物袋") - self.ymc.add_retire_purchase(GoodsInfoData, 2, LoginData) + self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData) allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info(GoodsInfoData) + self.ymc.get_cart_goods_info([GoodsInfoData]) allure.step("步骤6:请求订单结算") self.ymc.request_order_settlement(LoginData) diff --git a/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py index 76a05b5..b046774 100644 --- a/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_C003_NonVipAddNonDiscountedProductsForPurchase.py @@ -8,10 +8,10 @@ from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi -class Test_C002_AddShoppingBagAndSettlePayment(unittest.TestCase): +class Test_C003_NonVipAddNonDiscountedProductsForPurchaset(unittest.TestCase): '''@Date:: 2024/11/15 @Author:: Arthur Wu - @Desc:: + @Desc:: test_C003_NonVipAddNonDiscountedProductsForPurchase [购物车客户端] 加购无优惠商品并试算验证 1、武商测试环境,普通无优惠商品inputcode为: 6924743915848 @@ -19,21 +19,22 @@ class Test_C002_AddShoppingBagAndSettlePayment(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi() + self.vip_goods_inputcode = "6924743915848" # 乐事薯片 - @allure.story('[购物车客户端] 加购无优惠商品并试算验证-01') - def test_C00201_AddShoppingBagAndSettlePayment(self): - allure.dynamic.description("描述:加购无优惠商品") + @allure.story('[场景测试] 003-非会员加购无优惠商品并试算验证-01') + def test_C003_NonVipAddNonDiscountedProductsForPurchase(self): + allure.dynamic.description("描述:非会员加购无优惠商品") 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:获取商品信息") - GoodsInfoData = self.ymc.get_goods_info(InputCode=6924743915848) + GoodsInfoData = self.ymc.get_goods_info(InputCode=self.vip_goods_inputcode) allure.step("步骤4:添加无优惠商品") - self.ymc.add_retire_purchase(GoodsInfoData, 5, LoginData) + self.ymc.add_cart_goods(GoodsInfoData, 5, LoginData) allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info(GoodsInfoData) + self.ymc.get_cart_goods_info([GoodsInfoData]) allure.step("步骤6:请求订单结算") self.ymc.request_order_settlement(LoginData) diff --git a/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py index 483f1f1..7133c34 100644 --- a/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_C004_NonVipAddMemberPproductsForPurchase.py @@ -8,32 +8,35 @@ from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi -class Test_C002_AddShoppingBagAndSettlePayment(unittest.TestCase): +class Test_C004_NonVipAddMemberPproductsForPurchase(unittest.TestCase): '''@Date:: 2024/11/15 @Author:: Arthur Wu @Desc:: - [购物车客户端] 加购无优惠商品并试算验证 - 1、武商测试环境,普通无优惠商品inputcode为: - 6924743915848 + [购物车客户端] 加购会员商品并结算验证 + 1、武商测试环境,会员有优惠商品inputcode为: + !!!!会员有优惠商品暂未提供 ''' def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi() + # 会员有优惠商品暂未提供 + self.vip_goods_inputcode = "6924743915848" # 乐事薯片 + self.vip_goods_inputcode = "6925303796426" # 统一番茄牛肉面 - @allure.story('[购物车客户端] 加购无优惠商品并试算验证-01') - def test_C00201_AddShoppingBagAndSettlePayment(self): - allure.dynamic.description("描述:加购无优惠商品") + @allure.story('[场景测试] 004-非会员加购会员商品并结算验证-01') + def test_C004_NonVipAddMemberPproductsForPurchase(self): + allure.dynamic.description("描述:非会员加购会员有优惠商品") 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:获取商品信息") - GoodsInfoData = self.ymc.get_goods_info(InputCode=6924743915848) - allure.step("步骤4:添加无优惠商品") - self.ymc.add_retire_purchase(GoodsInfoData, 5, LoginData) + 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) + self.ymc.get_cart_goods_info([GoodsInfoData]) allure.step("步骤6:请求订单结算") self.ymc.request_order_settlement(LoginData) diff --git a/YiMao/scripts/BusiScenarios/test_C005_NonVipAddMultipleItemsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C005_NonVipAddMultipleItemsForPurchase.py new file mode 100644 index 0000000..79c7449 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_C005_NonVipAddMultipleItemsForPurchase.py @@ -0,0 +1,47 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 游客登录,加购多件商品并结算 +# @Date:: 2021-05-10 16:30:23 +import unittest,allure,time +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi + + +class Test_C005_NonVipAddMultipleItemsForPurchase(unittest.TestCase): + '''@Date:: 2024/11/15 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] 加购多件商品并结算 验证 + 1、武商测试环境,多件商品的 inputcode 分别为: + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi() + self.vip_goods_inputcode1 = "6924743915848" # 乐事薯片 + self.vip_goods_inputcode2 = "6925303796426" # 统一番茄牛肉面 + + @allure.story('[场景测试] 005-非会员加购会员商品并结算验证') + def test_C005_NonVipAddMultipleItemsForPurchase(self): + allure.dynamic.description("描述:非会员加购会员有优惠商品") + 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:获取商品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) + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_C006_NonVipAddDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_C006_NonVipAddDiscountedProductsForPurchase.py new file mode 100644 index 0000000..3528690 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_C006_NonVipAddDiscountedProductsForPurchase.py @@ -0,0 +1,45 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 游客登录,加购打折商品并结算 +# @Date:: 2021-05-10 16:30:22 +import unittest,allure,time +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi + + +class Test_C006_NonVipAddDiscountedProductsForPurchaset(unittest.TestCase): + '''@Date:: 2024/11/15 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] 加购打折商品并结算 验证 + 1、武商测试环境,会员有优惠商品inputcode为: + !!!!折扣商品暂未提供 + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi() + # 折扣商品暂未提供 + self.vip_goods_inputcode1 = "6924743915848" # 乐事薯片 + + @allure.story('[场景测试] 006-非会员加购打折商品并结算-01') + def test_C006_NonVipAddDiscountedProductsForPurchase(self): + allure.dynamic.description("描述:非会员加购打折商品并结算") + 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=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) + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_C007_NonVipAddPromotionalWhitelistProducts.py b/YiMao/scripts/BusiScenarios/test_C007_NonVipAddPromotionalWhitelistProducts.py new file mode 100644 index 0000000..c45e336 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_C007_NonVipAddPromotionalWhitelistProducts.py @@ -0,0 +1,54 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @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.businessFunc.ServiceApiLib import YMServiceApi + + +class Test_C007_NonVipAddPromotionalWhitelistProducts(unittest.TestCase): + '''@Date:: 2024/11/15 + @Author:: Arthur Wu + @Desc:: test_C007_NonVipAddPromotionalWhitelistProducts + [购物车客户端] 加购促销白名单商品并结算 验证 + 1、武商测试环境,促销白名单商品inputcode为: + 6925303796426 + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi() + self.yms = YMServiceApi() + # 促销白名单商品暂未提供 + + @allure.story('[场景测试] 007-非会员加购促销白名单商品并结算') + def test_C007_NonVipAddPromotionalWhitelistProducts(self): + allure.dynamic.description("描述:非会员加购促销白名单商品并结算") + allure.step("[前置条件]:先调用管理平台接口,将指定商品添加到促销白名单中") + GoodsInfo = {"GoodsInputcode": "6925303796426", "GoodsName": "统一茄皇蕃茄牛肉面"} + MarketAndStoreInfo = {"MarketId": 50, "StoreId": 29} + self.yms.add_promotional_product_whitelist(GoodsInfo, MarketAndStoreInfo) + + 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() + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_C008_NonVipAddWeightToTheProduct.py b/YiMao/scripts/BusiScenarios/test_C008_NonVipAddWeightToTheProduct.py new file mode 100644 index 0000000..ebe10cf --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_C008_NonVipAddWeightToTheProduct.py @@ -0,0 +1,55 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 游客登录,加购重量放通商品并结算 +# @Date:: 2021-05-10 16:30:22 +import unittest,allure,time +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.businessFunc.ServiceApiLib import YMServiceApi + + +class Test_C008_NonVipAddWeightToTheProduct(unittest.TestCase): + '''@Date:: 2024/11/15 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] 加购重量放通商品并结算 验证 + 1、武商测试环境,重量放通商品inputcode为: + 6924743915848 + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi() + self.yms = YMServiceApi() + # 重量放通白名单商品暂未提供 + + @allure.story('[场景测试] 008-非会员加购重量放通商品并结算') + def test_C008_NonVipAddWeightToTheProduct(self): + allure.dynamic.description("描述:非会员加购重量放通商品并结算") + allure.step("[前置条件]:先调用管理平台接口,将指定商品添加到重量放通白名单中") + GoodsInfo = {"GoodsInputcode": "6924743915848", "GoodsName": "乐事无限翡翠黄瓜味薯片"} + MarketAndStoreInfo = {"MarketId": 50, "StoreId": 29} + self.yms.add_weight_to_whitelist(GoodsInfo, MarketAndStoreInfo) + + ''' 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() + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file