From fa38ebde443d3583715ba7eb6bd839c03c5774a2 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 7 Nov 2023 15:17:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A5=97=E5=8C=85=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E7=89=B9=E4=BB=B7=E7=9B=B8=E5=85=B3=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...17\350\256\256\347\211\271\344\273\267.py" | 61 +++++++++ ...17\350\256\256\347\211\271\344\273\267.py" | 126 ++++++++++++++++++ ...60\345\242\236\351\252\214\350\257\201.py" | 2 - data/cmdc_special_fresenius_group/data | 16 +++ 4 files changed, 203 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" create mode 100644 "air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" diff --git "a/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" "b/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" new file mode 100644 index 00000000..0e6f9c08 --- /dev/null +++ "b/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" @@ -0,0 +1,61 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc停用_套包协议特价,2264,2264-53,sit,bs +主数据平台:运营后台管理系统套包协议特价列表查询接口和停用接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_special_fresenius_group" + +# 第一步登录后台运营平台获取cmdc_access_token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username1") +password = commonFuc().get_business_data(module, "password1") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcDoLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token) + +# 第二步套包协议特价列表查询 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url36") +request_body = commonFuc().get_business_data(module, "payload36") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 获取套包协议特价id +fresenius_price_id = result["data"]["list"][0]["freseniusPriceId"] + +# 第三步进行套包协议特价停用操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url37") +request_body = {"freseniusPriceIds": [fresenius_price_id], "groupPriceStatus": 0, "remarks": "套包协议特价停用功能验证"} + +""" + 场景: 停用_套包协议特价 + 用例名称:停用_套包协议特价 + 输出:{"groupPriceStatus": 0} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 数据库查询特价单品数量 +sql = "SELECT t.groupPriceStatus FROM `cmdc-order`.tc_fresenius_agreement_price t WHERE freseniusPriceId = {};".format(fresenius_price_id) +result = {"groupPriceStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]} +print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict19") +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" "b/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" new file mode 100644 index 00000000..e58995d7 --- /dev/null +++ "b/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" @@ -0,0 +1,126 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc单个新增验证_套包协议特价,2264,2264-56,sit,bs +主数据平台:后台运营系统客户列表查询、套包列表查询、套包协议特价新增等接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin +from datetime import timedelta, date +import random +import requests +import uuid +import json + +module = "cmdc_special_fresenius_group" + +# 第一步登录后台运营平台获取cmdc_access_token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username1") +password = commonFuc().get_business_data(module, "password1") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcDoLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token) + +# 第二步客户列表获取 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "customer_list_url") +request_body = commonFuc().get_business_data(module, "customer_payload") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +customer_quantity = random.randint(1, len(result["data"]["list"]) - 1) +# 客户信息获取 +customer_code = result["data"]["list"][customer_quantity]["customerCode"] +customer_name = result["data"]["list"][customer_quantity]["customerName"] +user_name = result["data"]["list"][customer_quantity]["userName"] + +# 第三步套包获取 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url25") +request_body = commonFuc().get_business_data(module, "payload25") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成套包随机数 +group_quantity = random.randint(1, len(result["data"]["list"]) - 1) +# 获取套包信息 +fresenius_group = result["data"]["list"][group_quantity] +product_json = result["data"]["list"][group_quantity]["products"] +group_code = result["data"]["list"][group_quantity]["groupCode"] +group_name = result["data"]["list"][group_quantity]["groupName"] +id = result["data"]["list"][group_quantity]["products"][0]["id"] +product_code = result["data"]["list"][group_quantity]["products"][0]["productCode"] +product_name = result["data"]["list"][group_quantity]["products"][0]["productName"] +manufacturer = result["data"]["list"][group_quantity]["products"][0]["manufacturer"] +manufacturer_code = result["data"]["list"][group_quantity]["products"][0]["manufacturerCode"] +option_str = result["data"]["list"][group_quantity]["products"][0]["optionStr"] +measuring_unit = result["data"]["list"][group_quantity]["products"][0]["measuringUnit"] +material_code = result["data"]["list"][group_quantity]["products"][0]["materialCode"] +quantity = result["data"]["list"][group_quantity]["products"][0]["quantity"] + +# 随机生成日期 +start_date = date(2000, 1, 1) +end_date = date.today() + + +def random_date(start, end): + delta = end - start + random_days = random.randint(0, delta.days) + return start + timedelta(days=random_days) + + +random_date = random_date(start_date, end_date) + +# 随机生成唯一字符串用于ref +ref_random = str(uuid.uuid4()) +# 生成促销价格 +activity_unit_amount = random.randint(10, 10000) +# 生成套包说明 +group_str = "" +for i in product_json: + # 更新套包内每个商品活动价格 + i.update({"activityUnitAmount": activity_unit_amount}) + # 获取套包内包含商品信息 + product_name = i["productName"] + option_str = i["optionStr"] + quantity = i["quantity"] + str1 = "{}({})*{}".format(product_name, option_str, quantity) + group_str = str1 + "+" + group_str +# 生成套包说明 +group_str = "平台套包编号:{} || 套包名称:{}({})".format(group_code, group_name, group_str) +# 更新请求报文中活动价格 +fresenius_group.update({"products": product_json}) +# 报文组装 +fresenius_group.update(commonFuc().get_business_data(module, "payload32", id, product_code, product_name, manufacturer, + manufacturer_code, option_str, measuring_unit, material_code, + quantity)) + +# 第四步套包协议特价新增 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url35") +request_body = {"manufacturerGroupName": "", "manufacturerGroupCode": "", "groupName": "", "limitPurchase": "", + "isLimit": 0, "freseniusGroup": fresenius_group, "groupStr": group_str, "customerCode": customer_code, + "userName": user_name, "customerName": customer_name, "documentNo": ref_random, + "time": [str(start_date), str(random_date)], "effectiveTime": str(start_date), "expirationTime": str(random_date)} + +print(request_body) + +""" + + 场景: 单个新增验证_套包协议特价 + 用例名称:单个新增验证_套包协议特价 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +print(result) + +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict20") +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.py" index 001f7479..48f9bbca 100644 --- "a/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.py" @@ -1,8 +1,6 @@ # -*- encoding=utf8 -*- __author__ = "liguangyu" -import random - """ case_tag:cmdc_api,cmdc特价单品新增功能验证,2264,2264-60,sit,bs 主数据平台:后台运营系统客户列表查询、商品列表查询、特价单品新增等接口 diff --git a/data/cmdc_special_fresenius_group/data b/data/cmdc_special_fresenius_group/data index 6e3ac646..b6315807 100644 --- a/data/cmdc_special_fresenius_group/data +++ b/data/cmdc_special_fresenius_group/data @@ -219,3 +219,19 @@ checkDict31: {"groupCode": "%s"} "payload32": {"freseniusPriceId":null,"customerCode":null,"customerName":null,"isLimit":null,"isRegularPrice":null,"limitPurchase":null,"groupPrice":null,"effectiveTime":null,"expirationTime":null,"documentNo":null,"salesArea":null,"salesProvince":null,"supplementNo":null,"applicationType":null,"manufacturerUserDesc":null,"manufacturerUserNo":null,"manufacturerUserType":null,"groupPriceStatus":null,"surplusQuantity":null,"freseniusGroup":null,"id":"%d","productCode":"%s","productName":"%s","manufacturer":"%s","manufacturerCode":"%s","optionStr":"%s","activityUnitAmount":null,"price":null,"measuringUnit":"%s","materialCode":"%s","description":"","quantity":"%d","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":null,"storageCondition":null,"productCodeList":null,"storageType":null,"productId":null,"productNature":null,"brandName":null,"imageUrl":null,"riskRank":null,"productClassify":null,"rowspan":2,"colspan":1} #测试场景:套包正价管理(指定客户)单个新增功能验证 "url31": "/order/public/saveRegularFreseniusPrice" + +#测试场景:单个新增验证_套包协议特价 +"url35": "/order/public/saveFreseniusAgreementPrice" + +#测试场景:套包协议特价停用功能验证 +#套包协议特价列表接口和报文 +"url36": "/order/public/queryFreseniusAgreementPricePageInfo" +"payload36": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":null,"pageStart":1,"pageSize":10,"groupPriceStatus":"1"} +#套包协议特价停用 +"url37": "/order/public/enableOrDisablePrice" + + + + + + -- GitLab