Arthur-Wu committed this file on 2024-11-25

This commit is contained in:
ieemoo 2024-11-25 17:53:55 +08:00
parent 0cf0c9d8f7
commit 1fd2bf9c4e
23 changed files with 564 additions and 278 deletions

View File

@ -1,5 +0,0 @@
# !/usr/bin/python
# -*- coding: utf-8 -*-
# @Author:: Arthur Wu
# @Description:: 会员登录,领取优惠券
# @Date:: 2024/11/21

View File

@ -104,7 +104,7 @@ class YMClientApi(object):
logging.info(f"-----------接口返回数据:{response.json()}\n\n")
return response.json()
def delete_cart_goods(self, GetGoodsInfoList, LoginData, AddGoodsResp):
def delete_cart_goods(self, GetGoodsInfoList, LoginData, AddGoodsRespList):
''' 退购 商品
:param GetGoodsInfoList:
:param LoginData:
@ -114,7 +114,9 @@ class YMClientApi(object):
import random
logging.info("========== [退购 商品] delete_cart_goods ==========")
delGoodsList, existGoodsList = [], []
for add_goods_info in AddGoodsResp["data"]["orderItemList"]:
for add_goods_resp in AddGoodsRespList:
# for add_goods_info in AddGoodsResp["data"]["orderItemList"]:
add_goods_info = add_goods_resp["data"]["orderItemList"][0]
exist_goods_dict = {}
exist_goods_dict["inputCode"] = add_goods_info["inputCode"]
exist_goods_dict["isNormalAddPurchase"] = True
@ -130,6 +132,12 @@ class YMClientApi(object):
existGoodsList.append(exist_goods_dict)
del_goods_dict = {}
delGoodsInfo = {
"inputCode": "",
"isNormalAddPurchase": True,
"qty": 1,
"weight": 0,
}
delGoodsInfo = random.choice(GetGoodsInfoList)
del_goods_dict["inputCode"] = delGoodsInfo["data"]["inputCode"]
del_goods_dict["isNormalAddPurchase"] = True
@ -148,11 +156,13 @@ class YMClientApi(object):
"existGoods": existGoodsList,
"orderNo": LoginData["data"][0]["orderNo"]
})
logging.info(f"-----------退购商品请求体为:{payload}\n")
url = self.Domain + "/v2/shopping/add/retire/purchase"
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 response.json()["msg"] == '成功':
return json.loads(payload)
def delete_shopping_bag(self, GetGoodsInfoList, LoginData, AddGoodsResp):
''' 退购 购物嗲
@ -240,14 +250,14 @@ class YMClientApi(object):
def get_cart_goods_info(self, GoodsDataList):
logging.info("========== [获取购物车商品信息] get_cart_goods_info ==========")
goods_param_lList = []
goods_param_list = []
for goods_data in GoodsDataList:
goods_dict = {}
goods_dict["inputCode"] = goods_data["data"]["inputCode"]
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}, indent=4, ensure_ascii=False)
goods_param_list.append(goods_dict)
payload = json.dumps({"goodsParamList": goods_param_list}, 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)
@ -295,6 +305,7 @@ if __name__ == '__main__':
ymc.login_app_v2(Payload02) # step4切换会员登录
GoodsInfoData = ymc.get_goods_info(InputCode=6924882486100) # step5获取商品信息 ------ 6924882486100
CouponListData = ymc.get_coupon_list() # step6获取优惠券列表
ymc.receive_coupon(CouponListData) # step7领取优惠券
ymc.query_coupon_list_user() # step8查询用户持有的优惠券列表

View File

@ -110,6 +110,40 @@ class YMServiceApi(object):
logging.info(f"---接口返回状态码为:: {response.status_code}")
logging.info(f"---接口返回体为:: {response.json()}\n\n")
def update_cart_info(self, NewStoreInfo):
'''
NewStoreInfo={
"CartMac": "b8:2d:28:04:c7:5c",
"StoreId": 69,
}
购物车MAC地址"mac": "b8:2d:28:04:c7:5c",
亿猫超市-国秀广场"storeId": 9017,
武商-梦时代"storeId": 69,
家家悦-青岛乐客"storeId": 9022,
中百-中百测试店"storeId": 68,
永辉-龙湖天街"storeId": 9010,
:param NewStoreInfo:
:return:
'''
logging.info("========== [更新购物车信息] ==========")
payload = json.dumps({
"id": 1213,
"mac": NewStoreInfo["CartMac"], #
"storeId": NewStoreInfo["StoreId"],
"cartModelId": 5,
"serialNum": "MMAT3FC10100003101023491",
"storeCartNo": "QH97",
"rfid": "0104e26401440143010000001",
"status": 1,
"motherboardType": "3568",
"activationDate": "2024-08-01"
})
url = self.Domain + "admin/cart/1213"
response = requests.request("PUT", url, headers=self.headerss, data=payload)
logging.info(f"-----------接口返回状态码:{response.status_code}")
logging.info(f"-----------接口返回数据:{response.json()}\n\n")
return response.json()
def approved_abnormal_products(self, MarketAndStoreInfo):
logging.info("========== [审核通过异常商品] ==========")
auth_token_b = self.headerss["Authorization"]
@ -198,4 +232,9 @@ if __name__ == '__main__':
yms = YMServiceApi()
GoodsInfo = {"GoodsInputcode": "6924743915848"}
MarketAndStoreDetails = {"putMarketId": 50, "putStoreId": ["69"]}
yms.approved_abnormal_products(MarketAndStoreDetails)
NewStoreInfo = {
"CartMac": "b8:2d:28:04:c7:5c",
"StoreId": 68,
}
yms.update_cart_info(NewStoreInfo)

59
YiMao/data/WuShang.yaml Normal file
View File

@ -0,0 +1,59 @@
# which is the data file for Wu Shang.
#adsAreaId-1: 登录页广告
#adsAreaId-2: 登录后弹窗广告
#adsAreaId-3: 购物车主页广告
#adsAreaId-4: 待机广告
#adsAreaId-5: 扫码广告
#adsAreaId-6: 支付后广告
#adsAreaId-7: 小票广告
# 1-购物车Mac地址
ShoppingCartMac: b8:2d:28:04:c7:5c
# 2-武商会员账号
VIPPhoneNumber: 17786408673
# 3--商超、门店信息
MarketAndStoreDetails:
putMarketId: 50
putStoreId: ["69"]
# 4--购物袋
ShoppingBag:
mid: 6971648922990
max: 6971648922983
# 5-原件商品
NormalGoods:
goods01: 6925791908202
goods02: 6925303796426
goods03: 6924743915848
# 6-优惠商品
VipGoods:
goods01: 6922024730036
goods02: 4897114790479
goods03: 4820193033335
# 7-折扣商品
SaleGoods:
goods01: 9588856298051
# 8-促销白名单商品
PromotionalWhitelistGoods:
GoodsInputcode: 9588856298051
GoodsName: 濠品轩燕麦酥
# 9-重量放通白名单商品
WeightToWhitelistGoods:
GoodsInputcode: 6922024730036
GoodsName: 大白兔奶糖
# 10-散称计重商品
MisspellingWeightGoods:
GoodsInputcode: 2934431009517
GoodsName: 阿克苏苹果
# 11-计件商品
PieceRateGoods:
GoodsInputcode: 2910551005806
GoodsName: 优选大白菜秧

52
YiMao/data/YiMao.yaml Normal file
View File

@ -0,0 +1,52 @@
# which is the data file for Wu Shang.
# 1-购物车Mac地址
ShoppingCartMac: b8:2d:28:04:c7:5c
# 2-武商会员账号
VIPPhoneNumber:
# 3--商超、门店信息
MarketAndStoreDetails:
putMarketId: 50
putStoreId: ["69"]
# 4--购物袋
ShoppingBag:
mid:
max:
# 5-原件商品
NormalGoods:
goods01:
goods02:
goods03:
# 6-优惠商品
VipGoods:
goods01:
goods02:
goods03:
# 7-折扣商品
SaleGoods:
goods01:
# 8-促销白名单商品
PromotionalWhitelistGoods:
GoodsInputcode:
GoodsName:
# 9-重量放通白名单商品
WeightToWhitelistGoods:
GoodsInputcode:
GoodsName:
# 10-散称计重商品
MisspellingWeightGoods:
GoodsInputcode:
GoodsName:
# 11-计件商品
PieceRateGoods:
GoodsInputcode:
GoodsName:

55
YiMao/data/ZhongBai.yaml Normal file
View File

@ -0,0 +1,55 @@
# which is the data file for Wu Shang.
# 1-购物车Mac地址
ShoppingCartMac: b8:2d:28:04:c7:5c
# 2-武商会员账号
VIPPhoneNumber: 13237135934
# 3-商超、门店信息
MarketAndStoreDetails:
putMarketId: 10016
putStoreId: ["68"]
# 4-购物袋
ShoppingBag:
mid: 6942246202623
max: 6942246202616
# 5-原件商品
NormalGoods:
goods01: 6972567330071 # 小萌牛泡泡相机
goods02: 6972790050364 # 酷滋枇杷软糖36g
goods03: 6972462651462 # 罗兰小汤勺
# 6-优惠商品
VipGoods:
goods01: 6924187839281
goods02: 6924187839243
goods03:
# 7-折扣商品
SaleGoods:
goods01: 6924187839243
# 8-促销白名单商品
PromotionalWhitelistGoods:
GoodsInputcode: 6972790050364
GoodsName: 酷滋枇杷软糖36g
# 9-重量放通白名单商品
WeightToWhitelistGoods:
GoodsInputcode: 6972462651462
GoodsName: 罗兰小汤勺
# 10-散称计重商品
# 250633900250000013 玉如意绿豆芽
# 262810902376001203 木兰湖农养鸡蛋
MisspellingWeightGoods:
GoodsInputcode: 250633900250000013
GoodsName: 玉如意绿豆芽
# 11-计件商品
PieceRateGoods:
GoodsInputcode:
GoodsName:

View File

@ -3,13 +3,12 @@
# @Author:: Arthur Wu
# @Date:: 2024/11/18-9:38
# @Description::
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from configs.globalParams import DataInit
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
DescName = "Anon001-非会员加购购物袋并试算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon001_AddShoppingBagAndSettlePayment(unittest.TestCase):
f'''@Date:: 2024/11/15
@ -19,51 +18,51 @@ class Test_CAnon001_AddShoppingBagAndSettlePayment(unittest.TestCase):
1武商测试环境购物袋inputcode为
69716489229906971648922983
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.goodsbag_mid = GoodsBagInputcode_mid
self.goodsbag_max = GoodsBagInputcode_max
def test_CAnon00101_AddMidShoppingbagsForPurchase(self):
@ddt.data(*DataInit)
def test_CAnon00101_AddMidShoppingbagsForPurchase(self, data):
allure.dynamic.description(f"描述:加购中号购物袋")
allure.step("步骤1session开始")
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.goodsbag_mid)
if GoodsInfoData['msg'] != '加购商品不存在':
allure.step("步骤4添加购物袋")
self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData)
allure.step("步骤5获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData])
allure.step("步骤6请求订单结算")
self.ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---购物袋 {self.goodsbag_mid} 不存在")
pytest.fail(f"购物袋 {self.goodsbag_mid} 不存在")
ymc = YMClientApi(data["ShoppingCartMac"])
goodsbag_mid = data["ShoppingBag"]["mid"]
def test_CAnon00102_AddMaxShoppingbagsForPurchase(self):
allure.dynamic.description("描述:加购大号购物袋")
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取商品信息")
GoodsInfoData = self.ymc.get_goods_info(self.goodsbag_max)
GoodsInfoData = ymc.get_goods_info(goodsbag_mid)
if GoodsInfoData['msg'] != '加购商品不存在':
allure.step("步骤4添加购物袋")
self.ymc.add_cart_goods(GoodsInfoData, 2, LoginData)
ymc.add_cart_goods(GoodsInfoData, 2, LoginData)
allure.step("步骤5获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData])
ymc.get_cart_goods_info([GoodsInfoData])
allure.step("步骤6请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---购物袋 {self.goodsbag_max} 不存在")
pytest.fail(f"购物袋 {self.goodsbag_mid} 不存在")
pytest.fail(f"购物袋 {goodsbag_mid} 不存在")
@ddt.data(*DataInit)
def test_CAnon00102_AddMaxShoppingbagsForPurchase(self, data):
allure.dynamic.description("描述:加购大号购物袋")
ymc = YMClientApi(data["ShoppingCartMac"])
goodsbag_max = data["ShoppingBag"]["max"]
allure.step("步骤1session开始")
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取商品信息")
GoodsInfoData = ymc.get_goods_info(goodsbag_max)
if GoodsInfoData['msg'] != '加购商品不存在':
allure.step("步骤4添加购物袋")
ymc.add_cart_goods(GoodsInfoData, 2, LoginData)
allure.step("步骤5获取购物车商品信息")
ymc.get_cart_goods_info([GoodsInfoData])
allure.step("步骤6请求订单结算")
ymc.request_order_settlement(LoginData)
else:
pytest.fail(f"购物袋 {goodsbag_max} 不存在")
if __name__ == '__main__':

View File

@ -3,13 +3,12 @@
# @Author:: Arthur Wu
# @Date:: 2024/11/18-10:49
# @Description:: 游客登录,加购无优惠普通商品并结算
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon002-非会员加购无优惠商品并试算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon002(unittest.TestCase):
f'''@Date:: 2024/11/15
@ -19,30 +18,28 @@ class Test_CAnon002(unittest.TestCase):
1武商测试环境普通无优惠商品inputcode为
6924743915848
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.NormalGoodsInputcode01 = NormalGoodsInputcode01
def test_CAnon002_AddNonDiscountedProductsForPurchase(self):
@ddt.data(*DataInit)
def test_CAnon002_AddNonDiscountedProductsForPurchase(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
NormalGoodsInputcode01 = data["NormalGoods"]["goods01"]
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取商品信息")
GoodsInfoData = self.ymc.get_goods_info(InputCode=self.NormalGoodsInputcode01)
GoodsInfoData = ymc.get_goods_info(InputCode=NormalGoodsInputcode01)
if GoodsInfoData['msg'] != '加购商品不存在':
allure.step("步骤4添加无优惠商品")
self.ymc.add_cart_goods(GoodsInfoData, 5, LoginData)
ymc.add_cart_goods(GoodsInfoData, 5, LoginData)
allure.step("步骤5获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData])
ymc.get_cart_goods_info([GoodsInfoData])
allure.step("步骤6请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---商品 {self.NormalGoodsInputcode01} 不存在")
pytest.fail(f"商品 {self.NormalGoodsInputcode01} 不存在")
pytest.fail(f"商品 {NormalGoodsInputcode01} 不存在")
if __name__ == '__main__':

View File

@ -3,46 +3,41 @@
# @Author:: Arthur Wu
# @Description:: 游客登录,加购会员商品并结算
# @Date:: 2021-05-10 16:30:23
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon003-非会员加购会员商品并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon003(unittest.TestCase):
f'''@Date:: 2024/11/15
@Author:: Arthur Wu
@Desc::
[购物车客户端] {DescName}
1武商测试环境会员有优惠商品inputcode为
会员有优惠商品暂未提供
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.vip_goods_inputcode = VipGoodsInputcode
def test_CAnon003_AddMemberProductsForPurchase(self):
@ddt.data(*DataInit)
def test_CAnon003_AddMemberProductsForPurchase(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
vip_goods_inputcode = data["VipGoods"]["goods01"]
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取商品信息")
GoodsInfoData = self.ymc.get_goods_info(self.vip_goods_inputcode)
GoodsInfoData = ymc.get_goods_info(vip_goods_inputcode)
if GoodsInfoData['msg'] != '加购商品不存在':
allure.step("步骤4添加会员有优惠商品")
self.ymc.add_cart_goods(GoodsInfoData, 1, LoginData)
ymc.add_cart_goods(GoodsInfoData, 1, LoginData)
allure.step("步骤5获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData])
ymc.get_cart_goods_info([GoodsInfoData])
allure.step("步骤6请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---商品 {self.vip_goods_inputcode} 不存在")
pytest.fail(f"商品 {self.vip_goods_inputcode} 不存在")
pytest.fail(f"商品 {vip_goods_inputcode} 不存在")
if __name__ == '__main__':

View File

@ -3,13 +3,12 @@
# @Author:: Arthur Wu
# @Description:: 游客登录,加购多件商品并结算
# @Date:: 2021-05-10 16:30:23
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon004-非会员加购多件商品并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon004(unittest.TestCase):
f'''@Date:: 2024/11/15
@ -18,39 +17,36 @@ class Test_CAnon004(unittest.TestCase):
[购物车客户端] {DescName}
1武商测试环境多件商品的 inputcode 分别为
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.goods_inputcode1 = NormalGoodsInputcode01
self.goods_inputcode2 = NormalGoodsInputcode02
def test_CAnon004_AddMultipleItemsForPurchase(self):
@ddt.data(*DataInit)
def test_CAnon004_AddMultipleItemsForPurchase(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
goods_inputcode1 = data["NormalGoods"]["goods01"]
goods_inputcode2 = data["NormalGoods"]["goods02"]
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取商品1信息")
GoodsInfoData1 = self.ymc.get_goods_info(InputCode=self.goods_inputcode1)
GoodsInfoData1 = ymc.get_goods_info(InputCode=goods_inputcode1)
if GoodsInfoData1['msg'] != '加购商品不存在':
allure.step("步骤4添加商品1")
self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData)
ymc.add_cart_goods(GoodsInfoData1, 1, LoginData)
allure.step("步骤5获取商品2信息")
GoodsInfoData2 = self.ymc.get_goods_info(InputCode=self.goods_inputcode2)
GoodsInfoData2 = ymc.get_goods_info(InputCode=goods_inputcode2)
if GoodsInfoData2['msg'] != '加购商品不存在':
allure.step("步骤6添加商品2")
self.ymc.add_cart_goods(GoodsInfoData2, 1, LoginData)
ymc.add_cart_goods(GoodsInfoData2, 1, LoginData)
allure.step("步骤7获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData1, GoodsInfoData2])
ymc.get_cart_goods_info([GoodsInfoData1, GoodsInfoData2])
allure.step("步骤8请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---商品 {self.goods_inputcode2} 不存在")
pytest.fail(f"商品 {self.goods_inputcode2} 不存在")
pytest.fail(f"商品 {goods_inputcode2} 不存在")
else:
LOGGER.info(f"---商品 {self.goods_inputcode1} 不存在")
pytest.fail(f"商品 {self.goods_inputcode1} 不存在")
pytest.fail(f"商品 {goods_inputcode1} 不存在")
if __name__ == '__main__':

View File

@ -3,13 +3,12 @@
# @Author:: Arthur Wu
# @Description:: 游客登录,加购打折商品并结算
# @Date:: 2021-05-10 16:30:22
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon005-非会员加购打折商品并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon005(unittest.TestCase):
f'''@Date:: 2024/11/15
@ -19,30 +18,28 @@ class Test_CAnon005(unittest.TestCase):
1武商测试环境会员有优惠商品inputcode为
折扣商品暂未提供
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.sale_goods_inputCode = SaleGoodsInputCode
def test_CAnon005_AddDiscountedProductsForPurchase(self):
@ddt.data(*DataInit)
def test_CAnon005_AddDiscountedProductsForPurchase(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
sale_goods_inputCode = data["SaleGoods"]["goods01"]
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取折扣商品信息")
GoodsInfoData = self.ymc.get_goods_info(InputCode=self.sale_goods_inputCode)
GoodsInfoData = ymc.get_goods_info(InputCode=sale_goods_inputCode)
if GoodsInfoData['msg'] != '加购商品不存在':
allure.step("步骤4加购折扣商品")
self.ymc.add_cart_goods(GoodsInfoData, 1, LoginData)
ymc.add_cart_goods(GoodsInfoData, 1, LoginData)
allure.step("步骤5获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData])
ymc.get_cart_goods_info([GoodsInfoData])
allure.step("步骤6请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---商品 {self.sale_goods_inputCode} 不存在")
pytest.fail(f"---商品 {self.sale_goods_inputCode} 不存在")
pytest.fail(f"---商品 {sale_goods_inputCode} 不存在")
if __name__ == '__main__':

View File

@ -3,14 +3,13 @@
# @Author:: Arthur Wu
# @Description:: 游客登录,加购促销白名单商品并结算
# @Date:: 2021-05-10 16:30:23
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.businessFunc.ServiceApiLib import YMServiceApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon006-非会员加购促销白名单商品并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon006(unittest.TestCase):
f'''@Date:: 2024/11/15
@ -20,50 +19,45 @@ class Test_CAnon006(unittest.TestCase):
1武商测试环境促销白名单商品inputcode为
6925303796426
'''
def setUp(self) -> None:
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"],
"StoreId": MarketAndStoreDetails["putStoreId"][0]
@ddt.data(*DataInit)
def test_CAnon006_AddPromotionalWhitelistProducts(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
yms = YMServiceApi()
promotional_whitelist_goods = data["PromotionalWhitelistGoods"]
market_and_store_info = {
"MarketId": data["MarketAndStoreDetails"]['putMarketId'],
"StoreId": data["MarketAndStoreDetails"]['putStoreId'][0]
}
def test_CAnon006_AddPromotionalWhitelistProducts(self):
allure.dynamic.description(f"描述:{DescName}")
allure.step("[前置条件]:先调用管理平台接口,将指定商品添加到促销白名单中")
pre_respomse = self.yms.add_promotional_product_whitelist(
self.promotional_whitelist_goods, self.market_and_store_info
pre_respomse = yms.add_promotional_product_whitelist(
promotional_whitelist_goods, market_and_store_info
)
if pre_respomse['data'] is not None:
LOGGER.info(f"---商品 {self.promotional_whitelist_goods['GoodsInputcode']} "
f"已添加到促销白名单中")
allure.step("[业务步骤]:再调用客户端接口,执行加购操作")
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取白名单商品信息")
GoodsInfoData1 = self.ymc.get_goods_info(self.promotional_whitelist_goods["GoodsInputcode"])
GoodsInfoData1 = ymc.get_goods_info(promotional_whitelist_goods["GoodsInputcode"])
if GoodsInfoData1['msg'] != '加购商品不存在':
allure.step("步骤4加购白名单商品")
self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData)
ymc.add_cart_goods(GoodsInfoData1, 1, LoginData)
allure.step("步骤5获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData1])
ymc.get_cart_goods_info([GoodsInfoData1])
allure.step("步骤6请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
allure.step("[后置处理]:删除添加的促销白名单商品")
yms.delete_whitelist_goods()
else:
LOGGER.info(f"---商品 {self.promotional_whitelist_goods["GoodsInputcode"]} 不存在")
pytest.fail(f"商品 {self.promotional_whitelist_goods["GoodsInputcode"]}不存在")
allure.step("[后置处理]:删除添加的促销白名单商品")
self.yms.delete_whitelist_goods()
allure.step("[后置处理]:删除添加的促销白名单商品")
yms.delete_whitelist_goods()
pytest.fail(f"商品 {promotional_whitelist_goods["GoodsInputcode"]}不存在")
else:
LOGGER.info(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} "
f"到促销白名单失败")
pytest.fail(f"---添加商品 {self.promotional_whitelist_goods['GoodsInputcode']} "
pytest.fail(f"---添加商品 {promotional_whitelist_goods['GoodsInputcode']} "
f"到促销白名单失败")

View File

@ -3,14 +3,14 @@
# @Author:: Arthur Wu
# @Description:: 游客登录,加购重量放通商品并结算
# @Date:: 2021-05-10 16:30:22
import unittest,allure,time,pytest
import unittest,allure,time,pytest,ddt
from configs.globalObj import LOGGER
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.businessFunc.ServiceApiLib import YMServiceApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon007-非会员加购重量放通商品并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon007(unittest.TestCase):
f'''@Date:: 2024/11/15
@ -20,51 +20,48 @@ class Test_CAnon007(unittest.TestCase):
1武商测试环境重量放通商品inputcode为
6924743915848
'''
def setUp(self) -> None:
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"],
"StoreId": MarketAndStoreDetails["putStoreId"][0]
@ddt.data(*DataInit)
def test_CAnon007_AddWeightToTheProduct(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
yms = YMServiceApi()
weight_to_whitelist_goods = data["WeightToWhitelistGoods"]
market_and_store_info = {
"MarketId": data["MarketAndStoreDetails"]['putMarketId'],
"StoreId": data["MarketAndStoreDetails"]['putStoreId'][0]
}
def test_CAnon007_AddWeightToTheProduct(self):
allure.dynamic.description(f"描述:{DescName}")
allure.step("[前置条件]:先调用管理平台接口,将指定商品添加到重量放通白名单中")
pre_respomse = self.yms.add_weight_to_whitelist(
self.weight_to_whitelist_goods, self.market_and_store_info
pre_respomse = yms.add_weight_to_whitelist(
weight_to_whitelist_goods, market_and_store_info
)
if pre_respomse['data'] is not None:
LOGGER.info(f"---商品 {self.weight_to_whitelist_goods['GoodsInputcode']} "
LOGGER.info(f"---商品 {weight_to_whitelist_goods['GoodsInputcode']} "
f"已添加到重量放通白名单中")
''' 2-再调用客户端接口,执行加购操作 '''
allure.step("[业务步骤]:再调用客户端接口,执行加购操作")
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3获取白名单商品信息")
GoodsInfoData1 = self.ymc.get_goods_info(self.weight_to_whitelist_goods["GoodsInputcode"])
GoodsInfoData1 = ymc.get_goods_info(weight_to_whitelist_goods["GoodsInputcode"])
if GoodsInfoData1['msg'] != '加购商品不存在':
allure.step("步骤4加购白名单商品")
self.ymc.add_cart_goods(GoodsInfoData1, 1, LoginData)
ymc.add_cart_goods(GoodsInfoData1, 1, LoginData)
allure.step("步骤5获取购物车商品信息")
self.ymc.get_cart_goods_info([GoodsInfoData1])
ymc.get_cart_goods_info([GoodsInfoData1])
allure.step("步骤6请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
allure.step("[后置处理]:删除添加的重量放通白名单商品")
yms.delete_weight_whitelist_goods()
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()
allure.step("[后置处理]:删除添加的重量放通白名单商品")
yms.delete_weight_whitelist_goods()
pytest.fail(f"---商品 {weight_to_whitelist_goods["GoodsInputcode"]} 不存在")
else:
LOGGER.info(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} "
f"到重量放通白名单失败")
pytest.fail(f"---添加商品 {self.weight_to_whitelist_goods['GoodsInputcode']} "
pytest.fail(f"---添加商品 {weight_to_whitelist_goods['GoodsInputcode']} "
f"到重量放通白名单失败")

View File

@ -3,13 +3,12 @@
# @Author:: Arthur Wu
# @Description:: 游客登录加购2个购物袋退购一个购物袋并结算
# @Date:: 2024/11/20
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon008-非会员加购2个购物袋退购一个购物袋并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon008(unittest.TestCase):
f'''@Date:: 2024/11/20
@ -18,46 +17,43 @@ class Test_CAnon008(unittest.TestCase):
[购物车客户端] {DescName}
1武商测试环境购物袋的 inputcode 分别为
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.shoppingbag_mid = GoodsBagInputcode_mid
self.shoppingbag_max = GoodsBagInputcode_max
def test_CAnon008_ReturnShoppingBag(self):
@ddt.data(*DataInit)
def test_CAnon008_ReturnShoppingBag(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
shoppingbag_mid = data["ShoppingBag"]["mid"]
shoppingbag_max = data["ShoppingBag"]["max"]
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
'''step1加购商品x分别加购x件'''
allure.step("步骤3获取商品1信息")
GetGoodsInfoResp_01 = self.ymc.get_goods_info(InputCode=self.shoppingbag_mid)
GetGoodsInfoResp_01 = ymc.get_goods_info(InputCode=shoppingbag_mid)
if GetGoodsInfoResp_01['msg'] != '加购商品不存在':
allure.step("步骤4添加商品1")
self.ymc.add_cart_goods(GetGoodsInfoResp_01, 2, LoginData)
ymc.add_cart_goods(GetGoodsInfoResp_01, 2, LoginData)
allure.step("步骤5获取商品2信息")
GetGoodsInfoResp_02 = self.ymc.get_goods_info(InputCode=self.shoppingbag_max)
GetGoodsInfoResp_02 = ymc.get_goods_info(InputCode=shoppingbag_max)
if GetGoodsInfoResp_02['msg'] != '加购商品不存在':
allure.step("步骤6添加商品2")
AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_02, 2, LoginData)
AddGoodsResp = ymc.add_cart_goods(GetGoodsInfoResp_02, 2, LoginData)
''' step2随机退购一个商品并结算 '''
allure.step("\n步骤7退购一件商品")
GetGoodsInfoList = [GetGoodsInfoResp_01, GetGoodsInfoResp_02]
self.ymc.delete_shopping_bag(GetGoodsInfoList, LoginData, AddGoodsResp)
ymc.delete_shopping_bag(GetGoodsInfoList, LoginData, AddGoodsResp)
allure.step("步骤8获取购物车商品信息")
self.ymc.get_cart_goods_info([GetGoodsInfoResp_01, GetGoodsInfoResp_02])
ymc.get_cart_goods_info([GetGoodsInfoResp_01, GetGoodsInfoResp_02])
allure.step("步骤9请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---商品 {self.shoppingbag_max} 不存在")
pytest.fail(f"---商品 {self.shoppingbag_max} 不存在")
pytest.fail(f"---商品 {shoppingbag_max} 不存在")
else:
LOGGER.info(f"---商品 {self.shoppingbag_mid} 不存在")
pytest.fail(f"---商品 {self.shoppingbag_mid} 不存在")
pytest.fail(f"---商品 {shoppingbag_mid} 不存在")
if __name__ == '__main__':

View File

@ -3,13 +3,12 @@
# @Author:: Arthur Wu
# @Description:: 游客登录加购2个普通商品退购一个并结算
# @Date:: 2024/11/20
import unittest,allure,time,pytest
from configs.globalObj import LOGGER
import unittest,allure,time,pytest,ddt
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon009-非会员加购2个普通商品退购一个并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon009(unittest.TestCase):
f'''@Date:: 2024/11/20
@ -18,46 +17,44 @@ class Test_CAnon009(unittest.TestCase):
[购物车客户端] {DescName}
1武商测试环境2个普通商品 inputcode 分别为
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.goods_01 = NormalGoodsInputcode01
self.goods_02 = NormalGoodsInputcode02
def test_CAnon009_ReturnPurchaseOfOrdinaryGoods(self):
@ddt.data(*DataInit)
def test_CAnon009_ReturnPurchaseOfOrdinaryGoods(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
goods_01 = data["NormalGoods"]["goods01"]
goods_02 = data["NormalGoods"]["goods02"]
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
'''step1加购商品x分别加购x件'''
allure.step("步骤3获取商品1信息")
GetGoodsInfoResp_01 = self.ymc.get_goods_info(InputCode=self.goods_01)
GetGoodsInfoResp_01 = ymc.get_goods_info(InputCode=goods_01)
if GetGoodsInfoResp_01['msg'] != '加购商品不存在':
allure.step("步骤4添加商品1")
self.ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData)
ymc.add_cart_goods(GetGoodsInfoResp_01, 1, LoginData)
allure.step("步骤5获取商品2信息")
GetGoodsInfoResp_02 = self.ymc.get_goods_info(InputCode=self.goods_02)
GetGoodsInfoResp_02 = ymc.get_goods_info(InputCode=goods_02)
if GetGoodsInfoResp_02['msg'] != '加购商品不存在':
allure.step("步骤6添加商品2")
AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_02, 1, LoginData)
AddGoodsResp = ymc.add_cart_goods(GetGoodsInfoResp_02, 1, LoginData)
''' step2随机退购一个商品并结算 '''
allure.step("\n步骤7退购一件商品")
GetGoodsInfoList = [GetGoodsInfoResp_01, GetGoodsInfoResp_02]
self.ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp)
AddGoodsResp_List = [AddGoodsResp]
ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp_List)
allure.step("步骤8获取购物车商品信息")
self.ymc.get_cart_goods_info([GetGoodsInfoResp_01, GetGoodsInfoResp_02])
ymc.get_cart_goods_info([GetGoodsInfoResp_01, GetGoodsInfoResp_02])
allure.step("步骤9请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---商品 {self.goods_02} 不存在")
pytest.fail(f"---商品 {self.goods_02} 不存在")
pytest.fail(f"---商品 {goods_02} 不存在")
else:
LOGGER.info(f"---商品 {self.goods_01} 不存在")
pytest.fail(f"---商品 {self.goods_01} 不存在")
pytest.fail(f"---商品 {goods_01} 不存在")
if __name__ == '__main__':

View File

@ -3,13 +3,13 @@
# @Author:: Arthur Wu
# @Description:: 游客登录加购2个会员商品退购一个并结算
# @Date:: 2024/11/20
import unittest,allure,time,pytest
import unittest,allure,time,pytest,ddt
from configs.globalObj import LOGGER
from YiMao.businessFunc.ClientApiLib import YMClientApi
from YiMao.data.WuShangSceneTestData import *
from configs.globalParams import DataInit
DescName = "Anon010-非会员加购2个会员商品退购一个并结算"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CAnon010(unittest.TestCase):
f'''@Date:: 2024/11/20
@ -18,46 +18,65 @@ class Test_CAnon010(unittest.TestCase):
[购物车客户端] {DescName}
1武商测试环境2个会员商品 inputcode 分别为
'''
def setUp(self) -> None:
self.timestamp = int(time.time())
self.ymc = YMClientApi(ShoppingCartMac)
self.vip_goods_01 = VipGoodsInputcode
self.vip_goods_02 = VipGoodsInputcode02
def test_CAnon010_ReturnOfMemberProducts(self):
@ddt.data(*DataInit)
def test_CAnon010_ReturnOfMemberProducts(self, data):
allure.dynamic.description(f"描述:{DescName}")
ymc = YMClientApi(data["ShoppingCartMac"])
vip_goods_01 = data["VipGoods"]["goods01"]
vip_goods_02 = data["VipGoods"]["goods02"]
allure.step("步骤1session开始")
self.ymc.session_start()
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = self.ymc.login_app_v2(Payload01)
LoginData = ymc.login_app_v2(Payload01)
'''step1加购商品x分别加购x件'''
allure.step("步骤3获取商品1信息")
GetGoodsInfoResp_01 = self.ymc.get_goods_info(InputCode=self.vip_goods_01)
GetGoodsInfoResp_01 = ymc.get_goods_info(InputCode=vip_goods_01)
if GetGoodsInfoResp_01['msg'] != '加购商品不存在':
allure.step("步骤4添加商品1")
self.ymc.add_cart_goods(GetGoodsInfoResp_01, 3, LoginData)
add_goods_dict = {}
AddGoodsResp_01 = ymc.add_cart_goods(GetGoodsInfoResp_01, 2, LoginData)
add_goods_dict[AddGoodsResp_01["data"]["orderItemList"][0]["inputCode"]] = AddGoodsResp_01["data"]["orderItemList"][0]["qty"]
allure.step("步骤5获取商品2信息")
GetGoodsInfoResp_02 = self.ymc.get_goods_info(InputCode=self.vip_goods_02)
GetGoodsInfoResp_02 = ymc.get_goods_info(InputCode=vip_goods_02)
if GetGoodsInfoResp_02['msg'] != '加购商品不存在':
allure.step("步骤6添加商品2")
AddGoodsResp = self.ymc.add_cart_goods(GetGoodsInfoResp_02, 1, LoginData)
AddGoodsResp_02 = ymc.add_cart_goods(GetGoodsInfoResp_02, 1, LoginData)
add_goods_dict[AddGoodsResp_02["data"]["orderItemList"][0]["inputCode"]] = AddGoodsResp_02["data"]["orderItemList"][0]["qty"]
LOGGER.info(f"---添加的商品Inputcode和数量为{add_goods_dict}\n")
''' step2随机退购一个商品并结算 '''
allure.step("\n步骤7退购一件商品")
GetGoodsInfoList = [GetGoodsInfoResp_01, GetGoodsInfoResp_02]
self.ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp)
AddGoodsResp_List = [AddGoodsResp_01, AddGoodsResp_02]
delpayload = ymc.delete_cart_goods(GetGoodsInfoList, LoginData, AddGoodsResp_List)
delgoods_dict = {}
delgoods_dict[delpayload['deleteGoods'][0]['inputCode']] = delpayload['deleteGoods'][0]['qty']
LOGGER.info(f"---退购商品Inputcode和数量为{delgoods_dict}\n")
# 刷新购物车商品数量GoodsInfoData["data"]["qty"]
AddGoodsInfoAfterDel = {}
for k,v in add_goods_dict.items():
for k2,v2 in delgoods_dict.items():
if k == k2:
AddGoodsInfoAfterDel[k] = v - v2
LOGGER.info(f"---退购商品后,剩余商品及其数量为:{AddGoodsInfoAfterDel}\n")
cart_goods_info = [GetGoodsInfoResp_01, GetGoodsInfoResp_02]
for goods_info in cart_goods_info:
if goods_info['data']['inputCode'] in AddGoodsInfoAfterDel.keys():
goods_info['data']['qty'] = AddGoodsInfoAfterDel[goods_info['data']['inputCode']]
allure.step("步骤8获取购物车商品信息")
self.ymc.get_cart_goods_info([GetGoodsInfoResp_01, GetGoodsInfoResp_02])
ymc.get_cart_goods_info(cart_goods_info)
allure.step("步骤9请求订单结算")
self.ymc.request_order_settlement(LoginData)
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---商品 {self.vip_goods_02} 不存在")
pytest.fail(f"---商品 {self.vip_goods_02} 不存在")
pytest.fail(f"---商品 {vip_goods_02} 不存在")
else:
LOGGER.info(f"---商品 {self.vip_goods_01} 不存在")
pytest.fail(f"---商品 {self.vip_goods_01} 不存在")
pytest.fail(f"---商品 {vip_goods_01} 不存在")
if __name__ == '__main__':

View File

@ -0,0 +1,62 @@
# !/usr/bin/python
# -*- coding: utf-8 -*-
# @Author:: Arthur Wu
# @Description:: 匿名转会员登录,领取优惠券
# @Date:: 2024/11/25
import unittest,allure,time,pytest,ddt
from configs.globalObj import LOGGER
from YiMao.businessFunc.ClientApiLib import YMClientApi
from configs.globalParams import DataInit
DescName = "Vip019-匿名转会员登录,领取优惠券"
@ddt.ddt
@allure.story(f'[场景测试] {DescName}验证')
class Test_CVip019(unittest.TestCase):
f'''@Date:: 2024/11/25
@Author:: Arthur Wu
@Desc::
[购物车客户端] {DescName}
'''
@ddt.data(*DataInit)
def test_CVip019_ReceiveCoupon(self, data):
allure.dynamic.description(f"描述:{DescName}\n")
ymc = YMClientApi(data["ShoppingCartMac"])
vip_phone_num = data["VIPPhoneNumber"]
goodsbag_mid = data["ShoppingBag"]["mid"]
goodsbag_max = data["ShoppingBag"]["max"]
allure.step("步骤1session开始")
ymc.session_start()
allure.step("步骤2匿名登录")
Payload01 = {"action": 0, "isAnon": True}
LoginData = ymc.login_app_v2(Payload01)
allure.step("步骤3切换会员登录")
Payload02 = {"action": 1, "code": vip_phone_num, "isAnon": False}
ymc.login_app_v2(Payload02)
allure.step("步骤4领取优惠券")
CouponListData = ymc.get_coupon_list() # step6获取优惠券列表
ymc.receive_coupon(CouponListData) # step7领取优惠券
ymc.query_coupon_list_user() # step8查询用户持有的优惠券列表
allure.step("步骤5加购可享优惠券优惠的商品并结算")
GoodsInfoData = ymc.get_goods_info(goodsbag_mid)
if GoodsInfoData['msg'] != '加购商品不存在':
allure.step("步骤6添加购物袋")
AddPurchaseQuantity = 5
ymc.add_cart_goods(GoodsInfoData, AddPurchaseQuantity, LoginData)
GoodsInfoData["data"]["qty"] = AddPurchaseQuantity
allure.step("步骤7获取购物车商品信息")
ymc.get_cart_goods_info([GoodsInfoData])
allure.step("步骤8请求订单结算")
ymc.request_order_settlement(LoginData)
else:
LOGGER.info(f"---购物袋 {goodsbag_mid} 不存在")
pytest.fail(f"购物袋 {goodsbag_mid} 不存在")
if __name__ == '__main__':
unittest.main(verbosity=2)

View File

@ -44,3 +44,6 @@ class Common():
return str(timestamp_milliseconds)

View File

@ -98,8 +98,8 @@ class NotificationModule():
"Debug": "7aedbee7239870e3e653748a2889d8bf063c61efa9213c7099bd57476066dc86",
"Formal": "80b026022a28166cfc9eebaf8f6a880cc06f56a14b8803e8d67e7fb3cb05844e"
}
# self.urlInfo = datainfo["Domain"] + datainfo["Debug"]
self.urlInfo = datainfo["Domain"] + datainfo["Formal"]
self.urlInfo = datainfo["Domain"] + datainfo["Debug"]
# self.urlInfo = datainfo["Domain"] + datainfo["Formal"]
self.ReportUrl = ProCfgData["ReportsURL"]
self.ExecutionEnvironment = ProCfgData["ExecutionEnv"]

View File

@ -13,7 +13,20 @@ class YamlHandler():
return yaml.load(f.read(), Loader=yaml.FullLoader)
except Exception as e:
print("ERROR: read yaml file error::".format(e))
return 'failed to read avata autotest config file.'
return 'failed to read config file.'
def read_some_yamls(self, YamlFilePathsList, encoding='utf-8'):
try:
result = []
for YamlFilePath in YamlFilePathsList:
with open(YamlFilePath, encoding=encoding) as f:
data = yaml.load(f.read(), Loader=yaml.FullLoader)
result.append(data)
return result
except Exception as e:
print("ERROR: read some yaml files error::".format(e))
return 'failed to read config file.'
class ReadExcel(object):
'''@Author:: Arthur Wu

View File

@ -10,3 +10,6 @@ ExecutionScope: YMBusiScenarios
# 3-Reports URL
ReportsURL: http://192.168.1.165
# 4-联测测试的商超列表: WuShang\ZhongBai\YongHui\JiajiaYue
MarketsArray:
- ZhongBai

View File

@ -4,8 +4,6 @@ import os,datetime,time
from datetime import datetime,timedelta
from commons.FileHandler import YamlHandler as yam
from commons.SignatureYM import SignatureYM
__RootPath = os.path.dirname(os.path.dirname(__file__)).replace("\\", "/")
__YamlFilePath = os.path.join(__RootPath, "configs/Configs.yaml").replace("\\", "/")
ProCfgData = yam().read_yaml(__YamlFilePath)
@ -29,7 +27,16 @@ GlobalParams = {
"todayDateAdd4": (datetime.now() + timedelta(days=4)).strftime('%Y-%m-%d'),
"todayDateAdd5": (datetime.now() + timedelta(days=5)).strftime('%Y-%m-%d'),
}
def __data_init():
DataList = []
for fn in ProCfgData["MarketsArray"]:
FP = os.path.join(GlobalPath["YMDataPath"], fn+".yaml").replace("\\", "/")
print(f"---market scene test data file path: {FP}---")
data = yam().read_yaml(FP)
DataList.append(data)
return DataList
DataInit = __data_init()
print(f"---DataInit: {DataInit}")