diff --git a/YiMao/ZeroLib/test_CAnon016_.py b/YiMao/ZeroLib/test_CAnon016_.py deleted file mode 100644 index 985eed3..0000000 --- a/YiMao/ZeroLib/test_CAnon016_.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 加购计件商品,并退购 -# @Date:: 2024/11/21 diff --git a/YiMao/ZeroLib/test_CAnon017_.py b/YiMao/ZeroLib/test_CAnon017_.py deleted file mode 100644 index 04436de..0000000 --- a/YiMao/ZeroLib/test_CAnon017_.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 加购计重商品,并结算 -# @Date:: 2024/11/21 diff --git a/YiMao/ZeroLib/test_CAnon018_.py b/YiMao/ZeroLib/test_CAnon018_.py deleted file mode 100644 index e18a3ce..0000000 --- a/YiMao/ZeroLib/test_CAnon018_.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 加购计重商品,并退购 -# @Date:: 2024/11/21 diff --git a/YiMao/ZeroLib/test_CAnon019_.py b/YiMao/ZeroLib/test_CAnon019_.py index 6326b67..b631a56 100644 --- a/YiMao/ZeroLib/test_CAnon019_.py +++ b/YiMao/ZeroLib/test_CAnon019_.py @@ -1,5 +1,65 @@ # !/usr/bin/python # -*- coding: utf-8 -*- # @Author:: Arthur Wu -# @Description:: 加购1件重量待核验商品,无法结算 -# @Date:: 2024/11/21 +# @Description:: 匿名登录,加购1件重量待核验商品,无法结算 +# @Date:: 2024/11/22 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Anon019-匿名登录,加购1件重量待核验商品,无法结算" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CAnon019(unittest.TestCase): + f'''@Date:: 2024/11/15 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.piece_rate_goods = PieceRateGoods["GoodsInputcode"] + + def test_CAnon019(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.piece_rate_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + + # allure.step("\n步骤5:退购一件商品") + # GetGoodsInfoList = [GetGoodsInfoResp_01] + # self.ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp) + + allure.step("步骤6:获取购物车商品信息") + LOGGER.info(f"---获取购物车商品信息-1") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤7:请求订单结算") + LOGGER.info(f"---请求订单结算-1") + self.ymc.request_order_settlement(LoginData) + + allure.step("步骤8:核验商品") + self.ymc.verify_the_goods_through_verification() + + allure.step("步骤6:获取购物车商品信息") + LOGGER.info(f"---获取购物车商品信息-2") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤7:请求订单结算") + LOGGER.info(f"---请求订单结算-2") + self.ymc.request_order_settlement(LoginData) + + else: + LOGGER.info(f"---商品 {PieceRateGoods} 不存在") + pytest.fail(f"---商品 {PieceRateGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/ZeroLib/test_CVip015_.py b/YiMao/ZeroLib/test_CVip015_.py deleted file mode 100644 index 1632c67..0000000 --- a/YiMao/ZeroLib/test_CVip015_.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 加购计件商品,并结算 -# @Date:: 2024/11/21 diff --git a/YiMao/ZeroLib/test_CVip016_.py b/YiMao/ZeroLib/test_CVip016_.py deleted file mode 100644 index 985eed3..0000000 --- a/YiMao/ZeroLib/test_CVip016_.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 加购计件商品,并退购 -# @Date:: 2024/11/21 diff --git a/YiMao/ZeroLib/test_CVip017_.py b/YiMao/ZeroLib/test_CVip017_.py deleted file mode 100644 index 04436de..0000000 --- a/YiMao/ZeroLib/test_CVip017_.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 加购计重商品,并结算 -# @Date:: 2024/11/21 diff --git a/YiMao/ZeroLib/test_CVip018_.py b/YiMao/ZeroLib/test_CVip018_.py deleted file mode 100644 index e18a3ce..0000000 --- a/YiMao/ZeroLib/test_CVip018_.py +++ /dev/null @@ -1,5 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# @Author:: Arthur Wu -# @Description:: 加购计重商品,并退购 -# @Date:: 2024/11/21 diff --git a/YiMao/ZeroLib/test_CVip019_.py b/YiMao/ZeroLib/test_CVip019_.py index 6326b67..1c358d3 100644 --- a/YiMao/ZeroLib/test_CVip019_.py +++ b/YiMao/ZeroLib/test_CVip019_.py @@ -2,4 +2,4 @@ # -*- coding: utf-8 -*- # @Author:: Arthur Wu # @Description:: 加购1件重量待核验商品,无法结算 -# @Date:: 2024/11/21 +# @Date:: 2024/11/22 diff --git a/YiMao/businessFunc/ClientApiLib.py b/YiMao/businessFunc/ClientApiLib.py index 2680be2..8b787bd 100644 --- a/YiMao/businessFunc/ClientApiLib.py +++ b/YiMao/businessFunc/ClientApiLib.py @@ -12,13 +12,11 @@ class YMClientApi(object): self.Domain = "https://api.test.yimaogo.com/cart" self.headerss = SignatureYM2(ShoppingCartMac)._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}") @@ -34,7 +32,6 @@ class YMClientApi(object): 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" @@ -80,6 +77,7 @@ class YMClientApi(object): logging.info("========== [获取商品信息] get_goods_info ==========") payload = {} url = self.Domain+"/v2/shopping/{inputCode}".replace("{inputCode}", str(InputCode)) + logging.info(f"\n-----------获取商品信息url:{url}\n") response = requests.request("GET", url, headers=self.headerss, data=payload) logging.info(f"-----------接口返回状态码:{response.status_code}") logging.info(f"-----------接口返回数据:{response.json()}\n\n") @@ -101,7 +99,6 @@ class YMClientApi(object): "orderNo": LoginData["data"][0]["orderNo"] }, indent=4, ensure_ascii=False) url = self.Domain+"/v2/shopping/add/retire/purchase" - logging.info(f"---加购商品请求体payload: {payload}---") response = requests.request("POST", url, headers=self.headerss, data=payload) logging.info(f"-----------接口返回状态码:{response.status_code}") logging.info(f"-----------接口返回数据:{response.json()}\n\n") @@ -247,10 +244,11 @@ class YMClientApi(object): for goods_data in GoodsDataList: goods_dict = {} goods_dict["inputCode"] = goods_data["data"]["inputCode"] - goods_dict["qty"] = goods_data["data"]["qty"] + goods_dict["qty"] = int(float((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}) + payload = json.dumps({"goodsParamList": goods_param_lList}, indent=4, ensure_ascii=False) + logging.info(f"-----------请求体为:{payload}") url = self.Domain+"/v2/shopping/cart/goods/info" response = requests.request("POST", url, headers=self.headerss, data=payload) logging.info(f"-----------接口返回状态码:{response.status_code}") @@ -270,6 +268,19 @@ class YMClientApi(object): logging.info(f"-----------接口返回数据:{response.json()}\n\n") return response.json() + def verify_the_goods_through_verification(self): + logging.info("========== [验证商品通过验货] ==========") + payload = json.dumps({ + "manualId": 65, + "type": 1, + "barcodes": [] + }) + url = self.Domain+"/v1/check/goods/update" + 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() + if __name__ == '__main__': diff --git a/YiMao/businessFunc/ServiceApiLib.py b/YiMao/businessFunc/ServiceApiLib.py index 45817e9..ac2ea4f 100644 --- a/YiMao/businessFunc/ServiceApiLib.py +++ b/YiMao/businessFunc/ServiceApiLib.py @@ -14,7 +14,6 @@ class YMServiceApi(object): self.Domain = "https://api.test.yimaogo.com/" self.headerss = SignatureYM().return_headers() - ''' 1-广告模块 ''' def publish_ad(self, ADDetailList, MarketAndStoreDetail): logging.info("========== [发布广告] ==========") def __publish(ADDetail, MarketAndStoreDetail): @@ -111,11 +110,92 @@ class YMServiceApi(object): logging.info(f"---接口返回状态码为:: {response.status_code}") logging.info(f"---接口返回体为:: {response.json()}\n\n") + def approved_abnormal_products(self, MarketAndStoreInfo): + logging.info("========== [审核通过异常商品] ==========") + auth_token_b = self.headerss["Authorization"] + print(f"-----------headerss:: \n{self.headerss}\n") + print(f"-----------auth_token_b:: \n{auth_token_b}\n") + print(f"-----------auth_token_b:: \n{type(auth_token_b)}\n") + + # 1-查询 + url = self.Domain + "admin/check_goods/list" + get_abnormal_list_payload = json.dumps({ + "page": 1, + "limit": 10, + "query": { + "order": {"createdAt": "desc"}, + "where": { + "marketId": {"eq": MarketAndStoreInfo["putMarketId"]}, + "storeId": {"eq": MarketAndStoreInfo["putStoreId"][0]}, + "sessionState": {"in": [1, 2, 3, 4, 5, 6, 7]}, + "state": {"eq": 0} + } + } + }) + abnormal_list_resp = requests.request("POST", url, + headers=self.headerss, data=get_abnormal_list_payload) + print(f"-----------查询异常待处理商品返回结果为:: \n{abnormal_list_resp.json()}\n\n") + logging.info(f"-----------接口返回状态码:{abnormal_list_resp.status_code}") + logging.info(f"-----------接口返回数据:{abnormal_list_resp.json()}\n\n") + if abnormal_list_resp.json()["data"]["data"] != []: + abnormal_id = abnormal_list_resp.json()["data"]["data"][0]["id"] + num_val = abnormal_list_resp.json()["data"]["data"][0]["num"] + # 2-审核通过 + # url2 = self.Domain + ( + url2 = ('https://api.test.yimaogo.com/' + ( + "admin/check_goods/change/state/" + "{abnormal_id}?state=1&num={Num}&update=true&promotion=false" + # "{abnormal_id}" + ).replace("{abnormal_id}", str(abnormal_id)). + replace("{Num}", str(num_val))) + # print(f"-----------headers:: \n{self.headerss}\n") + print(f"-----------url2:: \n{url2}\n") + + try: + auth_token_b = self.headerss["Authorization"] + auth_token_c = 'Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImNlcnQtYnVpbHQtaW4iLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiOTU1Nzk3NjVlNGZlOTFhZjk5NjIiXSwiYXZhdGFyIjoiaHR0cHM6Ly9zdGF0aWMtbGVnYWN5LmRpbmd0YWxrLmNvbS9tZWRpYS9sQURQRDRQdkgxQ0Z6R1BOQWd6TkFlQV80ODBfNTI0LmpwZyIsImRpc3BsYXlOYW1lIjoi5ZC05Zu95b69IiwiZW1haWwiOiJ3dWd1b2h1aUBpZWVtb28uY29tIiwiZXhwIjoxNzMyODQzODQxLCJpYXQiOjE3MzIyMzkwNDEsImlkIjoiUTJwcVJlVjNQRUViaVM5OGlTaVA4ZUVDZ2lFaUUiLCJpc3MiOiJodHRwczovL2F1dGgueWltYW9nby5jb20iLCJqdGkiOiJhZG1pbi9iZjk0MDFhMi1mZDIxLTRjODgtOWZkMS0yNGVlZWM0MjdmMmYiLCJuYW1lIjoiMDI5NiIsIm5iZiI6MTczMjIzOTA0MSwibm9uY2UiOiIiLCJvd25lciI6ImllZW1vbyIsInNjb3BlIjoicHJvZmlsZSIsInN1YiI6IlEycHFSZVYzUEVFYmlTOThpU2lQOGVFQ2dpRWlFIiwidGFnIjoiIiwidG9rZW5UeXBlIjoiYWNjZXNzLXRva2VuIn0.MEXmbdk3QOitECq7K4qG5BOy0K7pecJxTQVNrJq8a5VllNLTmfnsCWs_UswiF4-hrf7KvMj71TKI3xcMLPZDPTYee4LKi3npXrSHtuF9yWef9xY3841KEDHUc_RwNMlqFukVWIH3c-TL3M5XVqvY_ccqxPVG00ArRuXemkFsF7YoOsBzqMBR5oZdTw4vdZBjv07vXPvX-D8oQ1AR2Ib4jZxifBCwGB00GqFrQaNKGTuzaEo_nAXiZ3Xd6GBO5GywBIZ6-60J9PSf4VTZzKdxM16DoQoRrZUzLgxVmuxYo1g9OrQt3FQEPH2GwiPRRNezZKOCJOkU5MY-ZbxAizK5OkFn96ozbkiTKDqlUfkPASZWWX2XgVTLdaoRVltBIGDI03OzOJgiN4ogmz4uOyfeAxmgNPYyFoCclS3rKyCAWNPthY4R5R-AmkZAr1Lpu2NkSlxpCAiDLuzITE2POaG2XFGpAfn2OYeSJWxJhx2twOSFwu4zG4-yGD_AiQKXuxpYpLQbFfIL3d3sJ9dM8Wom4nTdh4rQDWVT0ed1Pc77NxSqMWlAviszaGU_V9deY-JqmtOwvw4p7lmAmr4yeB_-7fdKTXfGyEj9zy863Mzj9zZlPVr-ZB6RjvgqI8YK8A1g-ggjRL5OFOwVt2SP59qrAkUfpgAQXj1vN_ias1LhlJU', + + print(f"-----------auth_token_c:: \n{auth_token_b}\n") + print(f"-----------auth_token_c:: \n{type(auth_token_b)}\n") + # payload = "" + # headers = { + # 'Authorization': str(auth_token_c[0]), + # 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', + # 'authority': 'api.test.yimaogo.com', + # 'Accept': '*/*', + # 'Origin': 'https://dashboard.test.yimaogo.com', + # 'Referer': 'https://dashboard.test.yimaogo.com/', + # 'sec-ch-ua': '"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"', + # 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', + # 'Date': 'Fri, 22 Nov 2024 07:28:39 GMT', + # 'server': 'APISIX/3.8.0', + # 'Content-Type': 'application/json', + # 'Host': 'api.test.yimaogo.com', + # 'Connection': 'keep-alive' + # } + # time.sleep(1) + # response = requests.request("GET", url2, headers=headers, data=payload) + # response.raise_for_status() # 检查请求是否成功 + # logging.info(f"-----------接口返回状态码:{response.status_code}") + # logging.info(f"-----------接口返回数据:{response.json()}\n\n") + # print(f"-----------接口返回数据:\n{response.json()}\n\n") + except requests.exceptions.RequestException as e: + logging.error(f"请求失败: {e}") + + # if response.json()["msg"] == '成功': + # logging.info("---审核通过异常商品成功!") + # else: + # logging.error("---审核通过异常商品失败!") + # else: + # logging.info("---未查询到待核验的异常商品!") + + + + + if __name__ == '__main__': yms = YMServiceApi() 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 + MarketAndStoreDetails = {"putMarketId": 50, "putStoreId": ["69"]} + yms.approved_abnormal_products(MarketAndStoreDetails) \ No newline at end of file diff --git a/YiMao/data/WuShangSceneTestData.py b/YiMao/data/WuShangSceneTestData.py index a1f4fb2..9452d1b 100644 --- a/YiMao/data/WuShangSceneTestData.py +++ b/YiMao/data/WuShangSceneTestData.py @@ -42,7 +42,7 @@ SaleGoodsInputCode = "9588856298051" # 濠品轩燕麦酥 PromotionalWhitelistGoods = {"GoodsInputcode": "9588856298051", "GoodsName": "濠品轩燕麦酥"} ''' -重量放通白名单 ''' WeightToWhitelistGoods = {"GoodsInputcode": "6922024730036", "GoodsName": "大白兔奶糖"} -''' -散称商品 ''' +''' -散称计重商品 ''' BulkGoods = {"GoodsInputcode": "2934431009517", "GoodsName": "阿克苏苹果"} ''' -计件商品 ''' PieceRateGoods = {"GoodsInputcode": "2910551005806", "GoodsName": "优选大白菜秧"} diff --git a/YiMao/data/前后端联测业务场景梳理.xlsx b/YiMao/data/前后端联测业务场景梳理.xlsx index 822c648..0b18aa2 100644 Binary files a/YiMao/data/前后端联测业务场景梳理.xlsx and b/YiMao/data/前后端联测业务场景梳理.xlsx differ diff --git a/YiMao/scripts/BusiScenarios/test_CAnon002_AddNonDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CAnon002_AddNonDiscountedProductsForPurchase.py index 5a7205d..2099348 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon002_AddNonDiscountedProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon002_AddNonDiscountedProductsForPurchase.py @@ -22,7 +22,7 @@ class Test_CAnon002(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - self.NormalGoodsInputcode01 = NormalGoodsInputcode01 # 乐事薯片 + self.NormalGoodsInputcode01 = NormalGoodsInputcode01 def test_CAnon002_AddNonDiscountedProductsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon003_AddMemberProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CAnon003_AddMemberProductsForPurchase.py index f494e09..b4a3a81 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon003_AddMemberProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon003_AddMemberProductsForPurchase.py @@ -22,8 +22,7 @@ class Test_CAnon003(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - # 会员有优惠商品暂未提供 - self.vip_goods_inputcode = VipGoodsInputcode # 统一番茄牛肉面 + self.vip_goods_inputcode = VipGoodsInputcode def test_CAnon003_AddMemberProductsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon004_AddMultipleItemsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CAnon004_AddMultipleItemsForPurchase.py index 0b64614..4cd59cc 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon004_AddMultipleItemsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon004_AddMultipleItemsForPurchase.py @@ -21,8 +21,8 @@ class Test_CAnon004(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - self.goods_inputcode1 = NormalGoodsInputcode01 # 乐事薯片 - self.goods_inputcode2 = NormalGoodsInputcode02 # 统一番茄牛肉面 + self.goods_inputcode1 = NormalGoodsInputcode01 + self.goods_inputcode2 = NormalGoodsInputcode02 def test_CAnon004_AddMultipleItemsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon005_AddDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CAnon005_AddDiscountedProductsForPurchase.py index e35b0a0..376b091 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon005_AddDiscountedProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon005_AddDiscountedProductsForPurchase.py @@ -22,8 +22,7 @@ class Test_CAnon005(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - # 折扣商品暂未提供 - self.sale_goods_inputCode = SaleGoodsInputCode # 乐事薯片 + self.sale_goods_inputCode = SaleGoodsInputCode def test_CAnon005_AddDiscountedProductsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon006_AddPromotionalWhitelistProducts.py b/YiMao/scripts/BusiScenarios/test_CAnon006_AddPromotionalWhitelistProducts.py index b926974..ccf8f83 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon006_AddPromotionalWhitelistProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon006_AddPromotionalWhitelistProducts.py @@ -24,7 +24,6 @@ class Test_CAnon006(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 促销白名单商品暂未提供 self.promotional_whitelist_goods = PromotionalWhitelistGoods self.market_and_store_info = { "MarketId": MarketAndStoreDetails["putMarketId"], diff --git a/YiMao/scripts/BusiScenarios/test_CAnon007_AddWeightToTheProduct.py b/YiMao/scripts/BusiScenarios/test_CAnon007_AddWeightToTheProduct.py index 30c3b2b..da1c534 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon007_AddWeightToTheProduct.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon007_AddWeightToTheProduct.py @@ -24,7 +24,6 @@ class Test_CAnon007(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 重量放通白名单商品暂未提供 self.weight_to_whitelist_goods = WeightToWhitelistGoods self.market_and_store_info = { "MarketId": MarketAndStoreDetails["putMarketId"], diff --git a/YiMao/scripts/BusiScenarios/test_CAnon008_ReturnShoppingBag.py b/YiMao/scripts/BusiScenarios/test_CAnon008_ReturnShoppingBag.py index 8d7eada..fe21be7 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon008_ReturnShoppingBag.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon008_ReturnShoppingBag.py @@ -21,8 +21,8 @@ class Test_CAnon008(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - self.shoppingbag_mid = GoodsBagInputcode_mid # 乐事薯片 - self.shoppingbag_max = GoodsBagInputcode_max # 统一番茄牛肉面 + self.shoppingbag_mid = GoodsBagInputcode_mid + self.shoppingbag_max = GoodsBagInputcode_max def test_CAnon008_ReturnShoppingBag(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon009_ReturnPurchaseOfOrdinaryGoods.py b/YiMao/scripts/BusiScenarios/test_CAnon009_ReturnPurchaseOfOrdinaryGoods.py index 2386470..351b7b8 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon009_ReturnPurchaseOfOrdinaryGoods.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon009_ReturnPurchaseOfOrdinaryGoods.py @@ -21,8 +21,8 @@ class Test_CAnon009(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - self.goods_01 = NormalGoodsInputcode01 # 乐事薯片 - self.goods_02 = NormalGoodsInputcode02 # 统一番茄牛肉面 + self.goods_01 = NormalGoodsInputcode01 + self.goods_02 = NormalGoodsInputcode02 def test_CAnon009_ReturnPurchaseOfOrdinaryGoods(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon010_ReturnOfMemberProducts.py b/YiMao/scripts/BusiScenarios/test_CAnon010_ReturnOfMemberProducts.py index baa3d7c..9628aef 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon010_ReturnOfMemberProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon010_ReturnOfMemberProducts.py @@ -21,8 +21,8 @@ class Test_CAnon010(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - self.vip_goods_01 = VipGoodsInputcode # 乐事薯片 - self.vip_goods_02 = VipGoodsInputcode02 # 统一番茄牛肉面 + self.vip_goods_01 = VipGoodsInputcode + self.vip_goods_02 = VipGoodsInputcode02 def test_CAnon010_ReturnOfMemberProducts(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon011_ReturnOneItemFromMultiplePurchases.py b/YiMao/scripts/BusiScenarios/test_CAnon011_ReturnOneItemFromMultiplePurchases.py index d28d109..71c820f 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon011_ReturnOneItemFromMultiplePurchases.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon011_ReturnOneItemFromMultiplePurchases.py @@ -21,8 +21,8 @@ class Test_CAnon011(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - self.goods_inputcode1 = NormalGoodsInputcode01 # 乐事薯片 - self.goods_inputcode2 = NormalGoodsInputcode02 # 统一番茄牛肉面 + self.goods_inputcode1 = NormalGoodsInputcode01 + self.goods_inputcode2 = NormalGoodsInputcode02 def test_CAnon011_ReturnOneItemFromMultiplePurchases(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon012_ReturnOfDiscountedProducts.py b/YiMao/scripts/BusiScenarios/test_CAnon012_ReturnOfDiscountedProducts.py index 8edaf6d..9c1dd29 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon012_ReturnOfDiscountedProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon012_ReturnOfDiscountedProducts.py @@ -21,7 +21,7 @@ class Test_CAnon012(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - self.sale_goods_inputCode = SaleGoodsInputCode # 乐事薯片 + self.sale_goods_inputCode = SaleGoodsInputCode def test_CAnon012_ReturnOfDiscountedProducts(self): allure.dynamic.description(f"描述:{DescName}") diff --git a/YiMao/scripts/BusiScenarios/test_CAnon013_ReturnPromotionWhitelistProducts.py b/YiMao/scripts/BusiScenarios/test_CAnon013_ReturnPromotionWhitelistProducts.py index 92065a1..9f91544 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon013_ReturnPromotionWhitelistProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon013_ReturnPromotionWhitelistProducts.py @@ -23,7 +23,6 @@ class Test_CAnon013(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 促销白名单商品暂未提供 self.promotional_whitelist_goods = PromotionalWhitelistGoods self.market_and_store_info = { "MarketId": MarketAndStoreDetails["putMarketId"], @@ -69,15 +68,15 @@ class Test_CAnon013(unittest.TestCase): else: LOGGER.info(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在") pytest.fail(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在") - - allure.step("[后置处理]:删除添加的促销白名单商品") - self.yms.delete_whitelist_goods() else: LOGGER.info(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " f"到促销白名单失败") pytest.fail(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " - f"到促销白名单失败") + f"到促销白名单失败") + def tearDown(self) -> None: + 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_CAnon014_ReturnWeightOfTheProducte.py b/YiMao/scripts/BusiScenarios/test_CAnon014_ReturnWeightOfTheProducte.py index e3a5dea..ac3dede 100644 --- a/YiMao/scripts/BusiScenarios/test_CAnon014_ReturnWeightOfTheProducte.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon014_ReturnWeightOfTheProducte.py @@ -23,7 +23,6 @@ class Test_CAnon014(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 重量放通白名单商品暂未提供 self.weight_to_whitelist_goods = WeightToWhitelistGoods self.market_and_store_info = { "MarketId": MarketAndStoreDetails["putMarketId"], @@ -69,15 +68,15 @@ class Test_CAnon014(unittest.TestCase): else: LOGGER.info(f"---商品 {self.weight_to_whitelist_goods["GoodsInputcode"]} 不存在") pytest.fail(f"---商品 {self.weight_to_whitelist_goods['GoodsInputcode']} 不存在") - - allure.step("[后置处理]:删除添加的重量放通白名单商品") - self.yms.delete_weight_whitelist_goods() else: LOGGER.info(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " f"到重量放通白名单失败") pytest.fail(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " f"到重量放通白名单失败") + def tearDown(self) -> None: + allure.step("[后置处理]:删除添加的重量放通白名单商品") + self.yms.delete_weight_whitelist_goods() if __name__ == '__main__': unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/ZeroLib/test_CAnon015_.py b/YiMao/scripts/BusiScenarios/test_CAnon015_AddPieceRateProductsForPurchase.py similarity index 51% rename from YiMao/ZeroLib/test_CAnon015_.py rename to YiMao/scripts/BusiScenarios/test_CAnon015_AddPieceRateProductsForPurchase.py index e652732..3fa949a 100644 --- a/YiMao/ZeroLib/test_CAnon015_.py +++ b/YiMao/scripts/BusiScenarios/test_CAnon015_AddPieceRateProductsForPurchase.py @@ -1,53 +1,46 @@ # !/usr/bin/python # -*- coding: utf-8 -*- # @Author:: Arthur Wu -# @Description:: 匿名加购计件商品,并结算 -# @Date:: 2024/11/21 +# @Description:: 匿名登录,加购计件商品,并结算 +# @Date:: 2024/11/22 import unittest,allure,time,pytest from configs.globalObj import LOGGER from YiMao.businessFunc.ClientApiLib import YMClientApi from YiMao.data.WuShangSceneTestData import * -DescName = "Anon015-匿名加购计件商品,并结算" +DescName = "Anon015-匿名登录加购计件商品,并结算" @allure.story(f'[场景测试] {DescName}验证') class Test_CAnon015(unittest.TestCase): - f'''@Date:: 2024/11/15 + f'''@Date:: 2024/11/22 @Author:: Arthur Wu @Desc:: [购物车客户端] {DescName} - 1、步骤 - 1)加购计件或计重商品,返回为待核验商品 - 2)点击结算,校验返回结果“不可结算” - 3)调用管理平台“待核验商品-审核通过”接口 - 4)点击结算,校验返回结果“可结算” ''' def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - # 会员有优惠商品暂未提供 - # self.vip_goods_inputcode = VipGoodsInputcode # 统一番茄牛肉面 - self.vip_goods_inputcode = "124312354" # 统一番茄牛肉面 + self.piece_rate_goods = PieceRateGoods["GoodsInputcode"] def test_CAnon015(self): - allure.dynamic.description(f"描述:{DescName}") + allure.dynamic.description(f"描述:{DescName}\n") 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(self.vip_goods_inputcode) - if GoodsInfoData['msg'] != '加购商品不存在': + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.piece_rate_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': allure.step("步骤4:添加会员有优惠商品") - self.ymc.add_cart_goods(GoodsInfoData, 1, LoginData) + self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) allure.step("步骤5:获取购物车商品信息") - self.ymc.get_cart_goods_info([GoodsInfoData]) + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) allure.step("步骤6:请求订单结算") self.ymc.request_order_settlement(LoginData) else: - LOGGER.info(f"---商品 {self.vip_goods_inputcode} 不存在") - pytest.fail(f"---商品 {self.vip_goods_inputcode} 不存在") + LOGGER.info(f"---商品 {PieceRateGoods} 不存在") + pytest.fail(f"---商品 {PieceRateGoods} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CAnon016_AddPieceRateProductsAndReturnThem.py b/YiMao/scripts/BusiScenarios/test_CAnon016_AddPieceRateProductsAndReturnThem.py new file mode 100644 index 0000000..fad3de4 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_CAnon016_AddPieceRateProductsAndReturnThem.py @@ -0,0 +1,55 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 匿名登录,加购计件商品,并退购 +# @Date:: 2024/11/22 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Anon016-匿名登录,加购计件商品,并退购" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CAnon016(unittest.TestCase): + f'''@Date:: 2024/11/22 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + 1、步骤 + 1)加购计件或计重商品 + 2)退购一件 + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.piece_rate_goods = PieceRateGoods["GoodsInputcode"] + + def test_CAnon016(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.piece_rate_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + + allure.step("\n步骤7:退购一件商品") + GetGoodsInfoList = [GetGoodsInfoResp_01] + self.ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp) + + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {PieceRateGoods} 不存在") + pytest.fail(f"---商品 {PieceRateGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_CAnon017_AddWeightBasedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CAnon017_AddWeightBasedProductsForPurchase.py new file mode 100644 index 0000000..5e53cdb --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_CAnon017_AddWeightBasedProductsForPurchase.py @@ -0,0 +1,47 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 匿名登录,加购计重商品,并结算 +# @Date:: 2024/11/22 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Anon017-匿名登录,加购计重商品,并结算" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CAnon017(unittest.TestCase): + f'''@Date:: 2024/11/22 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.bulk_goods = BulkGoods["GoodsInputcode"] + + def test_CAnon017(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.bulk_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {BulkGoods} 不存在") + pytest.fail(f"---商品 {BulkGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_CAnon018_PurchaseWeightedGoodsAndReturnThem.py b/YiMao/scripts/BusiScenarios/test_CAnon018_PurchaseWeightedGoodsAndReturnThem.py new file mode 100644 index 0000000..8787841 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_CAnon018_PurchaseWeightedGoodsAndReturnThem.py @@ -0,0 +1,55 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 匿名登录,加购计重商品,并退购 +# @Date:: 2024/11/21 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Anon018-匿名登录,加购计重商品,并退购" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CAnon018(unittest.TestCase): + f'''@Date:: 2024/11/15 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + 1、步骤 + 1)加购计件或计重商品 + 2)退购一件 + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.bulk_goods = BulkGoods["GoodsInputcode"] + + def test_CAnon018(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.bulk_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + + allure.step("\n步骤5:退购一件商品") + GetGoodsInfoList = [GetGoodsInfoResp_01] + self.ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp) + + allure.step("步骤6:获取购物车商品信息") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤7:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {BulkGoods} 不存在") + pytest.fail(f"---商品 {BulkGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_CNoLogin001_CheckADs.py b/YiMao/scripts/BusiScenarios/test_CNoLogin001_CheckADs.py index 8218dc1..878bfc3 100644 --- a/YiMao/scripts/BusiScenarios/test_CNoLogin001_CheckADs.py +++ b/YiMao/scripts/BusiScenarios/test_CNoLogin001_CheckADs.py @@ -24,13 +24,17 @@ class Test_CNoLogin001(unittest.TestCase): def test_CNoLogin001_CheckADs(self): allure.dynamic.description(f"描述:{DescName}") AdListData = self.ymc.get_ads_list() - if "error_msg" not in AdListData: - adIdList = [] - for ad in AdListData['data']: - adIdList.append(ad['id']) - LOGGER.info(f"---adIdList: {adIdList}---\n") - for adId in adIdList: - self.ymc.query_ad_detail(str(adId)) + if AdListData['data'] != []: + if "error_msg" not in AdListData: + adIdList = [] + for ad in AdListData['data']: + adIdList.append(ad['id']) + LOGGER.info(f"---adIdList: {adIdList}---\n") + for adId in adIdList: + self.ymc.query_ad_detail(str(adId)) + else: + LOGGER.info(f"---该商超未配置广告---\n") + pytest.fail(f"---该商超未配置广告---\n") if __name__ == '__main__': unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_CVip001_AddShoppingBagAndSettlePayment.py b/YiMao/scripts/BusiScenarios/test_CVip001_AddShoppingBagAndSettlePayment.py index 0ea99d3..b5cb87d 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip001_AddShoppingBagAndSettlePayment.py +++ b/YiMao/scripts/BusiScenarios/test_CVip001_AddShoppingBagAndSettlePayment.py @@ -49,6 +49,7 @@ class Test_CVip001_AddShoppingBagAndSettlePayment(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---购物袋 {self.goodsbag_mid} 不存在") + pytest.fail(f"---购物袋 {self.goodsbag_mid} 不存在") def test_CVip00102_AddMaxShoppingbagsForPurchase(self): allure.dynamic.description("描述:加购大号购物袋") @@ -73,7 +74,7 @@ class Test_CVip001_AddShoppingBagAndSettlePayment(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---购物袋 {self.goodsbag_max} 不存在") - raise Exception(f"购物袋 {self.goodsbag_max} 不存在") + pytest.fail(f"购物袋 {self.goodsbag_max} 不存在") diff --git a/YiMao/scripts/BusiScenarios/test_CVip002_AddNonDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CVip002_AddNonDiscountedProductsForPurchase.py index 0b274b7..f3bc7b6 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip002_AddNonDiscountedProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CVip002_AddNonDiscountedProductsForPurchase.py @@ -23,7 +23,7 @@ class Test_CVip002(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.vip_phone_num = VIPPhoneNumber - self.NormalGoodsInputcode01 = NormalGoodsInputcode01 # 乐事薯片 + self.NormalGoodsInputcode01 = NormalGoodsInputcode01 def test_CVip002_AddNonDiscountedProductsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") @@ -48,7 +48,7 @@ class Test_CVip002(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.NormalGoodsInputcode01} 不存在") - raise Exception(f"---商品 {self.NormalGoodsInputcode01} 不存在") + pytest.fail(f"---商品 {self.NormalGoodsInputcode01} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip003_AddMemberProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CVip003_AddMemberProductsForPurchase.py index 7c41470..cee410a 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip003_AddMemberProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CVip003_AddMemberProductsForPurchase.py @@ -22,9 +22,8 @@ class Test_CVip003(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - # 会员有优惠商品暂未提供 self.vip_phone_num = VIPPhoneNumber - self.vip_goods_inputcode = VipGoodsInputcode # 统一番茄牛肉面 + self.vip_goods_inputcode = VipGoodsInputcode def test_CVip003_AddMemberProductsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") @@ -49,7 +48,7 @@ class Test_CVip003(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.vip_goods_inputcode} 不存在") - raise Exception(f"---商品 {self.vip_goods_inputcode} 不存在") + pytest.fail(f"---商品 {self.vip_goods_inputcode} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip004_AddMultipleItemsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CVip004_AddMultipleItemsForPurchase.py index abcb53f..de86783 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip004_AddMultipleItemsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CVip004_AddMultipleItemsForPurchase.py @@ -22,8 +22,8 @@ class Test_CVip004(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.vip_phone_num = VIPPhoneNumber - self.goods_inputcode1 = NormalGoodsInputcode01 # 乐事薯片 - self.goods_inputcode2 = NormalGoodsInputcode02 # 统一番茄牛肉面 + self.goods_inputcode1 = NormalGoodsInputcode01 + self.goods_inputcode2 = NormalGoodsInputcode02 def test_CVip004_AddMultipleItemsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") @@ -53,10 +53,10 @@ class Test_CVip004(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.goods_inputcode2} 不存在") - raise AssertionError(f"---商品 {self.goods_inputcode2} 不存在") + pytest.fail(f"---商品 {self.goods_inputcode2} 不存在") else: LOGGER.info(f"---商品 {self.goods_inputcode1} 不存在") - raise AssertionError(f"---商品 {self.goods_inputcode1} 不存在") + pytest.fail(f"---商品 {self.goods_inputcode1} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip005_AddDiscountedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CVip005_AddDiscountedProductsForPurchase.py index e39d351..8ebe1b9 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip005_AddDiscountedProductsForPurchase.py +++ b/YiMao/scripts/BusiScenarios/test_CVip005_AddDiscountedProductsForPurchase.py @@ -22,9 +22,8 @@ class Test_CVip005(unittest.TestCase): def setUp(self) -> None: self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) - # 折扣商品暂未提供 self.vip_phone_num = VIPPhoneNumber - self.sale_goods_inputCode = SaleGoodsInputCode # 乐事薯片 + self.sale_goods_inputCode = SaleGoodsInputCode def test_CVip005_AddDiscountedProductsForPurchase(self): allure.dynamic.description(f"描述:{DescName}") @@ -49,7 +48,7 @@ class Test_CVip005(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.sale_goods_inputCode} 不存在") - raise Exception(f"---商品 {self.sale_goods_inputCode} 不存在") + pytest.fail(f"---商品 {self.sale_goods_inputCode} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip006_AddPromotionalWhitelistProducts.py b/YiMao/scripts/BusiScenarios/test_CVip006_AddPromotionalWhitelistProducts.py index 86ff893..2579857 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip006_AddPromotionalWhitelistProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CVip006_AddPromotionalWhitelistProducts.py @@ -24,7 +24,6 @@ class Test_CVip006(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 促销白名单商品暂未提供 self.vip_phone_num = VIPPhoneNumber self.promotional_whitelist_goods = PromotionalWhitelistGoods self.market_and_store_info = { @@ -63,14 +62,14 @@ class Test_CVip006(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在") - raise Exception(f"商品 {self.promotional_whitelist_goods["GoodsInputcode"]}不存在") + pytest.fail(f"商品 {self.promotional_whitelist_goods["GoodsInputcode"]}不存在") allure.step("[后置处理]:删除添加的促销白名单商品") self.yms.delete_whitelist_goods() else: LOGGER.info(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " f"到促销白名单失败") - raise Exception(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " + pytest.fail(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " f"到促销白名单失败") diff --git a/YiMao/scripts/BusiScenarios/test_CVip007_AddWeightToTheProduct.py b/YiMao/scripts/BusiScenarios/test_CVip007_AddWeightToTheProduct.py index 9dd1ae5..ee8224e 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip007_AddWeightToTheProduct.py +++ b/YiMao/scripts/BusiScenarios/test_CVip007_AddWeightToTheProduct.py @@ -24,7 +24,6 @@ class Test_CVip007(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 重量放通白名单商品暂未提供 self.vip_phone_num = VIPPhoneNumber self.weight_to_whitelist_goods = WeightToWhitelistGoods self.market_and_store_info = { @@ -64,14 +63,14 @@ class Test_CVip007(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.weight_to_whitelist_goods["GoodsInputcode"]} 不存在") - raise Exception(f"---商品 {self.weight_to_whitelist_goods["GoodsInputcode"]} 不存在") + pytest.fail(f"---商品 {self.weight_to_whitelist_goods["GoodsInputcode"]} 不存在") allure.step("[后置处理]:删除添加的重量放通白名单商品") self.yms.delete_weight_whitelist_goods() else: LOGGER.info(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " f"到重量放通白名单失败") - raise Exception(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " + pytest.fail(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " f"到重量放通白名单失败") diff --git a/YiMao/scripts/BusiScenarios/test_CVip008_ReturnShoppingBag.py b/YiMao/scripts/BusiScenarios/test_CVip008_ReturnShoppingBag.py index a0f5486..a43289b 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip008_ReturnShoppingBag.py +++ b/YiMao/scripts/BusiScenarios/test_CVip008_ReturnShoppingBag.py @@ -22,8 +22,8 @@ class Test_CVip008(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.vip_phone_num = VIPPhoneNumber - self.shoppingbag_mid = GoodsBagInputcode_mid # 乐事薯片 - self.shoppingbag_max = GoodsBagInputcode_max # 统一番茄牛肉面 + self.shoppingbag_mid = GoodsBagInputcode_mid + self.shoppingbag_max = GoodsBagInputcode_max def test_CVip008_ReturnShoppingBag(self): allure.dynamic.description(f"描述:{DescName}") @@ -60,10 +60,10 @@ class Test_CVip008(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.shoppingbag_max} 不存在") - raise AssertionError(f"---商品 {self.shoppingbag_max} 不存在") + pytest.fail(f"---商品 {self.shoppingbag_max} 不存在") else: LOGGER.info(f"---商品 {self.shoppingbag_mid} 不存在") - raise AssertionError(f"---商品 {self.shoppingbag_mid} 不存在") + pytest.fail(f"---商品 {self.shoppingbag_mid} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip009_ReturnPurchaseOfOrdinaryGoods.py b/YiMao/scripts/BusiScenarios/test_CVip009_ReturnPurchaseOfOrdinaryGoods.py index 5396e27..0e119d8 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip009_ReturnPurchaseOfOrdinaryGoods.py +++ b/YiMao/scripts/BusiScenarios/test_CVip009_ReturnPurchaseOfOrdinaryGoods.py @@ -22,8 +22,8 @@ class Test_CVip009(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.vip_phone_num = VIPPhoneNumber - self.goods_01 = NormalGoodsInputcode01 # 乐事薯片 - self.goods_02 = NormalGoodsInputcode02 # 统一番茄牛肉面 + self.goods_01 = NormalGoodsInputcode01 + self.goods_02 = NormalGoodsInputcode02 def test_CVip009_ReturnPurchaseOfOrdinaryGoods(self): allure.dynamic.description(f"描述:{DescName}") @@ -60,10 +60,10 @@ class Test_CVip009(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.goods_02} 不存在") - raise AssertionError(f"---商品 {self.goods_02} 不存在") + pytest.fail(f"---商品 {self.goods_02} 不存在") else: LOGGER.info(f"---商品 {self.goods_01} 不存在") - raise AssertionError(f"---商品 {self.goods_01} 不存在") + pytest.fail(f"---商品 {self.goods_01} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip010_ReturnOfMemberProducts.py b/YiMao/scripts/BusiScenarios/test_CVip010_ReturnOfMemberProducts.py index b4fafa2..67b5cc2 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip010_ReturnOfMemberProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CVip010_ReturnOfMemberProducts.py @@ -22,8 +22,8 @@ class Test_CVip010(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.vip_phone_num = VIPPhoneNumber - self.vip_goods_01 = VipGoodsInputcode # 乐事薯片 - self.vip_goods_02 = VipGoodsInputcode02 # 统一番茄牛肉面 + self.vip_goods_01 = VipGoodsInputcode + self.vip_goods_02 = VipGoodsInputcode02 def test_CVip010_ReturnOfMemberProducts(self): allure.dynamic.description(f"描述:{DescName}") @@ -60,10 +60,10 @@ class Test_CVip010(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.vip_goods_02} 不存在") - raise AssertionError(f"---商品 {self.vip_goods_02} 不存在") + pytest.fail(f"---商品 {self.vip_goods_02} 不存在") else: LOGGER.info(f"---商品 {self.vip_goods_01} 不存在") - raise AssertionError(f"---商品 {self.vip_goods_01} 不存在") + pytest.fail(f"---商品 {self.vip_goods_01} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip011_ReturnOneItemFromMultiplePurchases.py b/YiMao/scripts/BusiScenarios/test_CVip011_ReturnOneItemFromMultiplePurchases.py index 320e489..5ff33be 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip011_ReturnOneItemFromMultiplePurchases.py +++ b/YiMao/scripts/BusiScenarios/test_CVip011_ReturnOneItemFromMultiplePurchases.py @@ -22,8 +22,8 @@ class Test_CVip011(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.vip_phone_num = VIPPhoneNumber - self.goods_inputcode1 = NormalGoodsInputcode01 # 乐事薯片 - self.goods_inputcode2 = NormalGoodsInputcode02 # 统一番茄牛肉面 + self.goods_inputcode1 = NormalGoodsInputcode01 + self.goods_inputcode2 = NormalGoodsInputcode02 def test_CVip011_ReturnOneItemFromMultiplePurchases(self): allure.dynamic.description(f"描述:{DescName}") @@ -60,10 +60,10 @@ class Test_CVip011(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.goods_inputcode2} 不存在") - raise AssertionError(f"---商品 {self.goods_inputcode2} 不存在") + pytest.fail(f"---商品 {self.goods_inputcode2} 不存在") else: LOGGER.info(f"---商品 {self.goods_inputcode1} 不存在") - raise AssertionError(f"---商品 {self.goods_inputcode1} 不存在") + pytest.fail(f"---商品 {self.goods_inputcode1} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip012_ReturnOfDiscountedProducts.py b/YiMao/scripts/BusiScenarios/test_CVip012_ReturnOfDiscountedProducts.py index bd1338a..59519f8 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip012_ReturnOfDiscountedProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CVip012_ReturnOfDiscountedProducts.py @@ -22,7 +22,7 @@ class Test_CVip012(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.vip_phone_num = VIPPhoneNumber - self.sale_goods_inputCode = SaleGoodsInputCode # 乐事薯片 + self.sale_goods_inputCode = SaleGoodsInputCode def test_CVip012_ReturnOfDiscountedProducts(self): allure.dynamic.description(f"描述:{DescName}") @@ -54,7 +54,7 @@ class Test_CVip012(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.sale_goods_inputCode} 不存在") - raise AssertionError(f"---商品 {self.sale_goods_inputCode} 不存在") + pytest.fail(f"---商品 {self.sale_goods_inputCode} 不存在") if __name__ == '__main__': diff --git a/YiMao/scripts/BusiScenarios/test_CVip013_ReturnPromotionWhitelistProducts.py b/YiMao/scripts/BusiScenarios/test_CVip013_ReturnPromotionWhitelistProducts.py index 592fe5e..eb9fc8d 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip013_ReturnPromotionWhitelistProducts.py +++ b/YiMao/scripts/BusiScenarios/test_CVip013_ReturnPromotionWhitelistProducts.py @@ -23,7 +23,6 @@ class Test_CVip013(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 促销白名单商品暂未提供 self.vip_phone_num = VIPPhoneNumber self.promotional_whitelist_goods = PromotionalWhitelistGoods self.market_and_store_info = { @@ -73,16 +72,16 @@ class Test_CVip013(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在") - raise Exception(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在") - - allure.step("[后置处理]:删除添加的促销白名单商品") - self.yms.delete_whitelist_goods() + pytest.fail(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在") else: LOGGER.info(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " f"到促销白名单失败") - raise Exception(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " + pytest.fail(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} " f"到促销白名单失败") + def tearDown(self) -> None: + 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_CVip014_ReturnWeightOfTheProducte.py b/YiMao/scripts/BusiScenarios/test_CVip014_ReturnWeightOfTheProducte.py index 44b84a3..1424d21 100644 --- a/YiMao/scripts/BusiScenarios/test_CVip014_ReturnWeightOfTheProducte.py +++ b/YiMao/scripts/BusiScenarios/test_CVip014_ReturnWeightOfTheProducte.py @@ -23,7 +23,6 @@ class Test_CVip014(unittest.TestCase): self.timestamp = int(time.time()) self.ymc = YMClientApi(ShoppingCartMac) self.yms = YMServiceApi() - # 重量放通白名单商品暂未提供 self.vip_phone_num = VIPPhoneNumber self.weight_to_whitelist_goods = WeightToWhitelistGoods self.market_and_store_info = { @@ -73,16 +72,16 @@ class Test_CVip014(unittest.TestCase): self.ymc.request_order_settlement(LoginData) else: LOGGER.info(f"---商品 {self.weight_to_whitelist_goods["GoodsInputcode"]} 不存在") - raise Exception(f"---商品 {self.weight_to_whitelist_goods['GoodsInputcode']} 不存在") - - allure.step("[后置处理]:删除添加的重量放通白名单商品") - self.yms.delete_weight_whitelist_goods() + pytest.fail(f"---商品 {self.weight_to_whitelist_goods['GoodsInputcode']} 不存在") else: LOGGER.info(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " f"到重量放通白名单失败") - raise Exception(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " - f"到重量放通白名单失败") + pytest.fail(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} " + f"到重量放通白名单失败") + def tearDown(self) -> None: + allure.step("[后置处理]:删除添加的重量放通白名单商品") + self.yms.delete_weight_whitelist_goods() if __name__ == '__main__': unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_CVip015_AddPieceRateProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CVip015_AddPieceRateProductsForPurchase.py new file mode 100644 index 0000000..eda3419 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_CVip015_AddPieceRateProductsForPurchase.py @@ -0,0 +1,53 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 匿名转会员登录,加购计件商品,并结算 +# @Date:: 2024/11/22 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Vip015-匿名转会员登录,加购计件商品,并结算" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CVip015(unittest.TestCase): + f'''@Date:: 2024/11/22 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.vip_phone_num = VIPPhoneNumber + self.piece_rate_goods = PieceRateGoods["GoodsInputcode"] + + def test_CVip015(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:切换会员登录") + Payload02 = {"action": 1, "code": self.vip_phone_num, "isAnon": False} + self.ymc.login_app_v2(Payload02) + + allure.step("步骤3:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.piece_rate_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {PieceRateGoods} 不存在") + pytest.fail(f"---商品 {PieceRateGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_CVip016_AddPieceRateProductsAndReturnThem.py b/YiMao/scripts/BusiScenarios/test_CVip016_AddPieceRateProductsAndReturnThem.py new file mode 100644 index 0000000..e6c2299 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_CVip016_AddPieceRateProductsAndReturnThem.py @@ -0,0 +1,61 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 匿名转会员登录,加购计件商品,并退购 +# @Date:: 2024/11/22 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Vip016-匿名转会员登录,加购计件商品,并退购" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CVip016(unittest.TestCase): + f'''@Date:: 2024/11/22 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + 1、步骤 + 1)加购计件或计重商品 + 2)退购一件 + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.vip_phone_num = VIPPhoneNumber + self.piece_rate_goods = PieceRateGoods["GoodsInputcode"] + + def test_CVip016(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:切换会员登录") + Payload02 = {"action": 1, "code": self.vip_phone_num, "isAnon": False} + self.ymc.login_app_v2(Payload02) + + allure.step("步骤3:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.piece_rate_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + + allure.step("\n步骤7:退购一件商品") + GetGoodsInfoList = [GetGoodsInfoResp_01] + self.ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp) + + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {PieceRateGoods} 不存在") + pytest.fail(f"---商品 {PieceRateGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/YiMao/scripts/BusiScenarios/test_CVip017_AddWeightBasedProductsForPurchase.py b/YiMao/scripts/BusiScenarios/test_CVip017_AddWeightBasedProductsForPurchase.py new file mode 100644 index 0000000..a44ba94 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_CVip017_AddWeightBasedProductsForPurchase.py @@ -0,0 +1,53 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 匿名转会员登录,加购计重商品,并结算 +# @Date:: 2024/11/22 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Vip017-匿名转会员登录,加购计重商品,并结算" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CVip017(unittest.TestCase): + f'''@Date:: 2024/11/22 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.vip_phone_num = VIPPhoneNumber + self.bulk_goods = BulkGoods["GoodsInputcode"] + + def test_CVip017(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:切换会员登录") + Payload02 = {"action": 1, "code": self.vip_phone_num, "isAnon": False} + self.ymc.login_app_v2(Payload02) + + allure.step("步骤3:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.bulk_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + allure.step("步骤5:获取购物车商品信息") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤6:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {BulkGoods} 不存在") + pytest.fail(f"---商品 {BulkGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/YiMao/scripts/BusiScenarios/test_CVip018_PurchaseWeightedGoodsAndReturnThem.py b/YiMao/scripts/BusiScenarios/test_CVip018_PurchaseWeightedGoodsAndReturnThem.py new file mode 100644 index 0000000..6541e38 --- /dev/null +++ b/YiMao/scripts/BusiScenarios/test_CVip018_PurchaseWeightedGoodsAndReturnThem.py @@ -0,0 +1,61 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# @Author:: Arthur Wu +# @Description:: 匿名转会员登录,加购计重商品,并退购 +# @Date:: 2024/11/22 +import unittest,allure,time,pytest +from configs.globalObj import LOGGER +from YiMao.businessFunc.ClientApiLib import YMClientApi +from YiMao.data.WuShangSceneTestData import * + + +DescName = "Vip018-匿名转会员登录,加购计重商品,并退购" +@allure.story(f'[场景测试] {DescName}验证') +class Test_CVip018(unittest.TestCase): + f'''@Date:: 2024/11/22 + @Author:: Arthur Wu + @Desc:: + [购物车客户端] {DescName} + 1、步骤 + 1)加购计件或计重商品 + 2)退购一件 + ''' + def setUp(self) -> None: + self.timestamp = int(time.time()) + self.ymc = YMClientApi(ShoppingCartMac) + self.vip_phone_num = VIPPhoneNumber + self.bulk_goods = BulkGoods["GoodsInputcode"] + + def test_CVip018(self): + allure.dynamic.description(f"描述:{DescName}\n") + 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:切换会员登录") + Payload02 = {"action": 1, "code": self.vip_phone_num, "isAnon": False} + self.ymc.login_app_v2(Payload02) + + allure.step("步骤3:获取商品信息") + GetGoodsInfoResp_01 = self.ymc.get_goods_info(self.bulk_goods) + if GetGoodsInfoResp_01['msg'] != '加购商品不存在': + allure.step("步骤4:添加会员有优惠商品") + AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData) + + allure.step("\n步骤5:退购一件商品") + GetGoodsInfoList = [GetGoodsInfoResp_01] + self.ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp) + + allure.step("步骤6:获取购物车商品信息") + self.ymc.get_cart_goods_info([GetGoodsInfoResp_01]) + allure.step("步骤7:请求订单结算") + self.ymc.request_order_settlement(LoginData) + else: + LOGGER.info(f"---商品 {BulkGoods} 不存在") + pytest.fail(f"---商品 {BulkGoods} 不存在") + + +if __name__ == '__main__': + unittest.main(verbosity=2) \ No newline at end of file diff --git a/commons/SignatureYM.py b/commons/SignatureYM.py index 89db7dc..ea7be96 100644 --- a/commons/SignatureYM.py +++ b/commons/SignatureYM.py @@ -12,7 +12,7 @@ class SignatureYM(): self.token_url = 'https://auth.yimaogo.com/api/login/oauth/access_token' def __tokens(self): - oauth = OAuth2Session(self.client_id, redirect_uri=self.redirect_uri) + oauth = OAuth2Session(client_id=self.client_id, redirect_uri=self.redirect_uri) authorization_url, state = oauth.create_authorization_url(self.authorization_base_url) token_dict = oauth.fetch_token(self.token_url, authorization_response={}, client_secret=self.client_secret) return token_dict["access_token"]