From bb1f28b769c9979fc26cca1741682990577e46f9 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Thu, 30 Nov 2023 08:44:36 +0800 Subject: [PATCH 01/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...14\207\345\256\232\345\256\242\346\210\267.py" | 15 +++++++++++---- data/cmdc_special_fresenius_group/data | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) 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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.py" index 88df161a..7fa4cddb 100644 --- "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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\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\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.py" @@ -100,7 +100,14 @@ 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) +# 进行结果判断 +if result["success"]: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict20") + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict20_2") + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_special_fresenius_group/data b/data/cmdc_special_fresenius_group/data index 60fe937f..c62a5110 100644 --- a/data/cmdc_special_fresenius_group/data +++ b/data/cmdc_special_fresenius_group/data @@ -175,6 +175,7 @@ checkDict19: {"groupPriceStatus": 0} #预期结果 checkDict20: {"success":true,"code":"200","message":"OK"} checkDict20_1: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"本次新增组内商品编码已存在于其他组里,请核对已建立的组","data":null,"freshToken":null} +checkDict20_2: {"success":false,"code":"fresenius_agreement_price","message":"该套包面向该客户已存在套包正价记录,无需重复添加!","data":null,"freshToken":null} #测试场景:新老编码组停用 -- GitLab From dc7ad43cae0f41676ed5498eabfbb1920a53761c Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Fri, 1 Dec 2023 13:54:15 +0800 Subject: [PATCH 02/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" index df1477dd..2afdcda2 100644 --- "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" +++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" @@ -51,7 +51,7 @@ request_body = group_json # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) - +# print(result) # 获取预期结果 check_dict = commonFuc().get_business_data(module, "checkDict16") # 断言实际结果中是否包含预期结果的内容 -- GitLab From 520ac2b3eadf32ffb151bd0cf6922d66e711c077 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Fri, 1 Dec 2023 14:40:59 +0800 Subject: [PATCH 03/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...346\230\276\347\244\272\351\252\214\350\257\201.py" | 10 +++++----- data/cmdc_special_fresenius_group/data | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git "a/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py" index 224750db..a123ac7b 100644 --- "a/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py" @@ -23,17 +23,17 @@ headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_toke # 第二步套包协议价查询 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3") -request_body = commonFuc().get_business_data(module, "payload49") +request_body = commonFuc().get_business_data(module, "payload49_1") # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) - +# print(result) # 获取商品信息 product_code = result["data"]["list"][0]["products"][0]["productCode"] company_code = result["data"]["list"][0]["companyCode"] document_no = result["data"]["list"][0]["documentNo"] group_price = result["data"]["list"][0]["groupPrice"] -print(product_code) +# print(product_code) # 第三步登录多采商城获取token信息 # 获取登录所需账号密码 username = commonFuc().get_business_data(module, "username") @@ -61,10 +61,10 @@ request_body = commonFuc().get_business_data(module, "payload47", product_code, # 发送请求 result = requests.get(url, params=request_body, headers=headers) result = json.loads(result.content) -print(result) +# print(result) # 获取商品详情页中套包正价信息 result = {"groupPrice": result["data"][1]["groupPrice"], "documentNo": result["data"][1]["documentNo"]} -print(result) +# print(result) # # 获取预期结果 check_dict = commonFuc().get_business_data(module, "checkDict48", group_price, document_no) # # 断言实际结果中是否包含预期结果的内容 diff --git a/data/cmdc_special_fresenius_group/data b/data/cmdc_special_fresenius_group/data index c62a5110..8d087195 100644 --- a/data/cmdc_special_fresenius_group/data +++ b/data/cmdc_special_fresenius_group/data @@ -302,6 +302,7 @@ checkDict47: {"groupPrice":"%s","groupName":"%s"} checkDict48: {"groupPrice":"%s","documentNo":"%s"} #查询指定套包协议特价信息 "payload49": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"协议套包","companyCode":"","groupType":0,"status":null,"pageStart":1,"pageSize":8} +"payload49_1": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"套包协议特价商品显示验证","companyCode":"","groupType":0,"status":null,"pageStart":1,"pageSize":8} #测试场景:代客下单_套包清单_查询条件验证 -- GitLab From 38538fae844d2a60e0ae4ee7afac815ce23a5d5c Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 4 Dec 2023 08:31:15 +0800 Subject: [PATCH 04/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" index 2afdcda2..1ba2b612 100644 --- "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" +++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" @@ -51,8 +51,9 @@ request_body = group_json # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) -# print(result) +print(result) # 获取预期结果 check_dict = commonFuc().get_business_data(module, "checkDict16") +# print(check_dict) # 断言实际结果中是否包含预期结果的内容 commonFuc().check_result(check_dict, result) -- GitLab From 13022625882f41b0ac1f49a43dfd8639f6a5dcc4 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 4 Dec 2023 10:32:49 +0800 Subject: [PATCH 05/74] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2jde?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 56 +++++++++++ data/cmdc_order_handle/data | 93 +++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 "air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" create mode 100644 data/cmdc_order_handle/data diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..cd0eb663 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,56 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +import random + +""" +case_tag:cmdc_api,cmdc查询jde配置接口验证,2265,2265-1,sit,bs +涉及到接口:多采商城查询jde配置接口 +""" + +from common.common_func import commonFuc +import requests +import json + + +module = "cmdc_order_handle" + +# # 第一步登录多采商城获取token +# # 获取登录所需账号密码 +# username = commonFuc().get_business_data(module, "username1") +# password = commonFuc().get_business_data(module, "password1") +# # 获取登录后Cmdc_access_token +# cmdc_access_token = CmdcMaiiLogin(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, "url_query_website") +request_body = commonFuc().get_business_data(module, "payload_query_website") +# 发送请求 +result = requests.post(url, json=request_body) +result = json.loads(result.content) +print(result) +# 生成随机数 +random_website = random.randint(0, len(result["data"])-1) + +# 获取站点信息 +companyId = result["data"][random_website]["companyId"] + +# 第三步根据公司id获取对应jde配置信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_jde_config") +request_body = commonFuc().get_business_data(module, "payload_jde_config", companyId) + +""" + 场景:查询jde配置接口验证 + 用例名称:查询jde配置接口验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict_jde_config") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data new file mode 100644 index 00000000..54a5525d --- /dev/null +++ b/data/cmdc_order_handle/data @@ -0,0 +1,93 @@ +# 多采商城登录信息 +"username": "BJ0621" +"password": "Aa123456" + +#后台运营管理系统登录信息(子站点上海医疗器械有限公司) +"username1": "Admin00111" +"password1": "Aa123456" + + +#后台管理系统headers +json_headers: { + "Content-Type": "application/json", + "Cmdc_access_token": "%s" +} + +#文件上传headers +json_headers_file: { + "Cmdc_access_token": "%s" +} + +#多采商城headers +json_headers1: { + "Cmdc_access_token": "%s", + "Sourcetype": "mall" +} + +#测试场景一:查询jde配置接口验证 +#站点查询接口信息 +"url_query_website": "/cms/public/website/queryAll" +"payload_query_website": {} +#查询jde配置接口信息 +"url_jde_config": "/user/public/queryJdeConfigByCode" +"payload_jde_config": {"companyId":"%s"} +#预期结果 +checkDict_jde_config: {"success":true,"code":"200","message":"OK"} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- GitLab From 2d45caf642296a2422f29bdeb99d553972ae6bfa Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 4 Dec 2023 11:33:32 +0800 Subject: [PATCH 06/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 5 +- ...45\345\217\243\351\252\214\350\257\201.py" | 62 +++++++++++++++++++ data/cmdc_order_handle/data | 10 ++- 3 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" index cd0eb663..cfce58f7 100644 --- "a/air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242jde\351\205\215\347\275\256\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -1,15 +1,14 @@ # -*- encoding=utf8 -*- __author__ = "liguangyu" -import random - """ -case_tag:cmdc_api,cmdc查询jde配置接口验证,2265,2265-1,sit,bs +case_tag:cmdc_api,cmdc查询jde配置接口验证,2288,2288-1,sit,bs 涉及到接口:多采商城查询jde配置接口 """ from common.common_func import commonFuc import requests +import random import json diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..1e8744c2 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\345\225\206\345\223\201\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,62 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询商品信息接口验证,2288,2288-2,sit,bs +涉及到接口:多采商城查询商品信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录后台运营平台获取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, "url_product") +request_body = commonFuc().get_business_data(module, "payload_product") + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 获取商品信息 +product_id = result["data"]["list"][0]["productId"] + +# 第三步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第四步查询商品信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1", product_id) + +""" + 场景:查询商品信息接口验证 + 用例名称:查询商品信息接口验证 + 输出:{"productId":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +result = {"productId": result["data"]["productId"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict1", product_id) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 54a5525d..19151493 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -35,7 +35,15 @@ json_headers1: { checkDict_jde_config: {"success":true,"code":"200","message":"OK"} - +#测试场景一:查询商品信息接口验证 +#查询已上架商品信息 +"url_product": "/product/mall/queryProductInfoByPage" +"payload_product": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":8869,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null,"status":101} +#查询商品信息接口验证 +"url1": "/product/mall/queryProductInfoById" +"payload1": {"productId":"%s"} +#预期结果 +checkDict1: {"productId":"%s"} -- GitLab From 3bea2aef57d4f1fd8f6ec41b95181e053535a77b Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 4 Dec 2023 14:11:46 +0800 Subject: [PATCH 07/74] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E5=9C=BA=E6=99=AF=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\346\203\205\346\237\245\350\257\242.py" | 62 ++++++++++++++++++ ...46\346\203\205\346\237\245\350\257\242.py" | 63 +++++++++++++++++++ ...46\346\203\205\346\237\245\350\257\242.py" | 62 ++++++++++++++++++ data/cmdc_order_handle/data | 14 ++++- 4 files changed, 199 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" create mode 100644 "air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" create mode 100644 "air_case/cmdc_order_handle/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" diff --git "a/air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" new file mode 100644 index 00000000..d15aa050 --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\344\270\213\346\236\266\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" @@ -0,0 +1,62 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc验证已下架商品详情,2288,2288-3,sit,bs +涉及到接口:多采商城查询商品信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录后台运营平台获取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, "url2") +request_body = commonFuc().get_business_data(module, "payload2") + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 获取商品信息 +product_id = result["data"]["list"][0]["productId"] + +# 第三步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第四步查询商品信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1", product_id) + +""" + 场景: 验证是否可以查询已下架商品详情 + 用例名称:验证已下架商品详情 + 输出:{"productId":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +result = {"productId": result["data"]["productId"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict1", product_id) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" new file mode 100644 index 00000000..5b722b7c --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" @@ -0,0 +1,63 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc验证已失效商品详情,2288,2288-5,sit,bs +涉及到接口:多采商城查询商品信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录后台运营平台获取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, "url4") +request_body = commonFuc().get_business_data(module, "payload4") + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 获取商品信息 +product_id = result["data"]["list"][0]["productId"] + +# 第三步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第四步查询商品信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1", product_id) + +""" + 场景: 验证是否可以查询已失效商品详情 + 用例名称:验证已失效商品详情 + 输出:{"productId":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +result = {"productId": result["data"]["productId"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict1", product_id) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git "a/air_case/cmdc_order_handle/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" new file mode 100644 index 00000000..ebddbf7d --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.air/\351\252\214\350\257\201\346\216\247\351\224\200\345\225\206\345\223\201\350\257\246\346\203\205\346\237\245\350\257\242.py" @@ -0,0 +1,62 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc验证控销商品详情,2288,2288-4,sit,bs +涉及到接口:多采商城查询商品信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录后台运营平台获取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, "url3") +request_body = commonFuc().get_business_data(module, "payload3") + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 获取商品信息 +product_id = result["data"]["list"][0]["productId"] + +# 第三步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第四步查询商品信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1", product_id) + +""" + 场景: 验证是否可以查询控销商品详情 + 用例名称:验证控销商品详情 + 输出:{"productId":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +result = {"productId": result["data"]["productId"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict1", product_id) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 19151493..81e9d11c 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -45,10 +45,20 @@ checkDict_jde_config: {"success":true,"code":"200","message":"OK"} #预期结果 checkDict1: {"productId":"%s"} +#测试场景二:验证查询已下架商品 +#查询已下架商品信息 +"url2": "/product/mall/queryProductInfoByPage" +"payload2": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":null,"isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":482,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":null,"startTime":null,"endTime":null,"status":102} +#测试场景三:验证查询控销商品 +#查询控销商品信息 +"url3": "/product/queryControlSalesProduct" +"payload3": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":411,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":null,"startTime":null,"endTime":null} - - +#测试场景四:验证查询已失效商品 +#查询已上架商品信息 +"url4": "/product/mall/queryProductByJdeStatus" +"payload4": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":null,"isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":3440,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null} -- GitLab From 755b7544765ac681af039566d97c542e05ad46c4 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 4 Dec 2023 15:19:10 +0800 Subject: [PATCH 08/74] =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60\345\235\200\344\277\241\346\201\257.py" | 43 +++++++++++++++++++ data/cmdc_order_handle/data | 8 +++- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" diff --git "a/air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" new file mode 100644 index 00000000..6a788902 --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" @@ -0,0 +1,43 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc验证下单时不传地址信息,2288,2288-8,sit,bs +涉及到接口:多采商城下单接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步下单 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5") +request_body = commonFuc().get_business_data(module, "payload5") + +""" + 场景:验证下单时不选择收货地址,是否可以正常提交 + 用例名称:验证下单时不传地址信息 + 输出:{"success":false,"code":"3021","message":"国药集团联合医疗器械有限公司收件人不能为空","data":null,"freshToken":null} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict5") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 81e9d11c..82c6df48 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -60,8 +60,12 @@ checkDict1: {"productId":"%s"} "url4": "/product/mall/queryProductByJdeStatus" "payload4": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":null,"isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":3440,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null} - - +#测试场景五:验证下单时不传地址信息 +#下单接口信息 +"url5": "/order/public/saveAllDemandOrder" +"payload5": {"国药集团联合医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1068927,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"40000.00","productAmount":40000,"payableAmount":20000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9038,"productName":"脉搏碳氧血氧测量仪","productCode":"10416500","productNature":"01","brandName":null,"optionStr":"Rad-57","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/8453e463-ac86-4e1d-bbe8-9dfd6b8e020f.png","lineNumber":null,"price":20000,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":"2","sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"40000.00","measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9216","manufacturer":"迈心诺公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":40000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-57","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":7,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"fresenuis":false,"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]}}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":20000,"discountAmountWholeLine":0,"payableAmountWholeLine":20000,"discountRate":100,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-57","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":7,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":20000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"lastSaveDemanadItems":null,"totalPriceNum":0}],"addressConfig":2,"openPreTaxAmount":1,"notice":"站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示","remark":null,"receiverPhoneNote":"13888715120","promotionOrRebate":1,"promotionType":1,"productLineCodes":[""],"addressIsCommon":true,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":2,"totalPrice":40000,"discountAmount":0,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9038,"productName":"脉搏碳氧血氧测量仪","productCode":"10416500","productNature":"01","brandName":null,"optionStr":"Rad-57","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/8453e463-ac86-4e1d-bbe8-9dfd6b8e020f.png","lineNumber":null,"price":20000,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":"2","sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"40000.00","measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9216","manufacturer":"迈心诺公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":40000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-57","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":7,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"fresenuis":false,"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]}}],"productPrice":40000,"fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[],"defaultBankInfo":{"accountId":5,"companyId":7,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市顺义区金航中路3号院天竺万科中心1号楼3单元2层201(北京天竺综合保税区)","bank":"中国工商银行股份有限公司北京新街口支行","accountName":"国药集团联合医疗器械有限公司","accountNumber":"0200002919200155850","disableSign":0,"deleteSign":0,"createTime":"2021-06-03 09:46:49","updateTime":"2021-06-03 09:46:49","createBy":114378,"realName":"国药集团联合医疗器械有限公司admin"},"addressList":[],"selecteAddresId":16464,"receiverNote":null,"receiverAddressNote":null,"addressNoNote":105378,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"40000.0000","taxRate":null,"draftDemandId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1068927,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"40000.00","productAmount":40000,"payableAmount":20000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9038,"productName":"脉搏碳氧血氧测量仪","productCode":"10416500","productNature":"01","brandName":null,"optionStr":"Rad-57","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/8453e463-ac86-4e1d-bbe8-9dfd6b8e020f.png","lineNumber":null,"price":20000,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":"2","sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"40000.00","measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9216","manufacturer":"迈心诺公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":40000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-57","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":7,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"fresenuis":false,"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":20000,"discountAmountWholeLine":0,"payableAmountWholeLine":20000,"discountRate":100,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-57","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":7,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":20000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"lastSaveDemanadItems":null,"totalPriceNum":0,"pSign":0}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":40000,"paymentType":0,"accountId":5,"version":null,"receiveBankName":"国药集团联合医疗器械有限公司","receiveBankAccount":"0200002919200155850","addressNumber":105378,"receiverName":"","receiverContact":"","receiverAddress":"","buyerCartIds":[""],"sellerCompanyCode":"00102","companyId":7}} +#预期结果 +checkDict5: {"success":false,"code":"3021","message":"国药集团联合医疗器械有限公司收件人不能为空","data":null,"freshToken":null} -- GitLab From 32464140d3e93472971842af7c3717618f32540a Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 5 Dec 2023 08:47:55 +0800 Subject: [PATCH 09/74] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...23\347\256\227\351\241\265\351\235\242.py" | 52 +++++++++++++++++++ data/cmdc_order_handle/data | 7 ++- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" diff --git "a/air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..c6785fbc --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,52 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc附件上传接口验证_结算页面,2288,2288-10,sit,bs +涉及到接口:多采商城附件上传接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json +import os + + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 获取文件 +BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +file_path = BASE_DIR + "/data/cmdc_files/test_file.jpg" + +# 第二步下单 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url6") + +# 获取文件 +file = open(file_path, "rb") +files = {"file": file} + +""" + 场景: 验证结算页面附件上传接口能否正常使用 + 用例名称:附件上传接口验证_结算页面 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.post(url, files=files, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict6") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 82c6df48..6a9c435f 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -67,8 +67,11 @@ checkDict1: {"productId":"%s"} #预期结果 checkDict5: {"success":false,"code":"3021","message":"国药集团联合医疗器械有限公司收件人不能为空","data":null,"freshToken":null} - - +#测试场景六:附件上传接口验证_结算页面 +#接口信息 +"url6": "/order/mall/demandFileUpload" +#预期结果 +checkDict6: {"success":true,"code":"200","message":"OK"} -- GitLab From 076c007cd8935b3faac968e1929ba1d65dfbb224 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 5 Dec 2023 10:02:48 +0800 Subject: [PATCH 10/74] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=EF=BC=9A=E6=94=B6=E8=B4=A7=E5=9C=B0=E5=9D=80=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=8F=8A=E6=9D=A1=E4=BB=B6=E6=9F=A5=E8=AF=A2=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\345\235\200\345\210\227\350\241\250_a.py" | 53 ++++++++++++++++++ ...\345\235\200\345\210\227\350\241\250_b.py" | 53 ++++++++++++++++++ ...\345\235\200\345\210\227\350\241\250_c.py" | 53 ++++++++++++++++++ ...23\347\256\227\351\241\265\351\235\242.py" | 46 +++++++++++++++ ...23\347\256\227\351\241\265\351\235\242.py" | 4 +- data/cmdc_files/test_file.jpg | Bin 0 -> 142394 bytes data/cmdc_order_handle/data | 16 +++++- 7 files changed, 221 insertions(+), 4 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.py" create mode 100644 "air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" create mode 100644 "air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" create mode 100644 "air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" create mode 100644 data/cmdc_files/test_file.jpg diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.py" new file mode 100644 index 00000000..360e3d20 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_a.py" @@ -0,0 +1,53 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询条件验证_收货地址列表_a,2288,2288-12,sit,bs +涉及到接口:多采商城获取收货地址列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取结算页面收货地址列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7") +request_body = commonFuc().get_business_data(module, "payload7") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取收货信息 +receiver_name = result["data"]["addresses"]["list"][0]["receiverName"][-2:] + +# 第三步根据查询条件查询收货列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8") +request_body = commonFuc().get_business_data(module, "payload8", receiver_name) +""" + 场景:验证收货地址列表查询条件是否可正常使用,支持姓名、电话、收货地址模糊匹配 + 用例名称:查询条件验证_收货地址列表 + 输出:{"receiverName":"%s"};{"address":"%s"};{"mobile":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中收货人姓名 +result = {"receiverName": result["data"]["addresses"]["list"][0]["receiverName"][-2:]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict8_1", receiver_name) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" new file mode 100644 index 00000000..609ab62c --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" @@ -0,0 +1,53 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询条件验证_收货地址列表_b,2288,2288-12,sit,bs +涉及到接口:多采商城获取收货地址列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取结算页面收货地址列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7") +request_body = commonFuc().get_business_data(module, "payload7") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取收货信息 +address = result["data"]["addresses"]["list"][0]["address"][-2:] + +# 第三步根据查询条件查询收货列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8") +request_body = commonFuc().get_business_data(module, "payload8", address) +""" + 场景:验证收货地址列表查询条件是否可正常使用,支持姓名、电话、收货地址模糊匹配 + 用例名称:查询条件验证_收货地址列表 + 输出:{"receiverName":"%s"};{"address":"%s"};{"mobile":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中收货人姓名 +result = {"address": result["data"]["addresses"]["list"][0]["address"][-2:]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict8_2", address) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" new file mode 100644 index 00000000..17e79e31 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" @@ -0,0 +1,53 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询条件验证_收货地址列表_c,2288,2288-12,sit,bs +涉及到接口:多采商城获取收货地址列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取结算页面收货地址列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7") +request_body = commonFuc().get_business_data(module, "payload7") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取收货信息 +mobile = result["data"]["addresses"]["list"][0]["mobile"][-2:] + +# 第三步根据查询条件查询收货列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8") +request_body = commonFuc().get_business_data(module, "payload8", mobile) +""" + 场景:验证收货地址列表查询条件是否可正常使用,支持姓名、电话、收货地址模糊匹配 + 用例名称:查询条件验证_收货地址列表 + 输出:{"receiverName":"%s"};{"address":"%s"};{"mobile":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中收货人姓名 +result = {"mobile": result["data"]["addresses"]["list"][0]["mobile"][-2:]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict8_3", mobile) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..2c800dfc --- /dev/null +++ "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,46 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取收货地址列表_结算页面_a,2288,2288-11,sit,bs +涉及到接口:多采商城获取收货地址列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取结算页面收货地址列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7") +# print(url) +request_body = commonFuc().get_business_data(module, "payload7") +# 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, "checkDict7") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git "a/air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" index c6785fbc..90337446 100644 --- "a/air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" +++ "b/air_case/cmdc_order_handle/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\231\204\344\273\266\344\270\212\344\274\240\346\216\245\345\217\243\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -23,11 +23,11 @@ password = commonFuc().get_business_data(module, "password") cmdc_access_token = CmdcMaiiLogin(username, password).get_token() headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) -# 获取文件 +# 获取文件地址 BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) file_path = BASE_DIR + "/data/cmdc_files/test_file.jpg" -# 第二步下单 +# 第二步上传附件 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url6") # 获取文件 diff --git a/data/cmdc_files/test_file.jpg b/data/cmdc_files/test_file.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c3ed9fcb7eca5b62ee4132c2e8947750fbb9ebec GIT binary patch literal 142394 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 Date: Tue, 5 Dec 2023 10:51:49 +0800 Subject: [PATCH 11/74] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=EF=BC=9A=E8=A7=84=E6=A0=BC=E5=9E=8B=E5=8F=B7=E5=92=8C=E5=95=86?= =?UTF-8?q?=E5=93=81=E7=BC=96=E7=A0=81=E6=9F=A5=E8=AF=A2=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...23\347\256\227\351\241\265\351\235\242.py" | 47 +++++++++++++++++++ ...23\347\256\227\351\241\265\351\235\242.py" | 36 ++++++++++++++ ...23\347\256\227\351\241\265\351\235\242.py" | 39 +++++++++++++++ data/cmdc_order_handle/data | 21 +++++++-- 4 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" create mode 100644 "air_case/cmdc_order_handle/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" create mode 100644 "air_case/cmdc_order_handle/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" diff --git "a/air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..b1d19b70 --- /dev/null +++ "b/air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,47 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc规格型号模糊查询验证_结算页面,2288,2288-14,sit,bs +涉及到接口:多采商城规格型号模糊查询接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 生成随机数据 +random_code = random.randint(0, 10) +# 第二步进行规格型号模糊匹配查询 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10") +request_body = commonFuc().get_business_data(module, "payload10", random_code) + +""" + 场景:验证结算页面规格型号模糊查询接口连通性 + 用例名称:规格型号模糊查询验证_结算页面 + 输出:{"data":["%s"]} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中数据 +result = {"data": result["data"][0][0]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict10", random_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..65523d4c --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\345\225\206\345\223\201\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,36 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc通过商品编码查询商品验证_结算页面,2288,2288-13,sit,bs +涉及到接口:多采商城根据商品编码查询商品信息接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_order_handle" + +# 根据商品编码查询商品信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url9") +request_body = commonFuc().get_business_data(module, "payload9") + +""" + + 场景: 验证结算页面通过商品编码查询商品信息接口连通性 + 用例名称:通过商品编码查询商品验证_结算页面 + 输出:{"productCode":"13977315"} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# print(result) +# 获取查询结果中商品code +result = {"productCode": result["data"]["list"][0]["productCode"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict9") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..b510f866 --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\350\247\204\346\240\274\345\236\213\345\217\267\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,39 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc通过规格型号查询商品验证_结算页面,2288,2288-15,sit,bs +涉及到接口:多采商城根据商品编码查询商品信息接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_order_handle" + +# 规格型号 +specification = "10.63cm(长)×1.88cm(宽)" +# 根据规格型号查询商品信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url11") +request_body = commonFuc().get_business_data(module, "payload11", specification) + +""" + + 场景: 验证结算页面通过规格型号查询商品信息接口连通性 + 用例名称:通过规格型号查询商品验证_结算页面 + 输出:{"specifications":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# print(result) +# 获取查询结果中商品对应的规格型号 +result = {"specifications": result["data"]["list"][0]["specifications"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict11", specification) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index deffe77b..f1fd48d0 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -92,12 +92,27 @@ checkDict8_2: {"address":"%s"} checkDict8_3: {"mobile":"%s"} +#测试场景九:通过商品编码查询商品验证_结算页面 +#接口信息 +"url9": "/product/public/listQuickOrderProduct" +"payload9": {"type":1,"companyCode":"00102","userNo":"1068927","productCode":"13977315"} +#预期结果 +checkDict9: {"productCode":"13977315"} +#测试场景十:规格型号模糊查询验证_结算页面 +#接口信息 +"url10": "/product/public/getMaterialCodeList" +"payload10": {"allMaterialSign":2,"companyCode":"00102","userNo":"1068927","materialCodeInput":"%s"} +#预期结果 +checkDict10: {"data":"%s"} - - - +#测试场景十一:通过规格型号查询商品验证_结算页面 +#接口信息 +"url11": "/product/public/listQuickOrderProduct" +"payload11": {"type":1,"companyCode":"00102","userNo":"1068927","specificationsExact":"%s"} +#预期结果 +checkDict11: {"specifications":"%s"} -- GitLab From 018def49d4c52920b3a7133087e296171a60c75a Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 5 Dec 2023 11:04:32 +0800 Subject: [PATCH 12/74] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=EF=BC=9A=E7=89=A9=E6=96=99=E7=BC=96=E7=A0=81=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...23\347\256\227\351\241\265\351\235\242.py" | 47 +++++++++++++++++++ ...23\347\256\227\351\241\265\351\235\242.py" | 38 +++++++++++++++ data/cmdc_order_handle/data | 14 +++++- 3 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" create mode 100644 "air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" diff --git "a/air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..aa60ca99 --- /dev/null +++ "b/air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,47 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc物料编码模糊查询验证_结算页面,2288,2288-16,sit,bs +涉及到接口:多采商城物料编码模糊查询接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 生成随机数据 +random_code = random.randint(0, 10) +# 第二步进行物料编码模糊匹配查询 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url12") +request_body = commonFuc().get_business_data(module, "payload12", random_code) + +""" + 场景:验证结算页面物料编码模糊查询接口连通性 + 用例名称:物料编码模糊查询验证_结算页面 + 输出:{"data":["%s"]} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中数据 +result = {"data": result["data"][0][0]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict12", random_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..d73728fb --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,38 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc通过物料编码查询商品验证_结算页面,2288,2288-17,sit,bs +涉及到接口:多采商城根据物料编码查询商品信息接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_order_handle" + +# 规格型号 +material_code = "00-8800-000-10" +# 根据物料编码查询商品信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url13") +request_body = commonFuc().get_business_data(module, "payload13", material_code) + +""" + + 场景: 验证结算页面通过规格型号查询商品信息接口连通性 + 用例名称:通过规格型号查询商品验证_结算页面 + 输出:{"materialCode":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# print(result) +# 获取查询结果中商品对应的物料编码 +result = {"materialCode": result["data"]["list"][0]["materialCode"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict13", material_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) \ No newline at end of file diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index f1fd48d0..04b79149 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -114,9 +114,19 @@ checkDict10: {"data":"%s"} #预期结果 checkDict11: {"specifications":"%s"} +#测试场景十二:物料编码模糊查询验证_结算页面 +#接口信息 +"url12": "/product/public/getMaterialCodeList" +"payload12": {"allMaterialSign":1,"companyCode":"00102","userNo":"1068927","materialCodeInput":"%s"} +#预期结果 +checkDict12: {"data":"%s"} - - +#测试场景十三:通过物料编码查询商品验证_结算页面 +#接口信息 +"url13": "/product/public/listQuickOrderProduct" +"payload13": {"type":1,"companyCode":"00102","userNo":"1068927","materialCodeExact":"%s"} +#预期结果 +checkDict13: {"materialCode":"%s"} -- GitLab From 3a75ed88d7a6bbae609c9fbf448f2127065da4f0 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 5 Dec 2023 11:20:06 +0800 Subject: [PATCH 13/74] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=EF=BC=9A=E9=80=9A=E8=BF=87Excel=E5=A4=8D=E5=88=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=95=86=E5=93=81=E6=8E=A5=E5=8F=A3=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...23\347\256\227\351\241\265\351\235\242.py" | 49 +++++++++++++++++++ data/cmdc_order_handle/data | 7 ++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_order_handle/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" diff --git "a/air_case/cmdc_order_handle/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..33b02c0b --- /dev/null +++ "b/air_case/cmdc_order_handle/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201\345\212\237\350\203\275\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,49 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc通过Excel复制添加商品功能验证_结算页面,2288,2288-16,sit,bs +涉及到接口:多采商城通过Excel复制添加商品接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 生成随机数据 +random_code = random.randint(0, 10) +product_code = "13977315" +material_code = "00-8800-000-10" +# 第二步通过Excel复制添加商品 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url14") +request_body = commonFuc().get_business_data(module, "payload14", product_code, material_code, random_code) + +""" + 场景:验证结算页面通过Excel复制添加商品接口连通性 + 用例名称:通过Excel复制添加商品功能验证_结算页面 + 输出:{"productCode":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中数据 +result = {"productCode": result["data"]["data"][0]["productCode"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict14", product_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 04b79149..7a5a9a9e 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -129,7 +129,12 @@ checkDict12: {"data":"%s"} checkDict13: {"materialCode":"%s"} - +#测试场景十四:通过Excel复制添加商品功能验证_结算页面 +#接口信息 +"url14": "/product/public/listQuickOrderProductExcel" +"payload14": {"queryList":[{"productCode":"%s","materialCode":"%s","quantity":"%s"}],"productLineCode":"","companyCode":"00102","userNo":1068927} +#预期结果 +checkDict14: {"productCode":"%s"} -- GitLab From 19e999f2b9f427e724934e8a231d68f17c6019f2 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 5 Dec 2023 11:44:26 +0800 Subject: [PATCH 14/74] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=EF=BC=9A=E5=95=86=E5=93=81=E6=B8=85=E5=8D=95=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=92=8C=E6=9F=A5=E8=AF=A2=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...23\347\256\227\351\241\265\351\235\242.py" | 34 +++++++++++++ ...23\347\256\227\351\241\265\351\235\242.py" | 50 +++++++++++++++++++ data/cmdc_order_handle/data | 14 +++++- 3 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" create mode 100644 "air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.py" diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..07b575c1 --- /dev/null +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\345\225\206\345\223\201\346\270\205\345\215\225\350\216\267\345\217\226\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,34 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc商品清单获取验证_结算页面,2288,2288-19,sit,bs +涉及到接口:多采商城获取商品清单接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_order_handle" + +# 获取商品清单信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url15") +request_body = commonFuc().get_business_data(module, "payload15") + +""" + + 场景: 商品清单获取验证_结算页面 + 用例名称:商品清单获取验证_结算页面 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict15") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.py" new file mode 100644 index 00000000..2e4b87f1 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\346\270\205\345\215\225_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -0,0 +1,50 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询条件验证_商品清单_结算页面,2288,2288-20,sit,bs +涉及到接口:多采商城获取商品清单接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_order_handle" + +# 第一步获取商品清单信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url15") +request_body = commonFuc().get_business_data(module, "payload15") +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) + +# 获取商品信息 +product_code = result["data"]["list"][0]["productCode"] +product_name = result["data"]["list"][0]["productName"] +material_code = result["data"]["list"][0]["materialCode"] +specifications = result["data"]["list"][0]["specifications"] + +# 第二步进行商品查询 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url16") +request_body = commonFuc().get_business_data(module, "payload16", product_code, product_name, material_code, specifications) + +""" + + 场景: 查询条件验证_商品清单_结算页面 + 用例名称:查询条件验证_商品清单_结算页面 + 输出:{"productCode":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# print(result) +# 获取查询结果中商品信息 +result = {"productCode": result["data"]["list"][0]["productCode"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict16", product_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 7a5a9a9e..f579ecff 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -136,9 +136,19 @@ checkDict13: {"materialCode":"%s"} #预期结果 checkDict14: {"productCode":"%s"} +#测试场景十五:商品清单获取验证_结算页面 +#接口信息 +"url15": "/product/public/listQuickOrderProduct" +"payload15": {"productCode":null,"productName":null,"materialCode":null,"specifications":null,"productLineName":null,"pageSize":null,"pageNum":null,"total":null,"productLineCode":null,"companyCode":"00102","userNo":"1068927"} +#预期结果 +checkDict15: {"success":true,"code":"200","message":"OK"} - - +#测试场景十六:查询条件验证_商品清单_结算页面 +#接口信息 +"url16": "/product/public/listQuickOrderProduct" +"payload16": {"productCode":"%s","productName":"%s","materialCode":"%s","specifications":"%s","productLineName":null,"pageSize":null,"pageNum":null,"total":null,"productLineCode":null,"companyCode":"00102","userNo":"1068927"} +#预期结果 +checkDict16: {"productCode":"%s"} -- GitLab From 0bf1fe66dc3a7e82b763b9a52dd72318c4c4b31d Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 5 Dec 2023 11:55:03 +0800 Subject: [PATCH 15/74] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\345\235\200\345\210\227\350\241\250_b.py" | 1 + ...\345\235\200\345\210\227\350\241\250_c.py" | 1 + ...23\347\256\227\351\241\265\351\235\242.py" | 2 - ...23\347\256\227\351\241\265\351\235\242.py" | 4 +- log/runtime.txt | 56 +------------------ 5 files changed, 5 insertions(+), 59 deletions(-) diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" index 609ab62c..d9adf2ef 100644 --- "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_b.py" @@ -34,6 +34,7 @@ address = result["data"]["addresses"]["list"][0]["address"][-2:] # 第三步根据查询条件查询收货列表 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8") request_body = commonFuc().get_business_data(module, "payload8", address) + """ 场景:验证收货地址列表查询条件是否可正常使用,支持姓名、电话、收货地址模糊匹配 用例名称:查询条件验证_收货地址列表 diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" index 17e79e31..0eed8dc7 100644 --- "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_c.py" @@ -34,6 +34,7 @@ mobile = result["data"]["addresses"]["list"][0]["mobile"][-2:] # 第三步根据查询条件查询收货列表 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8") request_body = commonFuc().get_business_data(module, "payload8", mobile) + """ 场景:验证收货地址列表查询条件是否可正常使用,支持姓名、电话、收货地址模糊匹配 用例名称:查询条件验证_收货地址列表 diff --git "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" index 2c800dfc..130258cf 100644 --- "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" +++ "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\266\350\264\247\345\234\260\345\235\200\345\210\227\350\241\250_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -24,9 +24,7 @@ headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_tok # 第二步获取结算页面收货地址列表 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7") -# print(url) request_body = commonFuc().get_business_data(module, "payload7") -# print(request_body) """ 场景:验证下单时是否可正常获取到收货地址列表数据 diff --git "a/air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" index d73728fb..c4cf70b0 100644 --- "a/air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" +++ "b/air_case/cmdc_order_handle/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\351\200\232\350\277\207\347\211\251\346\226\231\347\274\226\347\240\201\346\237\245\350\257\242\345\225\206\345\223\201\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -20,8 +20,8 @@ request_body = commonFuc().get_business_data(module, "payload13", material_code) """ - 场景: 验证结算页面通过规格型号查询商品信息接口连通性 - 用例名称:通过规格型号查询商品验证_结算页面 + 场景: 验证结算页面通过物料编码查询商品信息接口连通性 + 用例名称:通过物料编码查询商品验证_结算页面 输出:{"materialCode":"%s"} """ diff --git a/log/runtime.txt b/log/runtime.txt index da73db73..950499b5 100644 --- a/log/runtime.txt +++ b/log/runtime.txt @@ -1,55 +1 @@ -查询赠品 1695341383430 1695341383724 liguangyu -查询失效商品 1695341384600 1695341384617 liguangyu -查询控销商品 1695341384633 1695341384651 liguangyu -查询已上架商品 1695341384667 1695341384689 liguangyu -需求单_获取用户信息失败 1695341384705 1695341385259 liguangyu -需求单-草稿订单删除 1695341385277 1695341387469 liguangyu -获取需求单列表 1695341387487 1695341389446 liguangyu -需求单-草稿订单删除-逆向 1695341389468 1695341391342 liguangyu -需求单删除 1695341391362 1695341392901 liguangyu -重复删除需求单 1695341392919 1695341394639 liguangyu -删除其他状态下需求单 1695341394659 1695341396211 liguangyu -删除不存在的需求单 1695341396229 1695341397377 liguangyu -需求单审核通过_代客下单 1695341397397 1695341404105 liguangyu -需求单审核通过_快速下单 1695341404119 1695341412518 liguangyu -需求单创建 1695341412538 1695341414487 liguangyu -需求草稿订单创建 1695341414505 1695341416671 liguangyu -新增赠品_控销_商品至常购清单列表 1695341416690 1695341418596 liguangyu -新增不存在的商品至常购清单列表 1695341418615 1695341419290 liguangyu -新增赠品至常购清单列表 1695341419306 1695341421315 liguangyu -获取用户常购清单列表 1695341421332 1695341425024 liguangyu -常购清单列表商品移除 1695341425048 1695341428888 liguangyu -新增JDE已停用的商品至常购清单列表 1695341428904 1695341430797 liguangyu -新增控销商品至常购清单列表 1695341430813 1695341432656 liguangyu -添加跨站点商品至常购清单列表 1695341432673 1695341433626 liguangyu -新增商品至常购清单列表 1695341433646 1695341435762 liguangyu -新增已失效商品至常购清单列表 1695341435783 1695341437875 liguangyu -客户查询 1695341437892 1695341439033 liguangyu -审核不存在的需求单 1695341439053 1695341440000 liguangyu -重复审核 1695341440016 1695341442815 liguangyu -审核其他状态的需求单 1695341442838 1695341444398 liguangyu -需求单审核不通过 1695341444418 1695341445828 liguangyu -需求单创建 1695341445842 1695341448060 liguangyu -需求单删除操作 1695341448077 1695341449480 liguangyu -获取需求单列表 1695341449498 1695341454095 liguangyu -需求单取消操作 1695341454118 1695341455477 liguangyu -新增跨站点商品至购物车 1695341455494 1695341457125 liguangyu -新增已控销商品至购物车列表 1695341457144 1695341459274 liguangyu -购物车新增商品 1695341459290 1695341461465 liguangyu -添加JDE已停用的商品至购物车列表 1695341461484 1695341463728 liguangyu -购物车数量修改验证 1695341463749 1695341466697 liguangyu -购物车商品移除 1695341466715 1695341468735 liguangyu -新增赠品至购物车 1695341468755 1695341469929 liguangyu -新增不存在商品至购物车列表 1695341469952 1695341470828 liguangyu -获取购物车列表 1695341470846 1695341472525 liguangyu -新增已失效商品至购物车列表 1695341472545 1695341474619 liguangyu -新增赠品_控销_商品至购物车 1695341474635 1695341476709 liguangyu -用户信息查询 1695341476728 1695341477685 liguangyu -商品列表_快速下单 1695341477706 1695341479429 liguangyu -商品列表_代客下单 1695341479449 1695341481128 liguangyu -获取客户列表 1695341481149 1695341482426 liguangyu -采购单查询 1695341482446 1695341483593 liguangyu -快速下单权限_否 1695341483614 1695341484605 liguangyu -快速下单权限_能 1695341484623 1695341485617 liguangyu -获取站点信息 1695341485636 1695341486392 liguangyu -站点切换 1695341486412 1695341487156 liguangyu +查询条件验证_商品清单_结算页面 1701747785317 1701747787862 liguangyu -- GitLab From 9716695eef478d31c3c491d791b4da56c9778b7d Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 5 Dec 2023 16:17:47 +0800 Subject: [PATCH 16/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E6=94=B6=E8=B4=A7?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 42 +++++++++++++++++++ data/cmdc_order_handle/data | 7 +++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_order_handle/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_order_handle/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..76a1f1d7 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\224\250\346\210\267\345\234\260\345\235\200\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,42 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询用户地址接口验证,2288,2288-21,sit,bs +涉及到接口:多采商城结算页面查询用户收货地址接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步查询用户收货地址信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url17") +request_body = commonFuc().get_business_data(module, "payload17") + +""" + 场景: 验证多采商城结算页面查询用户收货地址信息接口连通性 + 用例名称:查询用户地址接口验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict17") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) \ No newline at end of file diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index f579ecff..87b9d288 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -150,7 +150,12 @@ checkDict15: {"success":true,"code":"200","message":"OK"} #预期结果 checkDict16: {"productCode":"%s"} - +#测试场景十七:查询用户地址接口验证 +#接口信息 +"url17": "/user/mall/queryUserAddress" +"payload17": {"companyId":7} +#预期结果 +checkDict17: {"success":true,"code":"200","message":"OK"} -- GitLab From 6cf83b650c29e34111e6af7a1af7f629c01a7a60 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 6 Dec 2023 10:30:16 +0800 Subject: [PATCH 17/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E5=8E=9F=E8=AE=A2=E5=8D=95=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81=5F=E5=86=8D?= =?UTF-8?q?=E6=9D=A5=E4=B8=80=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...15\346\235\245\344\270\200\345\215\225.py" | 57 +++++++++++++++++++ data/cmdc_order_handle/data | 9 +++ 2 files changed, 66 insertions(+) create mode 100644 "air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" diff --git "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" new file mode 100644 index 00000000..7b220593 --- /dev/null +++ "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" @@ -0,0 +1,57 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取原订单信息接口验证_再来一单,2288,2288-22,sit,bs +涉及到接口:多采商城需求单列表、获取原订单信息等接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取多采商城需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand_list") +request_body = commonFuc().get_business_data(module, "payload_demand_list") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +print(result) + +# 生成随机数字,用于后续获取需求单 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] + +# 第三步获取原订单信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18") +request_body = commonFuc().get_business_data(module, "payload18", demand_id) + +""" + 场景: 验证再来一单功能获取原订单信息接口连通性 + 用例名称:获取原订单信息接口验证_再来一单 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict18") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 87b9d288..ccc1f5bc 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -158,7 +158,16 @@ checkDict16: {"productCode":"%s"} checkDict17: {"success":true,"code":"200","message":"OK"} +#测试场景十八:订单保存接口验证_再来一单 +#多采商城需求单列表接口信息 +"url_demand_list": "/order/public/ownListDemand" +"payload_demand_list": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":null,"pageSize":null} +#接口信息 +"url18": "/order/public/saveSameOrder" +"payload18": {"demandId":"%s"} +#预期结果 +checkDict18: {"success":true,"code":"200","message":"OK"} -- GitLab From 4ac48e755dee7930638e6e6ab15a404589afc958 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 6 Dec 2023 13:45:36 +0800 Subject: [PATCH 18/74] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" | 4 ++-- data/cmdc_order_handle/data | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" index 7b220593..98a818f1 100644 --- "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" +++ "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" @@ -28,7 +28,7 @@ request_body = commonFuc().get_business_data(module, "payload_demand_list") # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) -print(result) +# print(result) # 生成随机数字,用于后续获取需求单 random_demand = random.randint(0, len(result["data"]["list"]) - 1) @@ -42,7 +42,7 @@ request_body = commonFuc().get_business_data(module, "payload18", demand_id) """ 场景: 验证再来一单功能获取原订单信息接口连通性 用例名称:获取原订单信息接口验证_再来一单 - 输出:{"success":true,"code":"200","message":"OK"} + 输出:{"success":true,"code":"200","message":"ok"} """ # 发送请求 diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index ccc1f5bc..0a11be51 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -167,7 +167,7 @@ checkDict17: {"success":true,"code":"200","message":"OK"} "url18": "/order/public/saveSameOrder" "payload18": {"demandId":"%s"} #预期结果 -checkDict18: {"success":true,"code":"200","message":"OK"} +checkDict18: {"success":true,"code":"200","message":"ok"} -- GitLab From 86784e6380113d0e264fe3bd731910f23fe22232 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 6 Dec 2023 14:54:52 +0800 Subject: [PATCH 19/74] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E9=AA=8C=E8=AF=81:=E6=96=B0=E5=A2=9E=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=B8=8B=E6=9E=B6=E6=8B=A6=E6=88=AA=E9=AA=8C=E8=AF=81=5F?= =?UTF-8?q?=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...350\257\201_\344\270\213\345\215\225_a.py" | 54 +++++++++++++++++++ ...15\346\235\245\344\270\200\345\215\225.py" | 4 +- data/cmdc_order_handle/data | 16 ++++-- 3 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" new file mode 100644 index 00000000..938ec582 --- /dev/null +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" @@ -0,0 +1,54 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc商品下架拦截验证,2288,2288-24,sit,bs +涉及到接口:多采商城提交订单接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 进行商品下架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.status = 102 WHERE t.productId = 7991" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-order", sql) + +# 第二步进行提交订单 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19") +request_body = commonFuc().get_business_data(module, "payload19") + +""" + 场景: 验证下单时,商品下架,是否进行拦截 + 用例名称:商品下架拦截验证 + 输出:{"message": "商品证照校验错误"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取message +result = {"message": result["message"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict19") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" index 98a818f1..0ce7330d 100644 --- "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" +++ "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.air/\350\216\267\345\217\226\345\216\237\350\256\242\345\215\225\344\277\241\346\201\257\346\216\245\345\217\243\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225.py" @@ -22,9 +22,11 @@ password = commonFuc().get_business_data(module, "password") cmdc_access_token = CmdcMaiiLogin(username, password).get_token() headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) +order_num = "" + # 第二步获取多采商城需求单列表 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand_list") -request_body = commonFuc().get_business_data(module, "payload_demand_list") +request_body = commonFuc().get_business_data(module, "payload_demand_list", order_num) # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 0a11be51..1bf6e2c0 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -161,7 +161,7 @@ checkDict17: {"success":true,"code":"200","message":"OK"} #测试场景十八:订单保存接口验证_再来一单 #多采商城需求单列表接口信息 "url_demand_list": "/order/public/ownListDemand" -"payload_demand_list": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":null,"pageSize":null} +"payload_demand_list": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"%s","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":null,"pageSize":null} #接口信息 "url18": "/order/public/saveSameOrder" @@ -170,10 +170,20 @@ checkDict17: {"success":true,"code":"200","message":"OK"} checkDict18: {"success":true,"code":"200","message":"ok"} +#测试场景十九:商品下架拦截验证_下单 +#接口信息 +"url19": "/order/public/saveAllDemandOrder" +"payload19": {"国药集团上海医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1126384,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"48.2500","productAmount":48.25,"payableAmount":48.25,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"3111","productLineName":"康乐保","propertyStr":null,"storageType":"999","suppDist":null,"productId":7991,"productName":"水胶体油纱","productCode":"10056338","productNature":"01","brandName":null,"optionStr":"3915","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/13/be146b0a-4998-4e03-b250-17ed8d846f8b.jpg","lineNumber":null,"price":48.25,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":0,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":48.25,"measuringUnit":"个","auxiliaryMeasuringUnit":"EA","procurementMeasuringUnit":"EA","pricingMeasuringUnit":"EA","materialCode":"","manufacturer":"Coloplast A/S","produceRegisterNum":null,"riskRank":"003","productClassify":"6864","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":48.25,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"3915","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":true,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":1852.1,"useLimitEnd":1,"maxuseLimit":48.25}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":[{"rebateoperaskuid":null,"filialecode":"00111","rebateid":111,"customercode":null,"transactionamount":null,"transactiontype":null,"rebateStartTime":null,"rebateValidity":null,"balance":null,"deletesign":null,"note":null,"createtime":null,"updatetime":null,"demandId":null,"demandCode":null,"relevanceName":null,"rebateName":null,"customerCompanyName":null,"lineCodeDelete":null,"rebateTripId":null,"monNum":null,"relevanceCode":"3111","pageSize":null,"pageNum":null,"startTime":null,"endTime":null,"userId":null,"customerCodeList":null,"filialeCodeList":null,"companyName":null,"reSign":null,"demandParentCode":null,"distributionCode":null,"frontNote":null,"backNote":null,"cancelId":null,"effectivetype":null,"validityperiodSign":null,"soCode":null,"rebatename":"康乐保20230619","useLimitStart":0,"useLimitEnd":1,"istax":1,"taxround":0,"isdisposable":0,"productCode":null,"isOperated":null,"userPrice":null,"rebateFalg":null}],"rebateAmountList":null,"productLineCode":"3111","productLineName":"康乐保","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":1,"paymentAmountWholeLine":48.25,"discountAmountWholeLine":0,"payableAmountWholeLine":48.25,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":1852.1,"liquidCode":null,"shipmentTypeStr":null,"specifications":"3915","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":6,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"1","rebateControlSign":1,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":1,"countFormula":1,"countNumber":0,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":1,"singleRebateSign":0,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":48.25,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":1,"userBalancePrice":1852.1,"isEdit":true,"discountRateOne":100,"_rebateType":true}],"addressConfig":2,"openPreTaxAmount":0,"remark":null,"receiverPhoneNote":"/","promotionOrRebate":1,"promotionType":1,"productLineCodes":["3111"],"addressIsCommon":true,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":48.25,"discountAmount":0,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"3111","productLineName":"康乐保","propertyStr":null,"storageType":"999","suppDist":null,"productId":7991,"productName":"水胶体油纱","productCode":"10056338","productNature":"01","brandName":null,"optionStr":"3915","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/13/be146b0a-4998-4e03-b250-17ed8d846f8b.jpg","lineNumber":null,"price":48.25,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":0,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":48.25,"measuringUnit":"个","auxiliaryMeasuringUnit":"EA","procurementMeasuringUnit":"EA","pricingMeasuringUnit":"EA","materialCode":"","manufacturer":"Coloplast A/S","produceRegisterNum":null,"riskRank":"003","productClassify":"6864","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":48.25,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"3915","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":true,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":1852.1,"useLimitEnd":1,"maxuseLimit":48.25}],"productPrice":"48.2500","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"defaultBankInfo":{"accountId":3,"companyId":6,"companyName":"国药集团上海医疗器械有限公司","registeredAddress":"上海市宝山区江杨南路880号厂房7幢V008","bank":"中国光大银行上海彭浦支行","accountName":"国药集团上海医疗器械有限公司","accountNumber":"36830188000041806","disableSign":0,"deleteSign":0,"createTime":"2021-05-06 10:46:15","updateTime":"2021-05-06 10:46:15","createBy":2795,"realName":"国药集团上海医疗器械有限公司admin"},"receiveInfo":[{"addressId":27568,"addressNo":82429,"addressName":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","provinceCode":null,"userId":null,"companyId":null,"receiverName":"/","address":"","isDefault":1,"type":null,"postcode":null,"mobile":"/","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"addressList":[{"addressId":27568,"addressNo":82429,"addressName":null,"provinceCode":null,"userId":null,"companyId":6,"receiverName":"/","address":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","isDefault":1,"type":3,"postcode":null,"mobile":"/","updateDate":120035,"updateTime":93623,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":27568,"receiverNote":"/","receiverAddressNote":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","addressNoNote":82429,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"48.2500","taxRate":null,"draftDemandId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1126384,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"48.2500","productAmount":48.25,"payableAmount":48.25,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"3111","productLineName":"康乐保","propertyStr":null,"storageType":"999","suppDist":null,"productId":7991,"productName":"水胶体油纱","productCode":"10056338","productNature":"01","brandName":null,"optionStr":"3915","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/13/be146b0a-4998-4e03-b250-17ed8d846f8b.jpg","lineNumber":null,"price":48.25,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":0,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":48.25,"measuringUnit":"个","auxiliaryMeasuringUnit":"EA","procurementMeasuringUnit":"EA","pricingMeasuringUnit":"EA","materialCode":"","manufacturer":"Coloplast A/S","produceRegisterNum":null,"riskRank":"003","productClassify":"6864","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":48.25,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"3915","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":true,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":1852.1,"useLimitEnd":1,"maxuseLimit":48.25,"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":[{"rebateoperaskuid":null,"filialecode":"00111","rebateid":111,"customercode":null,"transactionamount":null,"transactiontype":null,"rebateStartTime":null,"rebateValidity":null,"balance":null,"deletesign":null,"note":null,"createtime":null,"updatetime":null,"demandId":null,"demandCode":null,"relevanceName":null,"rebateName":null,"customerCompanyName":null,"lineCodeDelete":null,"rebateTripId":null,"monNum":null,"relevanceCode":"3111","pageSize":null,"pageNum":null,"startTime":null,"endTime":null,"userId":null,"customerCodeList":null,"filialeCodeList":null,"companyName":null,"reSign":null,"demandParentCode":null,"distributionCode":null,"frontNote":null,"backNote":null,"cancelId":null,"effectivetype":null,"validityperiodSign":null,"soCode":null,"rebatename":"康乐保20230619","useLimitStart":0,"useLimitEnd":1,"istax":1,"taxround":0,"isdisposable":0,"productCode":null,"isOperated":null,"userPrice":null,"rebateFalg":null}],"rebateAmountList":null,"productLineCode":"3111","productLineName":"康乐保","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":1,"paymentAmountWholeLine":48.25,"discountAmountWholeLine":0,"payableAmountWholeLine":48.25,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":1852.1,"liquidCode":null,"shipmentTypeStr":null,"specifications":"3915","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":6,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"1","rebateControlSign":1,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":1,"countFormula":1,"countNumber":0,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":1,"singleRebateSign":0,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":48.25,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":1,"userBalancePrice":1852.1,"isEdit":true,"discountRateOne":100,"_rebateType":true,"pSign":0}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":48.25,"paymentType":0,"accountId":3,"version":null,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","addressNumber":82429,"receiverName":"/","receiverContact":"/","receiverAddress":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","buyerCartIds":[""],"sellerCompanyCode":"00111","companyId":6}} +#预期结果 +checkDict19: {"message": "商品证照校验错误"} - - +#测试场景二十:商品下架拦截验证_再来一单 +#再来一单接口信息 +"url20": "/order/public/saveSameOrder" +"payload20": {"demandId":"%s"} +#预期结果 +checkDict20: {"success":false,"code":"ERROR","message":"当前订单无有效商品","data":null,"freshToken":null} -- GitLab From 9bc394be6bfb6bb8085b7d7d5f8172825c6ed679 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 6 Dec 2023 15:04:17 +0800 Subject: [PATCH 20/74] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E9=AA=8C=E8=AF=81:=E6=96=B0=E5=A2=9E=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=B8=8B=E6=9E=B6=E6=8B=A6=E6=88=AA=E9=AA=8C=E8=AF=81=5F?= =?UTF-8?q?=E5=86=8D=E6=9D=A5=E4=B8=80=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...350\257\201_\344\270\213\345\215\225_a.py" | 4 +- ...\346\235\245\344\270\200\345\215\225_b.py" | 66 +++++++++++++++++++ log/runtime.txt | 2 +- 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" index 938ec582..a4d30188 100644 --- "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_a.py" @@ -2,7 +2,7 @@ __author__ = "liguangyu" """ -case_tag:cmdc_api,cmdc商品下架拦截验证,2288,2288-24,sit,bs +case_tag:cmdc_api,cmdc商品下架拦截验证_下单,2288,2288-24,sit,bs 涉及到接口:多采商城提交订单接口 """ @@ -29,7 +29,7 @@ host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") # 进行商品下架操作 sql = "UPDATE `cmdc-product`.ic_product t SET t.status = 102 WHERE t.productId = 7991" -mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-order", sql) +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) # 第二步进行提交订单 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19") diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" new file mode 100644 index 00000000..ddef6ddb --- /dev/null +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" @@ -0,0 +1,66 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc商品下架拦截验证_再来一单,2288,2288-24,sit,bs +涉及到接口:多采商城提交订单接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 查询指定需求单信息 +order_num = "17018438457347575" + +# 第二步获取多采商城需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand_list") +request_body = commonFuc().get_business_data(module, "payload_demand_list", order_num) +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) + +# 获取需求单信息 +demand_id = result["data"]["list"][0]["demandId"] + +# 第三步进行再来一单操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20") +request_body = commonFuc().get_business_data(module, "payload20", demand_id) + +""" + 场景: 验证下单时,商品下架,是否进行拦截 + 用例名称:商品下架拦截验证 + 输出:{"message": "商品证照校验错误"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict20") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + +# 进行商品上架架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.status = 101 WHERE t.productId = 7991" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) \ No newline at end of file diff --git a/log/runtime.txt b/log/runtime.txt index 950499b5..a9f2fd3c 100644 --- a/log/runtime.txt +++ b/log/runtime.txt @@ -1 +1 @@ -查询条件验证_商品清单_结算页面 1701747785317 1701747787862 liguangyu +商品下架拦截验证_再来一单_b 1701846191569 1701846196499 liguangyu -- GitLab From 2d04aa6789408ea056e7f384e49fbdd0757b421b Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 6 Dec 2023 15:19:52 +0800 Subject: [PATCH 21/74] =?UTF-8?q?=E8=A1=A5=E5=85=85=E9=80=86=E5=90=91?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\346\235\245\344\270\200\345\215\225_b.py" | 8 +-- ...350\257\201_\344\270\213\345\215\225_c.py" | 54 +++++++++++++++ ...\346\235\245\344\270\200\345\215\225_d.py" | 66 +++++++++++++++++++ data/cmdc_order_handle/data | 1 - 4 files changed, 124 insertions(+), 5 deletions(-) create mode 100644 "air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" create mode 100644 "air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" index ddef6ddb..935c69e8 100644 --- "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_b.py" @@ -3,7 +3,7 @@ __author__ = "liguangyu" """ case_tag:cmdc_api,cmdc商品下架拦截验证_再来一单,2288,2288-24,sit,bs -涉及到接口:多采商城提交订单接口 +涉及到接口:多采商城再来一单获取原订单信息接口 """ from common.common_func import commonFuc @@ -46,9 +46,9 @@ url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20") request_body = commonFuc().get_business_data(module, "payload20", demand_id) """ - 场景: 验证下单时,商品下架,是否进行拦截 - 用例名称:商品下架拦截验证 - 输出:{"message": "商品证照校验错误"} + 场景: 验证使用再来一单功能时,原订单中商品已下架,是否进行拦截提醒 + 用例名称:商品下架拦截验证_再来一单 + 输出:{"success":false,"code":"ERROR","message":"当前订单无有效商品","data":null,"freshToken":null} """ # 发送请求 diff --git "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" new file mode 100644 index 00000000..995751f9 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" @@ -0,0 +1,54 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc控销商品拦截验证_下单,2288,2288-24,sit,bs +涉及到接口:多采商城提交订单接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 进行商品下架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.isControlSales = 1 WHERE t.productId = 7991" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) + +# 第二步进行提交订单 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19") +request_body = commonFuc().get_business_data(module, "payload19") + +""" + 场景: 验证下单时,包含控销商品,是否进行拦截 + 用例名称:控销商品拦截验证 + 输出:{"message": "商品证照校验错误"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取message +result = {"message": result["message"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict19") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" new file mode 100644 index 00000000..d47c9549 --- /dev/null +++ "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" @@ -0,0 +1,66 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc控销商品拦截验证_再来一单,2288,2288-24,sit,bs +涉及到接口:多采商城再来一单获取原订单接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 查询指定需求单信息 +order_num = "17018438457347575" + +# 第二步获取多采商城需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand_list") +request_body = commonFuc().get_business_data(module, "payload_demand_list", order_num) +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) + +# 获取需求单信息 +demand_id = result["data"]["list"][0]["demandId"] + +# 第三步进行再来一单操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20") +request_body = commonFuc().get_business_data(module, "payload20", demand_id) + +""" + 场景: 验证使用再来一单功能时,原订单中包含控销商品,是否进行拦截提醒 + 用例名称:控销商品拦截验证_再来一单 + 输出:{"success":false,"code":"ERROR","message":"当前订单无有效商品","data":null,"freshToken":null} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict20") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + +# 进行商品上架架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.isControlSales = 0 WHERE t.productId = 7991" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 1bf6e2c0..7a8dca0a 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -191,4 +191,3 @@ checkDict20: {"success":false,"code":"ERROR","message":"当前订单无有效商 - -- GitLab From c4b706a200c1d794f90454a6ff715c1c1f3f612f Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 6 Dec 2023 15:31:34 +0800 Subject: [PATCH 22/74] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" | 2 +- ...7\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" | 2 +- log/runtime.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" index 995751f9..dd843688 100644 --- "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" +++ "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" @@ -2,7 +2,7 @@ __author__ = "liguangyu" """ -case_tag:cmdc_api,cmdc控销商品拦截验证_下单,2288,2288-24,sit,bs +case_tag:cmdc_api,cmdc控销商品拦截验证_下单,2288,2288-26,sit,bs 涉及到接口:多采商城提交订单接口 """ diff --git "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" index d47c9549..889c6e1d 100644 --- "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" +++ "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" @@ -2,7 +2,7 @@ __author__ = "liguangyu" """ -case_tag:cmdc_api,cmdc控销商品拦截验证_再来一单,2288,2288-24,sit,bs +case_tag:cmdc_api,cmdc控销商品拦截验证_再来一单,2288,2288-25,sit,bs 涉及到接口:多采商城再来一单获取原订单接口 """ diff --git a/log/runtime.txt b/log/runtime.txt index a9f2fd3c..b1ecff37 100644 --- a/log/runtime.txt +++ b/log/runtime.txt @@ -1 +1 @@ -商品下架拦截验证_再来一单_b 1701846191569 1701846196499 liguangyu +控销商品拦截验证_再来一单_d 1701847135259 1701847140102 liguangyu -- GitLab From f1e36c9f497950214091f4ff02fb9cce73a78602 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 6 Dec 2023 17:14:20 +0800 Subject: [PATCH 23/74] =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E9=80=86=E5=90=91=E5=9C=BA=E6=99=AF=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...350\257\201_\344\270\213\345\215\225_e.py" | 54 +++++++++++++++ ...\346\235\245\344\270\200\345\215\225_e.py" | 66 +++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 "air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" create mode 100644 "air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" new file mode 100644 index 00000000..a9df1967 --- /dev/null +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" @@ -0,0 +1,54 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc商品jde停用拦截验证_下单,2288,2288-29,sit,bs +涉及到接口:多采商城提交订单接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 进行商品下架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.jdeStatus = '0' WHERE t.productId = 7991" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) + +# 第二步进行提交订单 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19") +request_body = commonFuc().get_business_data(module, "payload19") + +""" + 场景: 验证下单时,包含的商品jde状态停用时,是否拦截成功 + 用例名称:商品jde停用拦截验证_下单 + 输出:{"message": "商品证照校验错误"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +print(result) +# 获取message +result = {"message": result["message"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict19") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" new file mode 100644 index 00000000..22e0b1dc --- /dev/null +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" @@ -0,0 +1,66 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc商品jde停用拦截验证_再来一单,2288,2288-30,sit,bs +涉及到接口:多采商城再来一单获取原订单信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 查询指定需求单信息 +order_num = "17018438457347575" + +# 第二步获取多采商城需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand_list") +request_body = commonFuc().get_business_data(module, "payload_demand_list", order_num) +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) + +# 获取需求单信息 +demand_id = result["data"]["list"][0]["demandId"] + +# 第三步进行再来一单操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20") +request_body = commonFuc().get_business_data(module, "payload20", demand_id) + +""" + 场景: 验证使用再来一单功能时,原订单中商品jde已停用,是否进行拦截提醒 + 用例名称:商品jde停用拦截验证_再来一单 + 输出:{"success":false,"code":"ERROR","message":"当前订单无有效商品","data":null,"freshToken":null} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict20") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + +# 进行商品上架架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.jdeStatus = 'P' WHERE t.productId = 7991" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) -- GitLab From 7c9f9668ecc34ddcddbfffe05cad7bd4286900f7 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Thu, 7 Dec 2023 09:56:03 +0800 Subject: [PATCH 24/74] =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E9=80=86=E5=90=91=E5=9C=BA=E6=99=AF=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\346\235\245\344\270\200\345\215\225_e.py" | 75 +++++++++++++++++++ data/cmdc_order_handle/data | 5 ++ 2 files changed, 80 insertions(+) create mode 100644 "air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" new file mode 100644 index 00000000..204c4b79 --- /dev/null +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" @@ -0,0 +1,75 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +import random + +""" +case_tag:cmdc_api,cmdc商品金额调整验证_再来一单,2288,2288-27,sit,bs +涉及到接口:多采商城再来一单获取原订单信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 生成随机数字用于商品金额 +amount_product = float(random.randint(100, 1000)) +# print(amount_product) +# 进行商品金额调整操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.referencePrice = {} WHERE t.productId = 7991".format(amount_product) +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) + +# 查询指定需求单信息 +order_num = "17018438457347575" + +# 第二步获取多采商城需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand_list") +request_body = commonFuc().get_business_data(module, "payload_demand_list", order_num) +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) + +# 获取需求单信息 +demand_id = result["data"]["list"][0]["demandId"] + +# 第三步进行再来一单操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20") +request_body = commonFuc().get_business_data(module, "payload20", demand_id) + +""" + 场景: 验证当原订单中商品价格被修改后,再来一单中商品金额是否调整为最新金额 + 用例名称:商品金额调整验证_再来一单 + 输出:{"productAmount":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取订单中商品金额 +result = {"productAmount": result["data"]["国药集团上海医疗器械有限公司"]["datas"][0]["productAmount"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict21", amount_product) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index 7a8dca0a..f5b64bde 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -186,6 +186,11 @@ checkDict19: {"message": "商品证照校验错误"} checkDict20: {"success":false,"code":"ERROR","message":"当前订单无有效商品","data":null,"freshToken":null} +#测试场景二十一:商品金额调整验证_再来一单 +#验证当原订单中商品价格被修改后,再来一单中商品金额是否调整为最新金额 + +#预期结果 +checkDict21: {"productAmount":"%s"} -- GitLab From d8ad39038f4804f614ac0f34e14e74bde82bf5a7 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Thu, 7 Dec 2023 10:05:20 +0800 Subject: [PATCH 25/74] =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E9=80=86=E5=90=91=E5=9C=BA=E6=99=AF=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...350\257\201_\344\270\213\345\215\225_e.py" | 58 +++++++++++++++++++ data/cmdc_order_handle/data | 4 ++ 2 files changed, 62 insertions(+) create mode 100644 "air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" new file mode 100644 index 00000000..6999df77 --- /dev/null +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201\351\207\221\351\242\235\350\260\203\346\225\264\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" @@ -0,0 +1,58 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc商品金额调整验证_下单,2288,2288-28,sit,bs +涉及到接口:多采商城提交订单接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import random +import json + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 生成随机数字用于商品金额 +amount_product = float(random.randint(100, 1000)) +# print(amount_product) +# 进行商品金额调整操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.referencePrice = {} WHERE t.productId = 7991".format(amount_product) +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) + +# 第二步进行提交订单 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19") +request_body = commonFuc().get_business_data(module, "payload19") + +""" + 场景: 验证进行订单提交时,修改商品金额,订单是否按修改前商品金额计算 + 用例名称:商品金额调整验证_下单 + 输出:{"productAmount":"48.25"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取订单中商品金额 +result = {"productAmount": result["data"]["国药集团上海医疗器械有限公司"]["productAmount"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict22") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index f5b64bde..bf578f5d 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -193,6 +193,10 @@ checkDict20: {"success":false,"code":"ERROR","message":"当前订单无有效商 checkDict21: {"productAmount":"%s"} +#测试场景二十二:商品金额调整验证_下单 +#验证进行订单提交时,修改商品金额,订单是否按修改前商品金额计算 +#预期结果 +checkDict22: {"productAmount":"48.25"} -- GitLab From ceb7d33b14b36f11a85e0483aecd9a2dd2caae21 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Thu, 7 Dec 2023 11:00:50 +0800 Subject: [PATCH 26/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E6=8E=A5=E5=8F=A3=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 47 +++++++++++++++++++ data/cmdc_order_handle/data | 6 +++ 2 files changed, 53 insertions(+) create mode 100644 "air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..1bae197e --- /dev/null +++ "b/air_case/cmdc_order_handle/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\346\224\266\346\254\276\350\264\246\345\217\267\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,47 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取收款账号接口验证,2288,2288-31,sit,bs +涉及到接口:多采商城获取收款账号接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + + +module = "cmdc_order_handle" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 公司信息 +company_id = 6 +# 第二步获取公司对应的收款账号 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url23") +request_body = commonFuc().get_business_data(module, "payload23", company_id) + +""" + 场景:验证获取收款账号接口连通性 + 用例名称:获取收款账号接口验证 + 输出:{"companyId":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取收款账号中公司信息 +result = {"companyId": result["data"]["list"][0]["companyId"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict23", company_id) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index bf578f5d..f186323a 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -200,3 +200,9 @@ checkDict21: {"productAmount":"%s"} checkDict22: {"productAmount":"48.25"} +#测试场景二十三:获取收款账号接口验证 +#接口信息 +"url23": "/cms/mall/account/queryPageByCompanyId" +"payload23": {"pageSize":null,"pageNumber":null,"companyId":"%s"} +#预期结果 +checkDict23: {"companyId":"%s"} \ No newline at end of file -- GitLab From a3e07a31befd2b30ee29e7a6f5f1de9d1737a511 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Fri, 8 Dec 2023 08:38:20 +0800 Subject: [PATCH 27/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\260\345\242\236\351\252\214\350\257\201.py" | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git "a/air_case/cmdc_rebate/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.air/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.py" "b/air_case/cmdc_rebate/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.air/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.py" index 1c5009b0..6847b6c0 100644 --- "a/air_case/cmdc_rebate/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.air/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_rebate/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.air/a_\350\277\224\345\210\251\350\247\204\345\210\231\346\226\260\345\242\236\351\252\214\350\257\201.py" @@ -64,8 +64,14 @@ request_body = commonFuc().get_business_data(module, "payload21", customer_name, # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) -print(result) -# 获取预期结果 -check_dict = commonFuc().get_business_data(module, "checkDict21") -# 断言实际结果中是否包含预期结果的内容 -commonFuc().check_result(check_dict, result) +# print(result) +if result["success"]: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict21") + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict22") + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) -- GitLab From cd7cbee4b06e8df6a2b87ad6c1ea53d3ca361f4c Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Fri, 8 Dec 2023 08:51:32 +0800 Subject: [PATCH 28/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" index aa60ca99..c66f4d12 100644 --- "a/air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" +++ "b/air_case/cmdc_order_handle/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\347\211\251\346\226\231\347\274\226\347\240\201\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -23,7 +23,7 @@ cmdc_access_token = CmdcMaiiLogin(username, password).get_token() headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) # 生成随机数据 -random_code = random.randint(0, 10) +random_code = random.randint(0, 9) # 第二步进行物料编码模糊匹配查询 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url12") request_body = commonFuc().get_business_data(module, "payload12", random_code) -- GitLab From 037fe735f73716b821e1e9c99bad697e2dec46c5 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Fri, 8 Dec 2023 09:03:25 +0800 Subject: [PATCH 29/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\231\244\345\212\237\350\203\275\351\252\214\350\257\201.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/air_case/cmdc_rebate/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.air/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_rebate/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.air/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.py" index 0528b063..52267855 100644 --- "a/air_case/cmdc_rebate/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.air/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_rebate/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.air/g_\350\277\224\345\210\251\350\247\204\345\210\231\345\210\240\351\231\244\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -32,7 +32,7 @@ result = json.loads(result.content) # 获取指定返利规则信息 rebate_id = result["data"]["list"][0]["rebateid"] -# 第三步进行返利规则启用操作 +# 第三步进行返利规则删除操作 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url25") request_body = commonFuc().get_business_data(module, "payload25", rebate_id) -- GitLab From 33c2e4e6a9e988b240b972de35435e3c1fb6c778 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Fri, 8 Dec 2023 11:02:34 +0800 Subject: [PATCH 30/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" | 2 +- ...7\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" | 2 +- ...0\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" | 2 +- ...7\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" index a9df1967..98b680e9 100644 --- "a/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_e.py" @@ -27,7 +27,7 @@ mysql_handle = mySql() # 获取conf.ini文件中配置的数据库信息 host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") -# 进行商品下架操作 +# 进行商品jde状态调整为停用操作 sql = "UPDATE `cmdc-product`.ic_product t SET t.jdeStatus = '0' WHERE t.productId = 7991" mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) diff --git "a/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" index 22e0b1dc..d42f06d0 100644 --- "a/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" +++ "b/air_case/cmdc_order_handle/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.air/\345\225\206\345\223\201jde\345\201\234\347\224\250\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_e.py" @@ -61,6 +61,6 @@ check_dict = commonFuc().get_business_data(module, "checkDict20") # 断言实际结果中是否包含预期结果的内容 commonFuc().check_result(check_dict, result) -# 进行商品上架架操作 +# 把商品对应的jde状态调整为启用状态操作 sql = "UPDATE `cmdc-product`.ic_product t SET t.jdeStatus = 'P' WHERE t.productId = 7991" mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) diff --git "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" index dd843688..c8e9473e 100644 --- "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" +++ "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\344\270\213\345\215\225_c.py" @@ -27,7 +27,7 @@ mysql_handle = mySql() # 获取conf.ini文件中配置的数据库信息 host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") -# 进行商品下架操作 +# 进行商品控销操作 sql = "UPDATE `cmdc-product`.ic_product t SET t.isControlSales = 1 WHERE t.productId = 7991" mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) diff --git "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" index 889c6e1d..b1ebb084 100644 --- "a/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" +++ "b/air_case/cmdc_order_handle/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.air/\346\216\247\351\224\200\345\225\206\345\223\201\346\213\246\346\210\252\351\252\214\350\257\201_\345\206\215\346\235\245\344\270\200\345\215\225_d.py" @@ -61,6 +61,6 @@ check_dict = commonFuc().get_business_data(module, "checkDict20") # 断言实际结果中是否包含预期结果的内容 commonFuc().check_result(check_dict, result) -# 进行商品上架架操作 +# 进行去除商品控销状态操作 sql = "UPDATE `cmdc-product`.ic_product t SET t.isControlSales = 0 WHERE t.productId = 7991" mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) -- GitLab From d289f2e2011078315f0b6707b4278063c6f3da70 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 10:48:07 +0800 Subject: [PATCH 31/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=96=B0=E5=A2=9E=E9=9C=80=E6=B1=82=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 42 +++++++++++++++++++ data/cmdc_demand_mall/data | 33 +++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 "air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" create mode 100644 data/cmdc_demand_mall/data diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..dccb9650 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,42 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc需求单列表获取接口验证,2289,2289-1,sit,bs +涉及到接口:多采商城需求单列表获取接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步查询用户收货地址信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") + +""" + 场景: 验证获取需求单列表接口连通性 + 用例名称:需求单列表获取接口验证 + 输出:{"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, "checkDict1") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data new file mode 100644 index 00000000..78e2ceb7 --- /dev/null +++ b/data/cmdc_demand_mall/data @@ -0,0 +1,33 @@ +# 多采商城登录信息 +"username": "BJ0621" +"password": "Aa123456" + +#后台运营管理系统登录信息(子站点上海医疗器械有限公司) +"username1": "Admin00111" +"password1": "Aa123456" + + +#后台管理系统headers +json_headers: { + "Content-Type": "application/json", + "Cmdc_access_token": "%s" +} + +#文件上传headers +json_headers_file: { + "Cmdc_access_token": "%s" +} + +#多采商城headers +json_headers1: { + "Cmdc_access_token": "%s", + "Sourcetype": "mall" +} + +#测试场景一:需求单列表获取接口验证 +"url1": "/order/public/ownListDemand" +"payload1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":5,"pageSize":10} +#预期结果 +checkDict1: {"success":true,"code":"200","message":"OK"} + + -- GitLab From dad65db51cb233266315646f6df9159f7810dc69 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 10:55:51 +0800 Subject: [PATCH 32/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" | 3 ++- ...14\205\345\225\206\345\223\201\347\256\241\347\220\206.py" | 4 ++-- ...23\201\346\226\260\345\242\236\351\252\214\350\257\201.py" | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git "a/air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" "b/air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" index b1d19b70..4ef68150 100644 --- "a/air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" +++ "b/air_case/cmdc_order_handle/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.air/\350\247\204\346\240\274\345\236\213\345\217\267\346\250\241\347\263\212\346\237\245\350\257\242\351\252\214\350\257\201_\347\273\223\347\256\227\351\241\265\351\235\242.py" @@ -23,7 +23,7 @@ cmdc_access_token = CmdcMaiiLogin(username, password).get_token() headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) # 生成随机数据 -random_code = random.randint(0, 10) +random_code = random.randint(0, 8) # 第二步进行规格型号模糊匹配查询 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10") request_body = commonFuc().get_business_data(module, "payload10", random_code) @@ -40,6 +40,7 @@ result = json.loads(result.content) # print(result) # 获取查询结果中数据 result = {"data": result["data"][0][0]} +# print(result) # 获取预期结果 check_dict = commonFuc().get_business_data(module, "checkDict10", random_code) # print(check_dict) diff --git "a/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" index 4812f2b2..144667d7 100644 --- "a/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" +++ "b/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" @@ -36,10 +36,10 @@ result = requests.post(url, headers=headers, json=request_body) result = json.loads(result.content) # 随机获取不相同两个商品信息 -product_id_a = random.randint(1, len(result["data"]["list"]) - 1) +product_id_a = random.randint(1, len(result["data"]["list"]) - 2) product_code_a = result["data"]["list"][product_id_a]["productCode"] product_name_a = result["data"]["list"][product_id_a]["productName"] -product_id_b = random.randint(product_id_a + 1, len(result["data"]["list"])) +product_id_b = random.randint(product_id_a + 1, len(result["data"]["list"]) - 1) product_code_b = result["data"]["list"][product_id_b]["productCode"] product_name_b = result["data"]["list"][product_id_b]["productName"] 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 48f9bbca..9d8e152f 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" @@ -49,7 +49,7 @@ result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) # 获取商品信息 -product_detail = result["data"]["list"][random.randint(1, len(result["data"]["list"]))] +product_detail = result["data"]["list"][random.randint(1, len(result["data"]["list"]))-1] product_detail["activityUnitAmount"] = customer_quantity # 随机生成日期 -- GitLab From aefc6fd7761807a4b867d43f9b7c1ebd66c7aaf2 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 14:30:37 +0800 Subject: [PATCH 33/74] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=EF=BC=9A=E8=A1=A5=E5=85=85=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...02\345\215\225\345\210\227\350\241\250.py" | 46 +++++++++++ ...02\345\215\225\345\210\227\350\241\250.py" | 47 +++++++++++ ...02\345\215\225\345\210\227\350\241\250.py" | 77 ++++++++++++++++++ ...45\345\217\243\351\252\214\350\257\201.py" | 2 +- data/cmdc_demand_mall/data | 79 +++++++++++++++++++ 5 files changed, 250 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" create mode 100644 "air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" create mode 100644 "air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" diff --git "a/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" new file mode 100644 index 00000000..5e0dec50 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\241\346\240\270\345\217\230\345\212\250\350\256\242\345\215\225_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" @@ -0,0 +1,46 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询条件验证_审核变动订单_需求单列表,2289,2289-3,sit,bs +涉及到接口:多采商城需求单列表获取接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步在需求单列表进行审核变动订单过滤查询 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3") +request_body = commonFuc().get_business_data(module, "payload3") + +""" + + 场景: 验证需求单列表查询条件-审核变动订单,正确性 + 用例名称:查询条件验证_审核变动订单_需求单列表 + 输出:{"changeSign":1} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中是否审核变动标识 +result = {"changeSign": result["data"]["list"][0]["changeSign"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict3") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" new file mode 100644 index 00000000..db1d4fdc --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\212\266\346\200\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" @@ -0,0 +1,47 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询条件验证_状态_需求单列表,2289,2289-4,sit,bs +涉及到接口:多采商城需求单列表获取接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步在需求单列表进行状态过滤查询 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4") +request_body = commonFuc().get_business_data(module, "payload4") + +""" + + 场景: 验证需求单列表查询条件-状态,正确性 + 用例名称:查询条件验证_状态_需求单列表 + 输出:{"orderStatus":102} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中是否审核变动标识 +result = {"orderStatus": result["data"]["list"][0]["orderStatus"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict4") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git "a/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" new file mode 100644 index 00000000..f92bc9f4 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" @@ -0,0 +1,77 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询条件验证_需求单列表,2289,2289-2,sit,bs +涉及到接口:多采商城需求单列表获取接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import datetime +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + + +# 此函数用于当x为none时,进行空字符串替换 +def func(x): + if x is None: + x = "" + return x + else: + return x + + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +seller_company_code = result["data"]["list"][random_demand]["sellerCompanyCode"] +startTime = result["data"]["list"][random_demand]["createTime"] +endTime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") +product_code = func(result["data"]["list"][random_demand]["productCode"]) +product_info_value = func(result["data"]["list"][random_demand]["productName"]) +order_num = result["data"]["list"][random_demand]["demandCode"] +payment_type = result["data"]["list"][random_demand]["paymentType"] +preference_type = result["data"]["list"][random_demand]["preferenceType"] + +# 第三步在需求单列表进行需求单查询操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2") +request_body = commonFuc().get_business_data(module, "payload2", seller_company_code, startTime, endTime, product_code, + product_info_value, order_num, payment_type, preference_type) +# print(request_body) +""" + 场景: 验证需求单列表查询条件正确性 + 用例名称:查询条件验证_需求单列表 + 输出:{"orderNum":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中订单编号 +result = {"orderNum": result["data"]["list"][0]["demandCode"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict2", order_num) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" index dccb9650..a9af44b7 100644 --- "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250\350\216\267\345\217\226\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -21,7 +21,7 @@ password = commonFuc().get_business_data(module, "password") cmdc_access_token = CmdcMaiiLogin(username, password).get_token() headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) -# 第二步查询用户收货地址信息 +# 第二步查询需求单列表 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") request_body = commonFuc().get_business_data(module, "payload1") diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 78e2ceb7..12d96d5a 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -29,5 +29,84 @@ json_headers1: { "payload1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":5,"pageSize":10} #预期结果 checkDict1: {"success":true,"code":"200","message":"OK"} + + +#测试场景二:查询条件验证_需求单列表 +"url2": "/order/public/ownListDemand" +"payload2": {"sellerCompanyCodes":["%s"],"startTime":"%s","endTime":"%s","productCode":"%s","productInfoValue":"%s","manufacturerList":null,"orderNum":"%s","paymentType":"%s","preferenceType":"%s","changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":1,"pageSize":10} +#预期结果 +checkDict2: {"orderNum":"%s"} + +#测试场景三:查询条件验证_审核变动订单_需求单列表 +"url3": "/order/public/ownListDemand" +"payload3": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":1,"mainOrderStatus":null,"shipmentType":0,"pageStart":1,"pageSize":10} +#预期结果 +checkDict3: {"changeSign":1} + +#测试场景四:查询条件验证_状态_需求单列表 +"url4": "/order/public/ownListDemand" +"payload4": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":2,"shipmentType":null,"pageStart":1,"pageSize":10} +#预期结果 +checkDict4: {"orderStatus":102} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- GitLab From bd2949473e0555a163cbf08f71296fd8ca61bd7c Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 14:38:57 +0800 Subject: [PATCH 34/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E7=AB=99=E7=82=B9=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 33 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..38b12de0 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,33 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取公司站点接口验证,2289,2289-5,sit,bs +涉及到接口:多采商城需求单列表公司站点信息获取接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_demand_mall" + +# 第二步获取站点信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5") + +""" + 场景: 验证多采商城需求单管理列表,公司站点信息获取接口连通性 + 用例名称:获取公司站点接口验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict5") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 12d96d5a..a2c065fe 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -50,7 +50,11 @@ checkDict3: {"changeSign":1} checkDict4: {"orderStatus":102} - +#测试场景五:获取公司站点接口验证 +"url5": "/user/public/queryCompanyOptionsByCompanyCode" +"payload5": {} +#预期结果 +checkDict5: {"success":true,"code":"200","message":"OK"} -- GitLab From 7647eebf122fd8e52a0a52fb017c417128eead9b Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 14:46:03 +0800 Subject: [PATCH 35/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=AE=A2=E5=8D=95=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 32 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..0364fa09 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\347\261\273\345\236\213\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,32 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取订单类型接口验证,2289,2289-6,sit,bs +涉及到接口:多采商城需求单列表订单类型获取接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_demand_mall" + +# 第二步获取站点信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url6") +request_body = commonFuc().get_business_data(module, "payload6") +""" + 场景: 验证多采商城需求单管理列表,获取订单类型接口连通性 + 用例名称:获取订单类型接口验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict6") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index a2c065fe..7ea5b03e 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -56,7 +56,11 @@ checkDict4: {"orderStatus":102} #预期结果 checkDict5: {"success":true,"code":"200","message":"OK"} - +#测试场景六:获取订单类型接口验证 +"url6": "/user/public/getOrderTypeByUserId" +"payload6": {"userId":69} +#预期结果 +checkDict6: {"success":true,"code":"200","message":"OK"} -- GitLab From ca1cd57c9cef615cdcf8de43ccacda0b08e1bbb3 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 14:57:24 +0800 Subject: [PATCH 36/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E5=8E=82=E5=AE=B6=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 46 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 ++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" new file mode 100644 index 00000000..c5b18cc0 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -0,0 +1,46 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc模糊查询生产厂家列表接口验证,2289,2289-7,sit,bs +涉及到接口:多采商城需求单列表生产厂家模糊查询接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 设置需要查询的生产厂家 +manufacturer = "A" +# 第二步进行生产厂家模糊查询 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7") +request_body = commonFuc().get_business_data(module, "payload7", manufacturer) + +""" + 场景: 验证获取需求单列表,生产厂家模糊查询接口连通性 + 用例名称:模糊查询生产厂家列表接口验证 + 输出:{"data":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取查询结果中厂家信息 +result = {"data": result["data"][0][0]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict7", manufacturer) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 7ea5b03e..49ff7a68 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -62,7 +62,11 @@ checkDict5: {"success":true,"code":"200","message":"OK"} #预期结果 checkDict6: {"success":true,"code":"200","message":"OK"} - +#测试场景七:模糊查询生产厂家列表接口验证 +"url7": "/product/public/getTipsList" +"payload7": {"sign":1,"inputValue":"%s"} +#预期结果 +checkDict7: {"data":"%s"} -- GitLab From 15779b7ca55de3ae1f1c4dd5f7529ea1bafeb276 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 15:10:50 +0800 Subject: [PATCH 37/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E9=9C=80=E6=B1=82=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\346\203\205\351\252\214\350\257\201.py" | 59 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" new file mode 100644 index 00000000..ef0b693a --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" @@ -0,0 +1,59 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取需求单详情验证,2289,2289-9,sit,bs +涉及到接口:多采商城获取需求单详情接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_parent_code = result["data"]["list"][random_demand]["demandParentCode"] +demand_code = result["data"]["list"][random_demand]["demandCode"] + +# 第三步在需求单列表进行需求单查询操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8") +request_body = commonFuc().get_business_data(module, "payload8", demand_parent_code, demand_code) +# print(request_body) +""" + 场景: 验证是否可以正常获取到需求单详情 + 用例名称:获取需求单详情验证 + 输出:{"demandCode":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取需求单详情中订单编号 +result = {"demandCode": result["data"]["demandHead"]["demandCode"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict8", demand_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 49ff7a68..f8fbd177 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -69,7 +69,11 @@ checkDict6: {"success":true,"code":"200","message":"OK"} checkDict7: {"data":"%s"} - +#测试场景八:获取需求单详情验证 +"url8": "/order/public/getDemandDetailVo" +"payload8": {"demandParentCode":"%s","demandCode":"%s"} +#预期结果 +checkDict8: {"demandCode":"%s"} -- GitLab From 86cc7f558854efae506a9e3f6cf47d6ef0886983 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 15:19:14 +0800 Subject: [PATCH 38/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E5=AE=A1=E6=A0=B8=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\350\241\250\351\252\214\350\257\201.py" | 55 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.py" new file mode 100644 index 00000000..8b2c2058 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\256\241\346\240\270\344\272\272\345\221\230\345\210\227\350\241\250\351\252\214\350\257\201.py" @@ -0,0 +1,55 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取审核人员列表验证,2289,2289-10,sit,bs +涉及到接口:多采商城获取审核人员列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] + +# 第三步在需求单列表进行需求单查询操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url9") +request_body = commonFuc().get_business_data(module, "payload9", demand_code) +# 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, "checkDict9") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index f8fbd177..4230768b 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -75,7 +75,11 @@ checkDict7: {"data":"%s"} #预期结果 checkDict8: {"demandCode":"%s"} - +#测试场景九:获取审核人员列表验证 +"url9": "/order/public/auditStay/getAuditStayList" +"payload9": {"demandCode":"%s"} +#预期结果 +checkDict9: {"success":true,"code":"200","message":"OK"} -- GitLab From cf2ae73c31ce09cc440d84d44de7b7c08b342ec6 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 15:28:04 +0800 Subject: [PATCH 39/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E5=8E=9F=E5=A7=8B=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\346\203\205\351\252\214\350\257\201.py" | 58 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.py" new file mode 100644 index 00000000..7ffe3b98 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\216\237\345\247\213\351\234\200\346\261\202\350\257\246\346\203\205\351\252\214\350\257\201.py" @@ -0,0 +1,58 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取原始需求详情验证,2289,2289-11,sit,bs +涉及到接口:多采商城获取原始需求详情接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] + +# 第三步在需求单列表进行需求单查询操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10") +request_body = commonFuc().get_business_data(module, "payload10", demand_code) +# print(request_body) +""" + 场景: 获取原始需求详情验证 + 用例名称:获取原始需求详情验证 + 输出:{"demandCode":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取原始需求单中demandCode +result = {"demandCode": result["data"]["demandSkuList"]["list"][0]["demandCode"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict10", demand_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 4230768b..b99882a5 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -82,7 +82,11 @@ checkDict8: {"demandCode":"%s"} checkDict9: {"success":true,"code":"200","message":"OK"} - +#测试场景十:获取原始需求详情验证 +"url10": "/order/demandOrg/public/getChangeDemand" +"payload10": {"demandCode":"%s"} +#预期结果 +checkDict10: {"demandCode":"%s"} -- GitLab From f4a50c0844ffc26365d9c8195f24f5696f78fae0 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 15:35:50 +0800 Subject: [PATCH 40/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E7=AB=99=E7=82=B9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=5F=E9=9C=80=E6=B1=82=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\345\217\243\351\252\214\350\257\201.py" | 2 +- ...1_\351\234\200\346\261\202\345\215\225.py" | 34 +++++++++++++++++++ data/cmdc_demand_mall/data | 5 +++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" index 38b12de0..29aee8bb 100644 --- "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.air/\350\216\267\345\217\226\345\205\254\345\217\270\347\253\231\347\202\271\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -12,7 +12,7 @@ import json module = "cmdc_demand_mall" -# 第二步获取站点信息 +# 获取站点信息 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5") """ diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.py" new file mode 100644 index 00000000..f9fdb5b0 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225.py" @@ -0,0 +1,34 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取站点信息验证_需求单,2289,2289-12,sit,bs +涉及到接口:多采商城需求单列表站点信息获取接口 +""" + +from common.common_func import commonFuc +import requests +import json + +module = "cmdc_demand_mall" + +# 获取站点信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url11") +request_body = commonFuc().get_business_data(module, "payload11") + +""" + 场景: 获取站点信息验证_需求单 + 用例名称:获取站点信息验证_需求单 + 输出:{"companyId":6} +""" + +# 发送请求 +result = requests.get(url, params=request_body) +result = json.loads(result.content) +# 获取站点信息中公司id +result = {"companyId": result["data"]["companyId"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict11") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index b99882a5..20272508 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -89,6 +89,11 @@ checkDict9: {"success":true,"code":"200","message":"OK"} checkDict10: {"demandCode":"%s"} +#测试场景十一:获取站点信息验证_需求单 +"url11": "/cms/public/website/queryWebsiteByCompanyIdNoCode" +"payload11": {"companyId":6} +#预期结果 +checkDict11: {"companyId":6} -- GitLab From 29871d0b9ee880a187863564f259aab7ffbe761f Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 15:46:14 +0800 Subject: [PATCH 41/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E9=9C=80=E6=B1=82=E5=8D=95=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E8=AE=B0=E5=BD=95=E4=BF=A1=E6=81=AF=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\346\201\257\351\252\214\350\257\201.py" | 56 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 ++ 2 files changed, 62 insertions(+) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.py" new file mode 100644 index 00000000..b10f4460 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\346\223\215\344\275\234\350\256\260\345\275\225\344\277\241\346\201\257\351\252\214\350\257\201.py" @@ -0,0 +1,56 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取需求单操作记录信息验证,2289,2289-13,sit,bs +涉及到接口:多采商城获取需求单对应的操作记录接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] +demand_parent_code = result["data"]["list"][random_demand]["demandParentCode"] + +# 第三步获取需求单对应的操作记录 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url12") +request_body = commonFuc().get_business_data(module, "payload12", demand_code, demand_parent_code) +# print(request_body) +""" + 场景: 获取需求单操作记录信息验证 + 用例名称:获取需求单操作记录信息验证 + 输出:{"success":true,"code":"200","message":"请求成功,展示操作流水"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict12") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 20272508..42970fc6 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -97,6 +97,12 @@ checkDict11: {"companyId":6} +#测试场景十二:获取需求单操作记录信息验证 +"url12": "/order/public/getOperationFlow" +"payload12": {"demandCode":"%s","demandParentCode":"%s","AuditCompanyNameCode":"00111"} +#预期结果 +checkDict12: {"success":true,"code":"200","message":"请求成功,展示操作流水"} + -- GitLab From 2a1cbfb48e3e08f535cb3beb21f3fd7777ce7d21 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 16:05:03 +0800 Subject: [PATCH 42/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E9=9C=80=E6=B1=82=E5=8D=95=E5=AD=90?= =?UTF-8?q?=E5=8D=95=E5=88=97=E8=A1=A8=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\350\241\250\351\252\214\350\257\201.py" | 66 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 ++ 2 files changed, 72 insertions(+) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" new file mode 100644 index 00000000..8c3754f6 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" @@ -0,0 +1,66 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取需求单子单列表验证,2289,2289-15,sit,bs +涉及到接口:多采商城获取需求单子单列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] +# demand_code = "17022496982880461" +demand_parent_code = result["data"]["list"][random_demand]["demandParentCode"] +# demand_parent_code = "17022496982880461" + +# 第三步获取需求单对应的操作记录 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url13") +request_body = commonFuc().get_business_data(module, "payload13", demand_code, demand_parent_code) +# print(request_body) +""" + 场景: 获取需求单子单列表验证 + 用例名称:获取需求单子单列表验证 + 输出:{"success":true,"code":"200","message":"请求成功,展示操作流水"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +if result["data"]["list"]: + result = {"demandSubCode": result["data"]["list"][0]["demandSubCode"]} + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict13", demand_parent_code) + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict13_1") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 42970fc6..b8aa273e 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -104,6 +104,12 @@ checkDict11: {"companyId":6} checkDict12: {"success":true,"code":"200","message":"请求成功,展示操作流水"} +#测试场景十三:获取需求单子单列表验证 +"url13": "/order/public/demandSubSku/list" +"payload13": {"demandCode":"%s","pageStart":1,"pageSize":9999999,"total":1,"demandSubCode":"%s"} +#预期结果 +checkDict13: {"demandSubCode":"%s"} +checkDict13_1: {"success":True,"code":"200"} -- GitLab From 62e41feaad36826145e2f79089c562dafe7d371e Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 16:14:25 +0800 Subject: [PATCH 43/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E9=9C=80=E6=B1=82=E5=8D=95=E5=AD=90?= =?UTF-8?q?=E5=8D=95=E8=AF=A6=E6=83=85=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\350\241\250\351\252\214\350\257\201.py" | 4 +- ...46\346\203\205\351\252\214\350\257\201.py" | 65 +++++++++++++++++++ data/cmdc_demand_mall/data | 7 +- 3 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" index 8c3754f6..07becf65 100644 --- "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\345\210\227\350\241\250\351\252\214\350\257\201.py" @@ -37,14 +37,14 @@ demand_code = result["data"]["list"][random_demand]["demandCode"] demand_parent_code = result["data"]["list"][random_demand]["demandParentCode"] # demand_parent_code = "17022496982880461" -# 第三步获取需求单对应的操作记录 +# 第三步获取需求单对应子单列表 url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url13") request_body = commonFuc().get_business_data(module, "payload13", demand_code, demand_parent_code) # print(request_body) """ 场景: 获取需求单子单列表验证 用例名称:获取需求单子单列表验证 - 输出:{"success":true,"code":"200","message":"请求成功,展示操作流水"} + 输出:{"demandSubCode":"%s"} """ # 发送请求 diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" new file mode 100644 index 00000000..716aaa8c --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\255\220\345\215\225\350\257\246\346\203\205\351\252\214\350\257\201.py" @@ -0,0 +1,65 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取需求单子单详情验证,2289,2289-16,sit,bs +涉及到接口:多采商城获取需求单子单详情接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "40187" + + +# 第三步获取需求单对应的子单详情 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url14") +request_body = commonFuc().get_business_data(module, "payload14", demand_id) +# print(request_body) +""" + 场景: 获取需求单子单详情验证 + 用例名称:获取需求单子单详情验证 + 输出:{"success":true,"code":"200","message":"请求成功,展示操作流水"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +print(result) +if result["data"]: + result = {"demandId": result["data"][0]["demandId"]} + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict14", demand_id) + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict14_1") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index b8aa273e..780e1888 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -112,7 +112,12 @@ checkDict13: {"demandSubCode":"%s"} checkDict13_1: {"success":True,"code":"200"} - +#测试场景十四:获取需求单子单详情验证 +"url14": "/order/public/demandSub/detail" +"payload14": {"demandId":"%s"} +#预期结果 +checkDict14: {"demandSubCode":"%s"} +checkDict14_1: {"success":True,"code":"200"} -- GitLab From b8917459c54ff20f8556e597699efd8ac22e797a Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 16:26:21 +0800 Subject: [PATCH 44/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=AE=A2=E5=8D=95=E9=94=80=E5=94=AE?= =?UTF-8?q?=E5=90=88=E5=90=8C=E9=85=8D=E7=BD=AE=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...15\347\275\256\351\252\214\350\257\201.py" | 60 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.py" new file mode 100644 index 00000000..a5a8ab86 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.air/\350\216\267\345\217\226\351\224\200\345\224\256\350\256\242\345\215\225\345\220\210\345\220\214\351\205\215\347\275\256\351\252\214\350\257\201.py" @@ -0,0 +1,60 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取订单销售合同配置验证,2289,2289-17,sit,bs +涉及到接口:多采商城获取订单销售合同接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "40187" + + +# 第三步获取需求单对应的销售合同配置 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url15") +request_body = commonFuc().get_business_data(module, "payload15", demand_id) +# print(request_body) +""" + 场景: 获取订单销售合同配置验证 + 用例名称:获取订单销售合同配置验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) + +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict15") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 780e1888..98190669 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -120,7 +120,11 @@ checkDict14: {"demandSubCode":"%s"} checkDict14_1: {"success":True,"code":"200"} - +#测试场景十五:获取销售订单合同配置验证 +"url15": "/order/public/contract/config" +"payload15": {"demandId":"%s"} +#预期结果 +checkDict15: {"success":true,"code":"200","message":"OK"} -- GitLab From 9f65e876233671e4945a65ba419cd20649757aad Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 20:18:26 +0800 Subject: [PATCH 45/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=AE=A2=E5=8D=95=E5=8F=98=E5=8A=A8?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=88=97=E8=A1=A8=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...27\350\241\250\351\252\214\350\257\201.py" | 68 +++++++++++++++++++ data/cmdc_demand_mall/data | 8 ++- 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.py" new file mode 100644 index 00000000..49065721 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\345\210\227\350\241\250\351\252\214\350\257\201.py" @@ -0,0 +1,68 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取订单变动明细列表验证,2289,2289-19,sit,bs +涉及到接口:多采商城获取订单变动明细列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] +# demand_code = "17020165859551447" + + +# 第三步获取需求单对应的订单变动明细列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url16") +request_body = commonFuc().get_business_data(module, "payload16", demand_code) +# print(request_body) +""" + 场景: 获取订单变动明细列表验证 + 用例名称:获取订单变动明细列表验证 + 输出:{"demandSubCode":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +print(result) +if result["data"]: + # 获取订单明细列表中demandCode + result = {"demandCode": result["data"][0]["demandCode"]} + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict16", demand_code) + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict16_1") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) + + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 98190669..9590085a 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -127,8 +127,12 @@ checkDict14_1: {"success":True,"code":"200"} checkDict15: {"success":true,"code":"200","message":"OK"} - - +#测试场景十六:获取订单变动明细列表验证 +"url16": "/order/mall/demandChange/list" +"payload16": {"demandCode":"%s","frontIdent":1} +#预期结果 +checkDict16_1: {"success":true,"code":"200","message":"OK"} +checkDict16: {"demandCode":"%s"} -- GitLab From 41a5c415f96299f0e01bd0b7f7c6107274f21169 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 20:29:45 +0800 Subject: [PATCH 46/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=AE=A2=E5=8D=95=E5=8F=98=E5=8A=A8?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...16\347\273\206\351\252\214\350\257\201.py" | 72 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.py" new file mode 100644 index 00000000..34a758d8 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\252\214\350\257\201.py" @@ -0,0 +1,72 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取订单变动明细验证,2289,2289-18,sit,bs +涉及到接口:多采商城获取订单变动明细接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] +demand_code = "17020165859551447" + + +# 第三步获取需求单对应的订单变动明细列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url16") +request_body = commonFuc().get_business_data(module, "payload16", demand_code) +# print(request_body) +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) + +# 获取明细id +demand_change_id = result["data"][0]["demandChangeId"] + +# 第四步查看明细列表中订单变动明细详情 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url17") +request_body = commonFuc().get_business_data(module, "payload17", demand_change_id) + +""" + 场景: 获取订单变动明细验证 + 用例名称:获取订单变动明细验证 + 输出:{"demandChangeId":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取明细demandChangeId +result = {"demandChangeId": result["data"]["list"][0]["demandChangeId"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict17", demand_change_id) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 9590085a..7add3cca 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -135,7 +135,11 @@ checkDict16_1: {"success":true,"code":"200","message":"OK"} checkDict16: {"demandCode":"%s"} - +#测试场景十七:获取订单变动明细验证 +"url17": "/order/mall/demandChangeDetail/page" +"payload17": {"frontIdent":1,"demandChangeId":"%s","pageSize":10,"pageNum":1,"total":0} +#预期结果 +checkDict17: {"demandChangeId":"%s"} -- GitLab From c78ab4fef60aa5da35dc5c2c3dc6448f1b2b54e1 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 20:39:55 +0800 Subject: [PATCH 47/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=AE=A2=E5=8D=95=E5=8F=98=E5=8A=A8?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E9=87=91=E9=A2=9D=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\351\242\235\351\252\214\350\257\201.py" | 60 +++++++++++++++++++ data/cmdc_demand_mall/data | 7 ++- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.py" new file mode 100644 index 00000000..bd854631 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\345\217\230\345\212\250\346\230\216\347\273\206\351\207\221\351\242\235\351\252\214\350\257\201.py" @@ -0,0 +1,60 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取订单变动明细金额验证,2289,2289-20,sit,bs +涉及到接口:多采商城获取订单变动明细列表接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] +demand_code = "17020165859551447" + + +# 第三步获取需求单对应的订单变动明细列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18") +request_body = commonFuc().get_business_data(module, "payload18", demand_code) +# print(request_body) +""" + 场景: 获取订单变动明细金额验证 + 用例名称:获取订单变动明细金额验证 + 输出:{"isChange":True} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +print(result) +# 获取订单明细列表中isChange +result = {"isChange": result["data"]["isChange"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict18") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 7add3cca..f971664d 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -142,7 +142,12 @@ checkDict16: {"demandCode":"%s"} checkDict17: {"demandChangeId":"%s"} - +#测试场景十八:获取订单变动明细金额验证 +"url18": "/order/mall/demandChange/calPrice" +"payload18": {"demandCode":"%s","frontIdent":1} +#预期结果 +checkDict18_1: {"success":true,"code":"200","message":"OK"} +checkDict18: {"isChange":True} -- GitLab From 00dbe9ea3dda76348af94ea6ce39846195e4d4ff Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 20:49:41 +0800 Subject: [PATCH 48/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E9=AA=8C=E8=AF=81=E8=AE=A2=E5=8D=95=E5=8D=A0=E7=94=A8?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...40\347\224\250\345\212\237\350\203\275.py" | 59 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.air/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.py" diff --git "a/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.air/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.py" "b/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.air/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.py" new file mode 100644 index 00000000..7b8aee52 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.air/\351\252\214\350\257\201\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275.py" @@ -0,0 +1,59 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc验证订单占用功能,2289,2289-21,sit,bs +涉及到接口:多采商城验证订单是否被占用接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "40187" + + +# 第三步判断需求单是否被占用 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19") +request_body = commonFuc().get_business_data(module, "payload19", demand_id) +# print(request_body) +""" + 场景: 验证订单占用功能 + 用例名称:验证订单占用功能 + 输出:{"success":true,"code":"200","message":"请求成功,展示操作流水"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +print(result) + +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict19") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index f971664d..49fad614 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -150,7 +150,11 @@ checkDict18_1: {"success":true,"code":"200","message":"OK"} checkDict18: {"isChange":True} - +#测试场景十九:验证订单是否被占用 +"url19": "/order/public/demandTakeUp" +"payload19": {"demandId":"%s","type":1} +#预期结果 +checkDict19: {"success":True,"code":"200","message":"OK","data":"占用成功"} -- GitLab From b2390e514e2b97c26cd5d6f3571f7a8a32972a84 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Mon, 11 Dec 2023 20:58:09 +0800 Subject: [PATCH 49/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=AE=A2=E5=8D=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=5F=E8=AE=A2=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...42\345\215\225\344\277\256\346\224\271.py" | 59 +++++++++++++++++++ data/cmdc_demand_mall/data | 8 ++- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" new file mode 100644 index 00000000..87daa22c --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\225\260\346\215\256\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" @@ -0,0 +1,59 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取订单数据验证_订单修改,2289,2289-22,sit,bs +涉及到接口:多采商城需求单编辑接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload20_1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "40187" + + +# 第三步获取需求单对应的子单详情 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20") +request_body = commonFuc().get_business_data(module, "payload20", demand_id) +# print(request_body) +""" + 场景: 获取订单数据验证_订单修改 + 用例名称:获取订单数据验证_订单修改 + 输出:{"success":true,"code":"200","message":"查询成功"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict20") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 49fad614..49a90aca 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -156,7 +156,13 @@ checkDict18: {"isChange":True} #预期结果 checkDict19: {"success":True,"code":"200","message":"OK","data":"占用成功"} - +#测试场景二十:获取订单数据验证_订单修改 +"url20": "/order/public/getOrderModifyData" +"payload20": {"demandId":"%s"} +#预期结果 +checkDict20: {"success":true,"code":"200","message":"查询成功"} +# 获取待审核需求单报文 +"payload20_1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":2,"shipmentType":null,"pageStart":1,"pageSize":10} -- GitLab From d8e41e59f634ecbb712a5f2302e65820db726b9b Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 08:27:54 +0800 Subject: [PATCH 50/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=AE=A2=E5=8D=95=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=5F=E9=9C=80=E6=B1=82=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...02\345\215\225\345\210\227\350\241\250.py" | 71 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" diff --git "a/air_case/cmdc_demand_mall/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_demand_mall/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" new file mode 100644 index 00000000..bffd36d8 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\350\256\242\345\215\225\345\257\274\345\207\272\345\212\237\350\203\275\351\252\214\350\257\201_\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" @@ -0,0 +1,71 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc订单导出功能验证_需求单列表,2289,2289-8,sit,bs +涉及到接口:多采商城需求单列表订单导出接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.handle_excel import HandleExcel +import requests +import random +import json +import os + + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +order_num = result["data"]["list"][random_demand]["demandCode"] + +# 第三步需求单列表进行订单导出操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url21") +request_body = commonFuc().get_business_data(module, "payload21", order_num) +# print(request_body) +""" + 场景: 验证多采商城需求单列表订单导出功能 + 用例名称:订单导出功能验证_需求单列表 + 输出:{"demandCode":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +# result = json.loads(result.content) +# print(result) + +# 获取文件 +BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +file_path = BASE_DIR + "/data/cmdc_files/需求单管理列表.xlsx" + +# 获取到导出文件存入cmdc_files文件中 +with open(file_path, 'wb') as f: + f.write(result.content) + +# 获取文件中订单编号 +excel = HandleExcel(file_path, "Sheet1") +result = {"demandCode": excel.read_data()[0].get("订单编号")} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict21", order_num) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 49a90aca..5a6fa447 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -165,7 +165,11 @@ checkDict20: {"success":true,"code":"200","message":"查询成功"} "payload20_1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":2,"shipmentType":null,"pageStart":1,"pageSize":10} - +#测试场景二十一:订单导出功能验证_需求单列表 +"url21": "/order/public/exportOwnListDemand" +"payload21": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"%s","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":1,"pageSize":10} +#预期结果 +checkDict21: {"demandCode":"%s"} -- GitLab From 882e5df2d79beb0c75bda3c279fb708e7009908f Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 09:04:00 +0800 Subject: [PATCH 51/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E9=9C=80=E6=B1=82=E5=8D=95=E9=94=80=E5=94=AE=E5=90=88?= =?UTF-8?q?=E5=90=8C=E4=B8=8B=E8=BD=BD=E5=8A=9F=E8=83=BD=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...37\350\203\275\351\252\214\350\257\201.py" | 74 +++++++++++++++++++ data/cmdc_demand_mall/data | 8 +- 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" new file mode 100644 index 00000000..029fba1c --- /dev/null +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -0,0 +1,74 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc需求单销售合同下载功能验证,2289,2289-23,sit,bs +涉及到接口:多采商城需求单销售合同下载接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.handle_excel import HandleExcel +import requests +import random +import json +import os + + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload22_1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "40187" +demand_code = result["data"]["list"][random_demand]["demandCode"] + + +# 第三步进行需求单销售合同下载 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url22") +request_body = commonFuc().get_business_data(module, "payload22", demand_id) +# print(request_body) +""" + 场景: 需求单销售合同下载功能验证 + 用例名称:需求单销售合同下载功能验证 + 输出:{"demandCode":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +# result = json.loads(result.content) +# print(result) + +# 获取文件 +BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +file_path = BASE_DIR + "/data/cmdc_files/销售合同导出.xlsx" + +# 获取到导出文件存入cmdc_files文件中 +with open(file_path, 'wb') as f: + f.write(result.content) + +# 获取销售合同文件中合同编号 +excel = HandleExcel(file_path, "Sheet1") +result = {"demandCode": excel.read_data()[0].get("医疗器械产品销售合同 ")[5:]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict22", demand_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 5a6fa447..7b437486 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -172,7 +172,13 @@ checkDict20: {"success":true,"code":"200","message":"查询成功"} checkDict21: {"demandCode":"%s"} - +#测试场景二十二:需求单销售合同下载功能验证 +"url22": "/order/public/back/exportSalesContract" +"payload22": {"demandId":"%s","productName":null,"manufacturer":null,"materialCode":null,"produceRegisterNum":null,"productLineName":null,"pageSize":10,"pageStart":1,"excelType":1} +#预期结果 +checkDict22: {"demandCode":"%s"} +# 获取ERP处理中需求单报文 +"payload22_1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":5,"shipmentType":null,"pageStart":1,"pageSize":10} -- GitLab From 2e420ba1bda96585225360e9336cc5979e103724 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 09:46:27 +0800 Subject: [PATCH 52/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E9=9C=80=E6=B1=82=E5=8D=95=E5=8F=96=E6=B6=88=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...37\350\203\275\351\252\214\350\257\201.py" | 57 +++++++++++++++++++ data/cmdc_demand_mall/data | 7 ++- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" new file mode 100644 index 00000000..74b2d13a --- /dev/null +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -0,0 +1,57 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc需求单取消功能验证,2289,2289-14,sit,bs +涉及到接口:多采商城需求单取消接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 第二步进行需求单取消操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url23") +request_body = commonFuc().get_business_data(module, "payload23") +# print(request_body) +""" + 场景: 需求单取消功能验证 + 用例名称:需求单取消功能验证 + 输出:{"orderStatus":201} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 查询需求单状态 +sql = "SELECT t.orderStatus FROM `cmdc-order`.tc_demand t WHERE t.demandId = 40213" +mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql) +result = {"orderStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict23") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + +# 进行需求单状态调整为待审核操作 +sql = "UPDATE `cmdc-order`.tc_demand t SET t.orderStatus = 102 WHERE t.demandId = 40213" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-order", sql) \ No newline at end of file diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 7b437486..437141a0 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -180,8 +180,11 @@ checkDict22: {"demandCode":"%s"} # 获取ERP处理中需求单报文 "payload22_1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":5,"shipmentType":null,"pageStart":1,"pageSize":10} - - +#测试场景二十三:需求单取消功能验证 +"url23": "/order/public/customerCancel" +"payload23": {"demandId":40213,"demandParentId":38196,"demandParentCode":"s2312120700012","demandCode":"17023358016932833","customerId":69,"customerName":"国药集团云南医疗器械有限公司","customerCode":1127254,"loginName":"BJ0621","realName":"郭红声","addressNumber":null,"mobile":"15887223281","productName":null,"productCode":null,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","paymentType":0,"receiveBankName":"建设银行北京支行19","receiveBankAccount":"62231478523685414","paymentAmount":45,"productAmount":45,"payableAmount":0,"refundAmount":0,"cancelAmount":0,"discountAmount":0,"orderStatus":102,"refundStatus":null,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":"测试","flhsStatus":0,"pushJdeStatus":null,"createTime":"2023-12-12 07:03:21","updateTime":"2023-12-12 07:03:21","submitTime":"2023-12-12 07:03:22","pushJdeTime":null,"successTime":null,"auditStatus":0,"deleteSign":0,"firstOrderFlag":0,"demandItems":[{"demandSkuId":201118,"demandId":40213,"distributionId":null,"companyCode":null,"demandCode":"17023358016932833","demandParentId":38196,"sellerCompanyId":3,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","customerCode":1127254,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":822,"productName":"医用防护口罩","productCode":"13295500","productNature":null,"brandName":null,"optionStr":"密合型拱形(13.5cm×12cm)","imageUrl":null,"lineNumber":1,"price":20,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":0,"lackQuantity":0,"cancelQuantity":0,"cancelAmount":0,"refundQuantity":0,"refundAmount":0,"discountQuantity":0,"discountAmount":0,"subtotal":20,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"YYPS20210031","manufacturer":"北京中北博健科贸有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":"2023-12-11T23:03:21.000+0000","updateTime":"2023-12-11T23:03:21.000+0000","deleteSign":0,"calCancelFlag":0,"refundFlag":0,"discountRate":1,"realPay":20,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":0,"returnAmount":0,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":0,"licenseNo":"京食药监械生产许20020039号","demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"13295500","activityCarDataVoList":null,"productReplaceLogs":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"replaceSgin":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":[],"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":1,"changeSgin":null,"addSgin":0,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":0,"fulCancelQuantity":0,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":null,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false},{"demandSkuId":201119,"demandId":40213,"distributionId":null,"companyCode":null,"demandCode":"17023358016932833","demandParentId":38196,"sellerCompanyId":3,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","customerCode":1127254,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":160,"productName":"一次性使用手术衣","productCode":"10980792","productNature":null,"brandName":null,"optionStr":"普通型 M120cm×140cm","imageUrl":null,"lineNumber":2,"price":25,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":0,"lackQuantity":0,"cancelQuantity":0,"cancelAmount":0,"refundQuantity":0,"refundAmount":0,"discountQuantity":0,"discountAmount":0,"subtotal":25,"measuringUnit":"件","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"稳健医疗用品股份有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":"2023-12-11T23:03:21.000+0000","updateTime":"2023-12-11T23:03:21.000+0000","deleteSign":0,"calCancelFlag":0,"refundFlag":0,"discountRate":1,"realPay":25,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":0,"returnAmount":0,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":0,"licenseNo":"鄂食药监械生产许20100306号","demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"10980792","activityCarDataVoList":null,"productReplaceLogs":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"replaceSgin":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":[],"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":2,"changeSgin":null,"addSgin":0,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":0,"fulCancelQuantity":0,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":null,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":null,"discountAmountWholeLine":null,"payableAmountWholeLine":null,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":0,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":0,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":1,"orderSource":1,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":null,"pageSize":null,"changeSgin":0,"yapei":2,"companyId":3,"userReceiveId2":null,"preemptConfig":null,"productSpec":null,"secondAuditSign":0,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":[],"imageUrls":null,"total":null,"submitTimeStr":"2023-12-12 07:03:22","updateTimeStr":"2023-12-12 07:03:21","auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":"","newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":0,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":1,"groupChangeSign":0,"custModify":0,"demandSubCode":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":0,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":15,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":"叶二娘","receiverPhoneNote":"13223233434","receiverAddressNote":"湖北省仙桃市嵩山少林室","flag":null,"sourceStr":null,"addressNoNote":0,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":"0","detail":{"ypTotalPrice":"0","payableAmount":"0.0000","isChange":false,"rebateAmount":"0.00","returnPrice":"0","rebateChangePrice":"0","changePrice":"0","activityChangePrice":"0","ypPromotionTotal":"0","nowAmount":"0"},"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":0,"snSgin":0,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":2,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":"ac17023358014592533","forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":8,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":1,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":"0","confirmReceiptTime":null,"afterSaleDays":30,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":[{"receiverNote":"叶二娘","receiverPhoneNote":"13223233434","receiverAddressNote":"湖北省仙桃市嵩山少林室"}],"splitOrMerge":0,"spitOrderSign":1,"productAmountWholeLine":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"proofURLList":[],"updateSgin":0,"soList":[]} +#预期结果 +checkDict23: {"orderStatus":201} -- GitLab From ad4f92eba164d9dea0dde59f45b8d5a49d3c57cc Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 13:47:38 +0800 Subject: [PATCH 53/74] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...37\350\203\275\351\252\214\350\257\201.py" | 31 ++++++++++++------- data/cmdc_demand_mall/data | 3 +- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" index 74b2d13a..10e6694b 100644 --- "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -40,18 +40,25 @@ request_body = commonFuc().get_business_data(module, "payload23") # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) -# print(result) -# 查询需求单状态 -sql = "SELECT t.orderStatus FROM `cmdc-order`.tc_demand t WHERE t.demandId = 40213" -mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql) -result = {"orderStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]} -# print(result) -# 获取预期结果 -check_dict = commonFuc().get_business_data(module, "checkDict23") -# print(check_dict) -# 断言实际结果中是否包含预期结果的内容 -commonFuc().check_result(check_dict, result) +print(result) +if result["success"]: + # 查询需求单状态 + sql = "SELECT t.orderStatus FROM `cmdc-order`.tc_demand t WHERE t.demandId = 40213" + mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql) + result = {"orderStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]} + # print(result) + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict23") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict23_1") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) # 进行需求单状态调整为待审核操作 -sql = "UPDATE `cmdc-order`.tc_demand t SET t.orderStatus = 102 WHERE t.demandId = 40213" +sql = "UPDATE `cmdc-order`.tc_demand t SET t.orderStatus = 102, t.auditStatus = 0 WHERE t.demandId = 40213" mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-order", sql) \ No newline at end of file diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 437141a0..f64da97e 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -116,7 +116,7 @@ checkDict13_1: {"success":True,"code":"200"} "url14": "/order/public/demandSub/detail" "payload14": {"demandId":"%s"} #预期结果 -checkDict14: {"demandSubCode":"%s"} +checkDict14: {"demandId":"%s"} checkDict14_1: {"success":True,"code":"200"} @@ -185,6 +185,7 @@ checkDict22: {"demandCode":"%s"} "payload23": {"demandId":40213,"demandParentId":38196,"demandParentCode":"s2312120700012","demandCode":"17023358016932833","customerId":69,"customerName":"国药集团云南医疗器械有限公司","customerCode":1127254,"loginName":"BJ0621","realName":"郭红声","addressNumber":null,"mobile":"15887223281","productName":null,"productCode":null,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","paymentType":0,"receiveBankName":"建设银行北京支行19","receiveBankAccount":"62231478523685414","paymentAmount":45,"productAmount":45,"payableAmount":0,"refundAmount":0,"cancelAmount":0,"discountAmount":0,"orderStatus":102,"refundStatus":null,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":"测试","flhsStatus":0,"pushJdeStatus":null,"createTime":"2023-12-12 07:03:21","updateTime":"2023-12-12 07:03:21","submitTime":"2023-12-12 07:03:22","pushJdeTime":null,"successTime":null,"auditStatus":0,"deleteSign":0,"firstOrderFlag":0,"demandItems":[{"demandSkuId":201118,"demandId":40213,"distributionId":null,"companyCode":null,"demandCode":"17023358016932833","demandParentId":38196,"sellerCompanyId":3,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","customerCode":1127254,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":822,"productName":"医用防护口罩","productCode":"13295500","productNature":null,"brandName":null,"optionStr":"密合型拱形(13.5cm×12cm)","imageUrl":null,"lineNumber":1,"price":20,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":0,"lackQuantity":0,"cancelQuantity":0,"cancelAmount":0,"refundQuantity":0,"refundAmount":0,"discountQuantity":0,"discountAmount":0,"subtotal":20,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"YYPS20210031","manufacturer":"北京中北博健科贸有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":"2023-12-11T23:03:21.000+0000","updateTime":"2023-12-11T23:03:21.000+0000","deleteSign":0,"calCancelFlag":0,"refundFlag":0,"discountRate":1,"realPay":20,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":0,"returnAmount":0,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":0,"licenseNo":"京食药监械生产许20020039号","demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"13295500","activityCarDataVoList":null,"productReplaceLogs":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"replaceSgin":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":[],"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":1,"changeSgin":null,"addSgin":0,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":0,"fulCancelQuantity":0,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":null,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false},{"demandSkuId":201119,"demandId":40213,"distributionId":null,"companyCode":null,"demandCode":"17023358016932833","demandParentId":38196,"sellerCompanyId":3,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","customerCode":1127254,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":160,"productName":"一次性使用手术衣","productCode":"10980792","productNature":null,"brandName":null,"optionStr":"普通型 M120cm×140cm","imageUrl":null,"lineNumber":2,"price":25,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":0,"lackQuantity":0,"cancelQuantity":0,"cancelAmount":0,"refundQuantity":0,"refundAmount":0,"discountQuantity":0,"discountAmount":0,"subtotal":25,"measuringUnit":"件","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"稳健医疗用品股份有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":"2023-12-11T23:03:21.000+0000","updateTime":"2023-12-11T23:03:21.000+0000","deleteSign":0,"calCancelFlag":0,"refundFlag":0,"discountRate":1,"realPay":25,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":0,"returnAmount":0,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":0,"licenseNo":"鄂食药监械生产许20100306号","demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"10980792","activityCarDataVoList":null,"productReplaceLogs":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"replaceSgin":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":[],"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":2,"changeSgin":null,"addSgin":0,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":0,"fulCancelQuantity":0,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":null,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":null,"discountAmountWholeLine":null,"payableAmountWholeLine":null,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":0,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":0,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":1,"orderSource":1,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":null,"pageSize":null,"changeSgin":0,"yapei":2,"companyId":3,"userReceiveId2":null,"preemptConfig":null,"productSpec":null,"secondAuditSign":0,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":[],"imageUrls":null,"total":null,"submitTimeStr":"2023-12-12 07:03:22","updateTimeStr":"2023-12-12 07:03:21","auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":"","newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":0,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":1,"groupChangeSign":0,"custModify":0,"demandSubCode":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":0,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":15,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":"叶二娘","receiverPhoneNote":"13223233434","receiverAddressNote":"湖北省仙桃市嵩山少林室","flag":null,"sourceStr":null,"addressNoNote":0,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":"0","detail":{"ypTotalPrice":"0","payableAmount":"0.0000","isChange":false,"rebateAmount":"0.00","returnPrice":"0","rebateChangePrice":"0","changePrice":"0","activityChangePrice":"0","ypPromotionTotal":"0","nowAmount":"0"},"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":0,"snSgin":0,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":2,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":"ac17023358014592533","forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":8,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":1,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":"0","confirmReceiptTime":null,"afterSaleDays":30,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":[{"receiverNote":"叶二娘","receiverPhoneNote":"13223233434","receiverAddressNote":"湖北省仙桃市嵩山少林室"}],"splitOrMerge":0,"spitOrderSign":1,"productAmountWholeLine":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"proofURLList":[],"updateSgin":0,"soList":[]} #预期结果 checkDict23: {"orderStatus":201} +checkDict23_1: {"success": False, "code": "demand", "message": "该订单已提交过,请稍后操作"} -- GitLab From eaae47e54b7af5aaabea27d2c7aca173bd610f90 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 14:11:16 +0800 Subject: [PATCH 54/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=A7=A3=E9=99=A4=E8=AE=A2=E5=8D=95=E5=8D=A0=E7=94=A8?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...37\350\203\275\351\252\214\350\257\201.py" | 57 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" new file mode 100644 index 00000000..7ced86e3 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -0,0 +1,57 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc解除订单占用功能验证,2289,2289-22,sit,bs +涉及到接口:多采商城需求单解除订单占用接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "40187" + + +# 第三步解除订单占用 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url24") +request_body = commonFuc().get_business_data(module, "payload24", demand_id) +# print(request_body) +""" + 场景: 解除订单占用功能验证 + 用例名称:解除订单占用功能验证 + 输出:{"success":true,"code":"200","message":"OK","data":"0"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict24") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index f64da97e..bee679fe 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -187,7 +187,11 @@ checkDict22: {"demandCode":"%s"} checkDict23: {"orderStatus":201} checkDict23_1: {"success": False, "code": "demand", "message": "该订单已提交过,请稍后操作"} - +#测试场景二十四:解除订单占用功能验证 +"url24": "/order/public/removeDemandTakeUp" +"payload24": {"demandId":"%s","type":1} +#预期结果 +checkDict24: {"success":true,"code":"200","message":"OK","data":"0"} -- GitLab From 80c781b7374b66c247323b83180f2ec7bda0cf22 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 14:41:56 +0800 Subject: [PATCH 55/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E9=9C=80=E6=B1=82=E5=8D=95=E5=95=86=E5=93=81=E8=BF=94?= =?UTF-8?q?=E5=88=A9=E6=98=8E=E7=BB=86=E8=8E=B7=E5=8F=96=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...37\350\203\275\351\252\214\350\257\201.py" | 2 +- ...37\350\203\275\351\252\214\350\257\201.py" | 43 ++++++++++++++ ...67\345\217\226\351\252\214\350\257\201.py" | 58 +++++++++++++++++++ data/cmdc_demand_mall/data | 12 +++- 4 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 "air_case/cmdc_demand_mall/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.py" create mode 100644 "air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" index 7ced86e3..779b0ff2 100644 --- "a/air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\247\243\351\231\244\350\256\242\345\215\225\345\215\240\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -2,7 +2,7 @@ __author__ = "liguangyu" """ -case_tag:cmdc_api,cmdc解除订单占用功能验证,2289,2289-22,sit,bs +case_tag:cmdc_api,cmdc解除订单占用功能验证,2289,2289-24,sit,bs 涉及到接口:多采商城需求单解除订单占用接口 """ diff --git "a/air_case/cmdc_demand_mall/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.py" new file mode 100644 index 00000000..c12523de --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.air/\350\256\242\345\215\225\344\277\256\346\224\271\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -0,0 +1,43 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc订单修改功能验证,2289,2289-25,sit,bs +涉及到接口:多采商城需求单编辑接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步进行需求单编辑修改操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url25") +request_body = commonFuc().get_business_data(module, "payload25") +# print(request_body) +""" + 场景: 订单修改功能验证 + 用例名称:订单修改功能验证 + 输出:{"demandCode":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) + +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict25") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.py" new file mode 100644 index 00000000..539b9079 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\225\206\345\223\201\350\277\224\345\210\251\346\230\216\347\273\206\350\216\267\345\217\226\351\252\214\350\257\201.py" @@ -0,0 +1,58 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc需求单商品返利明细获取验证,2289,2289-26,sit,bs +涉及到接口:多采商城获取需求单商品返利明细接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_code = result["data"]["list"][random_demand]["demandCode"] +# demand_code = "16974216158935068" + +# 第四步查看需求单中商品对应的返利明细 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url26") +request_body = commonFuc().get_business_data(module, "payload26", demand_code) + +""" + 场景: 需求单商品返利明细获取验证 + 用例名称:需求单商品返利明细获取验证 + 输出:{"demandCode":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取返利明细中demandCode +result = {"demandCode": result["data"][0]["demandCode"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict26", demand_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index bee679fe..aa4c0cab 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -194,9 +194,17 @@ checkDict23_1: {"success": False, "code": "demand", "message": "该订单已提 checkDict24: {"success":true,"code":"200","message":"OK","data":"0"} +#测试场景二十五:订单修改功能验证 +"url25": "/order/public/orderModify" +"payload25": {"datas":[{"demandId":40174,"demandParentId":38157,"demandParentCode":"s2312110700012","demandCode":"17022493988974979","customerId":69,"customerName":"国药集团云南医疗器械有限公司","customerCode":1127254,"loginName":"BJ0621","realName":"郭红声","addressNumber":null,"mobile":"15887223281","productName":null,"productCode":null,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","paymentType":0,"receiveBankName":"建设银行北京支行19","receiveBankAccount":"62231478523685414","paymentAmount":"45.00","productAmount":45,"payableAmount":"45.00","refundAmount":0,"cancelAmount":0,"discountAmount":0,"orderStatus":102,"refundStatus":null,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":0,"pushJdeStatus":null,"createTime":"2023-12-11 07:03:18","updateTime":"2023-12-11 07:03:18","submitTime":"2023-12-11 07:03:19","pushJdeTime":null,"successTime":null,"auditStatus":0,"deleteSign":0,"firstOrderFlag":0,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":200989,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":"17022493988974979","demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","customerCode":1127254,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":822,"productName":"医用防护口罩","productCode":"13295500","productNature":null,"brandName":null,"optionStr":"密合型拱形(13.5cm×12cm)","imageUrl":null,"lineNumber":null,"price":20,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"20.00","measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"YYPS20210031","manufacturer":"北京中北博健科贸有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":20,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":1,"sdOutStorage":0,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"13295500","activityCarDataVoList":null,"productReplaceLogs":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"replaceSgin":0,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":"1","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":1,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":null,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":0,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"orderType":null},{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":200990,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":"17022493988974979","demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","customerCode":1127254,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":160,"productName":"一次性使用手术衣","productCode":"10980792","productNature":null,"brandName":null,"optionStr":"普通型 M120cm×140cm","imageUrl":null,"lineNumber":null,"price":25,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"25.00","measuringUnit":"件","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"稳健医疗用品股份有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":25,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":1,"sdOutStorage":0,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"10980792","activityCarDataVoList":null,"productReplaceLogs":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"replaceSgin":0,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":"1","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":2,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":null,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":0,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":45,"discountAmountWholeLine":null,"payableAmountWholeLine":null,"discountRate":100,"singleRebateAmount":null,"isRebateEdit":0,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":0,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":1,"orderSource":1,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":1,"pageSize":5,"changeSgin":0,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":0,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":[],"imageUrls":null,"total":null,"submitTimeStr":"2023-12-11 07:03:19","updateTimeStr":"2023-12-11 07:03:18","auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":0,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":0,"groupChangeSign":0,"custModify":0,"demandSubCode":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":0,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":"郭红声","receiverPhoneNote":"15887223281","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","flag":null,"sourceStr":null,"addressNoNote":93465,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":0,"snSgin":0,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":"ac17022493986807758","forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":8,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":1,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":"0","confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":0,"spitOrderSign":1,"productAmountWholeLine":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"totalPriceNum":0,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"selecteAddresId":3278}]} +#预期结果 +checkDict25: {"success":true,"code":"200","message":"修改成功"} - - +#测试场景二十六:需求单商品返利明细获取验证 +"url26": "/order/public/demandRebateSku/demandCode" +"payload26": {"demandCode":"%s"} +#预期结果 +checkDict26: {"demandCode":"%s"} -- GitLab From b22d4e8a2f3ad4d83ac04a471816c44e35fce949 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 14:52:12 +0800 Subject: [PATCH 56/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E9=9C=80=E6=B1=82=E5=8D=95=E5=95=86=E5=93=81=E8=BF=94?= =?UTF-8?q?=E5=88=A9=E6=98=8E=E7=BB=86=E8=8E=B7=E5=8F=96=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...57\344\273\230\351\241\265\351\235\242.py" | 59 +++++++++++++++++++ data/cmdc_demand_mall/data | 30 ++++++++++ 2 files changed, 89 insertions(+) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.py" new file mode 100644 index 00000000..6f157403 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\210\227\350\241\250\346\230\216\347\273\206_\346\224\257\344\273\230\351\241\265\351\235\242.py" @@ -0,0 +1,59 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取需求列表明细_支付页面,2289,2289-27,sit,bs +涉及到接口:多采商城支付页面获取需求列表明细接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload27_1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_parent_code = result["data"]["list"][random_demand]["demandParentCode"] + +# 第三步获取支付页面需求单列表明细 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url27") +request_body = commonFuc().get_business_data(module, "payload27", demand_parent_code) +# print(request_body) +""" + 场景: 获取需求列表明细_支付页面 + 用例名称:获取需求列表明细_支付页面 + 输出:{"demandParentCode":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取需求单详情中demandParentCode +result = {"demandParentCode": result["data"]["list"][0]["demandParentCode"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict27", demand_parent_code) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index aa4c0cab..f63dadc3 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -205,6 +205,36 @@ checkDict25: {"success":true,"code":"200","message":"修改成功"} "payload26": {"demandCode":"%s"} #预期结果 checkDict26: {"demandCode":"%s"} + + +#测试场景二十七:获取需求列表明细_支付页面 +"url27": "/order/mall/listDemand" +"payload27": {"demandParentCode":"%s"} +#预期结果 +checkDict27: {"demandParentCode":"%s"} +# 获取待支付需求单报文 +"payload27_1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":4,"shipmentType":null,"pageStart":1,"pageSize":10} + + + + + + + + + + + + + + + + + + + + + -- GitLab From 608e2351d2760f892eeb3f9ae99ab8252b91ac24 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 15:01:10 +0800 Subject: [PATCH 57/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=AE=A2=E5=8D=95=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\351\242\235\351\252\214\350\257\201.py" | 59 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.py" new file mode 100644 index 00000000..c546b114 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.air/\350\216\267\345\217\226\350\256\242\345\215\225\346\224\257\344\273\230\351\207\221\351\242\235\351\252\214\350\257\201.py" @@ -0,0 +1,59 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取订单支付金额验证,2289,2289-28,sit,bs +涉及到接口:多采商城支付页面获取订单支付金额接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload27_1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +code = result["data"]["list"][random_demand]["demandParentCode"] +customer_charge = result["data"]["list"][random_demand]["customerCharge"] + +# 第三步获取支付页面订单支付金额 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url28") +request_body = commonFuc().get_business_data(module, "payload28", code) +# print(request_body) +""" + 场景: 获取订单支付金额验证 + 用例名称:获取订单支付金额验证 + 输出:{"customerCharge":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取需求单对应的客户折扣 +result = {"customerCharge": result["data"]["customerCharge"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict28", customer_charge) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index f63dadc3..42dca38c 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -216,7 +216,11 @@ checkDict27: {"demandParentCode":"%s"} "payload27_1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":4,"shipmentType":null,"pageStart":1,"pageSize":10} - +#测试场景二十八:获取订单支付金额验证 +"url28": "/order/public/allPayMoeny" +"payload28": {"code":"%s"} +#预期结果 +checkDict28: {"customerCharge":"%s"} -- GitLab From 4474177971226a4c5bc38885d837151695364b58 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 15:10:11 +0800 Subject: [PATCH 58/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E6=94=AF=E4=BB=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=5F=E6=94=AF=E4=BB=98=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...57\344\273\230\351\241\265\351\235\242.py" | 60 +++++++++++++++++++ data/cmdc_demand_mall/data | 12 +++- 2 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.py" new file mode 100644 index 00000000..722a917f --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.air/\350\216\267\345\217\226\346\224\257\344\273\230\344\277\241\346\201\257\351\252\214\350\257\201_\346\224\257\344\273\230\351\241\265\351\235\242.py" @@ -0,0 +1,60 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取支付信息验证_支付页面,2289,2289-31,sit,bs +涉及到接口:多采商城支付页面获取支付信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload27_1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +code = result["data"]["list"][random_demand]["demandParentCode"] +customer_charge = result["data"]["list"][random_demand]["customerCharge"] + +# 第三步获取支付页面订单支付金额 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url28") +request_body = commonFuc().get_business_data(module, "payload28", code) +# print(request_body) +""" + 场景: 获取支付信息验证_支付页面 + 用例名称:获取支付信息验证_支付页面 + 输出:{"customerCharge":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +print(result) +# 获取需求单对应的客户折扣 +result = {"customerCharge": result["data"]["customerCharge"]} +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict28", customer_charge) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 42dca38c..1a90372f 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -223,9 +223,17 @@ checkDict27: {"demandParentCode":"%s"} checkDict28: {"customerCharge":"%s"} +#测试场景二十九:获取支付信息验证_支付页面 +"url29": "/order/public/toPayList" +"payload29": {"code":"%s"} +#预期结果 +checkDict29: {"customerCharge":"%s"} - - +#测试场景三十:根据用户查询公司信息验证 +"url30": "/user/public/queryCompanyByUser" +"payload30": {} +#预期结果 +checkDict30: {"customerCharge":"%s"} -- GitLab From 55d6eb607f8e9a7cbbae8a4483977d14daa3c9bc Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 15:16:08 +0800 Subject: [PATCH 59/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=A0=B9=E6=8D=AE=E7=94=A8=E6=88=B7=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E4=BF=A1=E6=81=AF=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\346\201\257\351\252\214\350\257\201.py" | 44 +++++++++++++++++++ data/cmdc_demand_mall/data | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.py" new file mode 100644 index 00000000..7ef33bae --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\240\271\346\215\256\347\224\250\346\210\267\346\237\245\350\257\242\345\205\254\345\217\270\344\277\241\346\201\257\351\252\214\350\257\201.py" @@ -0,0 +1,44 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc根据用户查询公司信息验证,2289,2289-29,sit,bs +涉及到接口:多采商城根据用户查询公司信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步查询公司信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url30") +request_body = commonFuc().get_business_data(module, "payload30") +# print(request_body) +""" + + 场景: 根据用户查询公司信息验证 + 用例名称:根据用户查询公司信息验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict30") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 1a90372f..2c0ce3ed 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -233,7 +233,7 @@ checkDict29: {"customerCharge":"%s"} "url30": "/user/public/queryCompanyByUser" "payload30": {} #预期结果 -checkDict30: {"customerCharge":"%s"} +checkDict30: {"success":true,"code":"200","message":"OK"} -- GitLab From 2944aedd8ee700a516d6b065bdfd9490da7e1375 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 15:22:28 +0800 Subject: [PATCH 60/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9Acmdc=E6=A0=B9=E6=8D=AE=E9=9C=80=E6=B1=82id=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=85=AC=E5=8F=B8id=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\345\217\270id\351\252\214\350\257\201.py" | 58 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" new file mode 100644 index 00000000..476c3750 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" @@ -0,0 +1,58 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc根据需求id获取公司id验证,2289,2289-30,sit,bs +涉及到接口:多采商城验证根据需求id获取公司id接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "36064" + + +# 第三步获取公司id +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url31") +request_body = commonFuc().get_business_data(module, "payload31", demand_id) +# print(request_body) +""" + 场景: 根据需求id获取公司id验证 + 用例名称:根据需求id获取公司id验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +print(result) + +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict31") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 2c0ce3ed..85fc2515 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -235,7 +235,11 @@ checkDict29: {"customerCharge":"%s"} #预期结果 checkDict30: {"success":true,"code":"200","message":"OK"} - +#测试场景三十一:根据需求id获取公司id验证 +"url31": "/order/mall/getCompanyIdByDemandId" +"payload31": {"demandId":"%s"} +#预期结果 +checkDict31: {"success":true,"code":"200","message":"OK"} -- GitLab From d204603168633f86a6d8ae5c5b17223dd0aeb02e Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 15:55:52 +0800 Subject: [PATCH 61/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=9F=A5=E8=AF=A2=E7=BA=BF=E4=B8=8B=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E4=BF=A1=E6=81=AF=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\346\201\257\351\252\214\350\257\201.py" | 55 +++++++++++++++++++ ...\345\217\270id\351\252\214\350\257\201.py" | 6 +- ...37\350\203\275\351\252\214\350\257\201.py" | 1 - data/cmdc_demand_mall/data | 12 +++- 4 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 "air_case/cmdc_demand_mall/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.py" new file mode 100644 index 00000000..7a935bc9 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.air/\346\237\245\350\257\242\347\272\277\344\270\213\346\224\257\344\273\230\350\264\246\345\217\267\344\277\241\346\201\257\351\252\214\350\257\201.py" @@ -0,0 +1,55 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc查询线下支付账号信息验证,2289,2289-32,sit,bs +涉及到接口:多采商城查询线下支付账号信息接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步查询线下支付账号信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url33") +request_body = commonFuc().get_business_data(module, "payload33") +# print(request_body) +""" + 场景: 查询线下支付账号信息验证 + 用例名称:查询线下支付账号信息验证 + 输出:{"total":"%s"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) + +# 获取账号数量 +result = {"total": result["data"]["total"]} +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 查询数据库中对应公司对应的账号信息 +sql = "SELECT t.accountId FROM `cmdc-cms`.cms_account t WHERE companyId = 7" +total = len(mysql_handle.selectSql(host, port, user, pwd, "cmdc-cms", sql)) + +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict33", total) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" index 476c3750..a42b794f 100644 --- "a/air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.air/\346\240\271\346\215\256\351\234\200\346\261\202id\350\216\267\345\217\226\345\205\254\345\217\270id\351\252\214\350\257\201.py" @@ -37,8 +37,8 @@ demand_id = result["data"]["list"][random_demand]["demandId"] # 第三步获取公司id -url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url31") -request_body = commonFuc().get_business_data(module, "payload31", demand_id) +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url32") +request_body = commonFuc().get_business_data(module, "payload32", demand_id) # print(request_body) """ 场景: 根据需求id获取公司id验证 @@ -52,7 +52,7 @@ result = json.loads(result.content) print(result) # 获取预期结果 -check_dict = commonFuc().get_business_data(module, "checkDict31") +check_dict = commonFuc().get_business_data(module, "checkDict32") # print(check_dict) # 断言实际结果中是否包含预期结果的内容 commonFuc().check_result(check_dict, result) diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" index 10e6694b..a757421a 100644 --- "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -44,7 +44,6 @@ print(result) if result["success"]: # 查询需求单状态 sql = "SELECT t.orderStatus FROM `cmdc-order`.tc_demand t WHERE t.demandId = 40213" - mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql) result = {"orderStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]} # print(result) # 获取预期结果 diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 85fc2515..9dba5215 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -241,9 +241,17 @@ checkDict30: {"success":true,"code":"200","message":"OK"} #预期结果 checkDict31: {"success":true,"code":"200","message":"OK"} +#测试场景三十二:根据需求id获取公司id验证 +"url32": "/order/mall/getCompanyIdByDemandId" +"payload32": {"demandId":"%s"} +#预期结果 +checkDict32: {"success":true,"code":"200","message":"OK"} - - +#测试场景三十三:查询线下支付账号信息验证 +"url33": "/cms/mall/account/queryPageByCompanyId" +"payload33": {"pageSize":9,"pageNumber":1,"companyId":"7","sort":"0200002919200155850"} +#预期结果 +checkDict33: {"total":"%s"} -- GitLab From 2c4ddb0cd49d7e4244715cf3562a790cbd4df790 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 16:13:14 +0800 Subject: [PATCH 62/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E4=B8=8A=E4=BC=A0=E6=94=AF=E4=BB=98=E5=87=AD=E8=AF=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...37\350\203\275\351\252\214\350\257\201.py" | 52 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 ++- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.air/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.air/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.air/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.py" new file mode 100644 index 00000000..db9dd296 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.air/\344\270\212\344\274\240\346\224\257\344\273\230\345\207\255\350\257\201\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -0,0 +1,52 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc上传支付凭证功能验证,2289,2289-33,sit,bs +涉及到接口:多采商城支付页面附件上传接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json +import os + + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 获取文件地址 +BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +file_path = BASE_DIR + "/data/cmdc_files/test_file.jpg" + +# 第二步上传附件 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url34") + +# 获取文件 +file = open(file_path, "rb") +files = {"file": file} + +""" + 场景: 上传支付凭证功能验证 + 用例名称:上传支付凭证功能验证 + 输出:{"success":true,"code":"200","message":"OK"} +""" + +# 发送请求 +result = requests.post(url, files=files, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict34") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 9dba5215..1d5849e9 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -254,7 +254,11 @@ checkDict32: {"success":true,"code":"200","message":"OK"} checkDict33: {"total":"%s"} - +#测试场景三十四:上传支付凭证功能验证 +"url34": "/product/public/fileUpload" +"payload34": {} +#预期结果 +checkDict34: {"success":true,"code":"200","message":"OK"} -- GitLab From 2e3d0f234a4061df58ed10b92995e9dc7b9a05ae Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 16:24:44 +0800 Subject: [PATCH 63/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E6=8F=90=E4=BA=A4=E8=AE=A2=E5=8D=95=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E8=AF=81=E6=98=8E=E5=8A=9F=E8=83=BD=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...37\350\203\275\351\252\214\350\257\201.py" | 61 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.air/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.py" diff --git "a/air_case/cmdc_demand_mall/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.air/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.air/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.py" new file mode 100644 index 00000000..be30623e --- /dev/null +++ "b/air_case/cmdc_demand_mall/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.air/\346\217\220\344\272\244\350\256\242\345\215\225\346\224\257\344\273\230\350\257\201\346\230\216\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -0,0 +1,61 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc提交订单支付证明功能验证,2289,2289-34,sit,bs +涉及到接口:多采商城提交订单支付证明接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import json +import os + + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 获取文件地址 +BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +file_path = BASE_DIR + "/data/cmdc_files/test_file.jpg" + +# 第二步上传附件 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url34") + +# 获取文件 +file = open(file_path, "rb") +files = {"file": file} +# 发送请求 +result = requests.post(url, files=files, headers=headers) +result = json.loads(result.content) + +# 获取上传附件后地址 +file_aliyun = result["data"] + +# 第三步提交支付证明信息 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url35") +request_body = commonFuc().get_business_data(module, "payload35", file_aliyun) + +""" + 场景: 提交订单支付证明功能验证 + 用例名称:提交订单支付证明功能验证 + 输出:{"success":true,"code":"200","message":"OK","data":1} +""" + +# 发送请求 +result = result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict35") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 1d5849e9..26d5f58c 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -261,7 +261,11 @@ checkDict33: {"total":"%s"} checkDict34: {"success":true,"code":"200","message":"OK"} - +#测试场景三十五:提交订单支付证明功能验证 +"url35": "/order/public/uploadOrderProof" +"payload35": {"demandParentCode":"s2309011600016","proofRemark":"","proofURL":"%s","receiveBankAccount":"0200002919200155850","receiveBankName":"国药集团联合医疗器械有限公司"} +#预期结果 +checkDict35: {"success":true,"code":"200","message":"OK","data":1} -- GitLab From bb2c3aa38c3269d67ef362eaadcd9f578a07aef3 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 16:43:25 +0800 Subject: [PATCH 64/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E9=AA=8C=E8=AF=81=E8=AE=A2=E5=8D=95=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=B7=B2=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\345\267\262\346\224\257\344\273\230.py" | 63 +++++++++++++++++++ data/cmdc_demand_mall/data | 7 ++- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.py" diff --git "a/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.py" "b/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.py" new file mode 100644 index 00000000..467fcf36 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\345\267\262\346\224\257\344\273\230.py" @@ -0,0 +1,63 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc验证订单是否已支付,2289,2289-35,sit,bs +涉及到接口:多采商城获取订单支付状态接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_parent_code = result["data"]["list"][random_demand]["demandParentCode"] +proof_sign = result["data"]["list"][random_demand]["proofSign"] + +# 第三步在需求单列表进行需求单查询操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url36") +request_body = commonFuc().get_business_data(module, "payload36", demand_parent_code) +# print(request_body) +""" + 场景: 验证订单是否已支付 + 用例名称:验证订单是否已支付 + 输出:{"success":true,"code":"200","message":"OK","data":0} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +if proof_sign: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict36") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict36_1") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 26d5f58c..7e5303af 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -267,7 +267,12 @@ checkDict34: {"success":true,"code":"200","message":"OK"} #预期结果 checkDict35: {"success":true,"code":"200","message":"OK","data":1} - +#测试场景三十六:验证订单是否已支付 +"url36": "/order/public/payStatus" +"payload36": {"orderNo":"%s"} +#预期结果 +checkDict36_1: {"success":true,"code":"200","message":"OK","data":1} +checkDict36: {"success":true,"code":"200","message":"OK","data":0} -- GitLab From 53f46291136de717f95bb72e864de74885e04706 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Tue, 12 Dec 2023 16:50:34 +0800 Subject: [PATCH 65/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E9=AA=8C=E8=AF=81=E8=AE=A2=E5=8D=95=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E8=A2=AB=E5=8D=A0=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\350\242\253\345\215\240\347\224\250.py" | 57 +++++++++++++++++++ data/cmdc_demand_mall/data | 6 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.py" diff --git "a/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.py" "b/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.py" new file mode 100644 index 00000000..e9b49d23 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.air/\351\252\214\350\257\201\350\256\242\345\215\225\346\230\257\345\220\246\350\242\253\345\215\240\347\224\250.py" @@ -0,0 +1,57 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc验证订单是否被占用,2289,2289-36,sit,bs +涉及到接口:多采商城验证订单是否被占用接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +demand_id = result["data"]["list"][random_demand]["demandId"] +# demand_id = "40187" + + +# 第三步解除订单占用 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url37") +request_body = commonFuc().get_business_data(module, "payload37", demand_id) +# print(request_body) +""" + 场景: 验证订单是否被占用 + 用例名称:验证订单是否被占用 + 输出:{"success":true,"code":"200","message":"OK","data":"0"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict37") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index 7e5303af..b08d7f7e 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -274,5 +274,9 @@ checkDict35: {"success":true,"code":"200","message":"OK","data":1} checkDict36_1: {"success":true,"code":"200","message":"OK","data":1} checkDict36: {"success":true,"code":"200","message":"OK","data":0} - +#测试场景三十七:验证订单是否被占用 +"url37": "/order/public/isDemandTakeUp" +"payload37": {"demandId":"%s","type":2} +#预期结果 +checkDict37: {"success":true,"code":"200","message":"OK","data":0} -- GitLab From ef705ceb6dc9ddd524e1ed560153e89872e17aee Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 13 Dec 2023 09:33:54 +0800 Subject: [PATCH 66/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E8=8E=B7=E5=8F=96=E8=8D=89=E7=A8=BF=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...42\345\215\225\350\257\246\346\203\205.py" | 59 +++++++++++++++++++ data/cmdc_demand_mall/data | 28 +++++++++ 2 files changed, 87 insertions(+) create mode 100644 "air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.air/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.py" diff --git "a/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.air/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.py" "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.air/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.py" new file mode 100644 index 00000000..c0fad1a2 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.air/\350\216\267\345\217\226\350\215\211\347\250\277\350\256\242\345\215\225\350\257\246\346\203\205.py" @@ -0,0 +1,59 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc获取草稿订单详情,2289,2289-38,sit,bs +涉及到接口:多采商城获取草稿订单详情接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +import requests +import random +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 第二步获取需求单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") +request_body = commonFuc().get_business_data(module, "payload38_1") +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) + +# 生成随机数 +random_demand = random.randint(0, len(result["data"]["list"]) - 1) +# 获取需求单信息 +version = result["data"]["list"][random_demand]["version"] +# print(version) +# 第三步获取草稿订单详情 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url38") +request_body = commonFuc().get_business_data(module, "payload38", version) +# print(request_body) +""" + 场景: 获取草稿订单详情 + 用例名称:获取草稿订单详情 + 输出:{"id":"%s"} +""" + +# 发送请求 +result = requests.get(url, params=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取草稿订单详情中id +result = {"id": result["data"]["id"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict38", version) +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + + diff --git a/data/cmdc_demand_mall/data b/data/cmdc_demand_mall/data index b08d7f7e..fa1262de 100644 --- a/data/cmdc_demand_mall/data +++ b/data/cmdc_demand_mall/data @@ -280,3 +280,31 @@ checkDict36: {"success":true,"code":"200","message":"OK","data":0} #预期结果 checkDict37: {"success":true,"code":"200","message":"OK","data":0} +#测试场景三十八:获取草稿订单详情 +"url38": "/product/public/draft/detail" +"payload38": {"id":"%s"} +#预期结果 +checkDict38: {"id":"%s"} +# 获取草稿订单报文 +"payload38_1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":8,"shipmentType":null,"pageStart":1,"pageSize":10} + +#测试场景三十九:商品下架拦截验证_订单修改 +"url39": "/order/public/orderModify" +"payload39": {"datas":[{"demandId":40218,"demandParentId":38201,"demandParentCode":"s2312120700029","demandCode":"17023358707481373","customerId":69,"customerName":"国药集团云南医疗器械有限公司","customerCode":1127254,"loginName":"BJ0621","realName":"郭红声","addressNumber":93465,"mobile":"15887223281","productName":null,"productCode":null,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","paymentType":0,"receiveBankName":"国药集团北京医疗器械有限公司","receiveBankAccount":"110927396010401","paymentAmount":"230.00","productAmount":230,"payableAmount":"230.00","refundAmount":0,"cancelAmount":0,"discountAmount":0,"orderStatus":102,"refundStatus":null,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":0,"pushJdeStatus":null,"createTime":"2023-12-12 07:04:30","updateTime":"2023-12-12 07:04:30","submitTime":"2023-12-12 07:04:31","pushJdeTime":null,"successTime":null,"auditStatus":0,"deleteSign":0,"firstOrderFlag":0,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":201126,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":"17023358707481373","demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":"国药集团北京医疗器械有限公司","sellerCompanyCode":"00103","customerCode":1127254,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"230.00","measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":230,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":1,"sdOutStorage":0,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"12043728","activityCarDataVoList":null,"productReplaceLogs":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"replaceSgin":0,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":"1","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":1,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":null,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":0,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":null,"payableAmountWholeLine":null,"discountRate":100,"singleRebateAmount":null,"isRebateEdit":0,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":0,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":1,"orderSource":1,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":1,"pageSize":5,"changeSgin":0,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":0,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":[],"imageUrls":null,"total":null,"submitTimeStr":"2023-12-12 07:04:31","updateTimeStr":"2023-12-12 07:04:30","auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":0,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":0,"groupChangeSign":0,"custModify":0,"demandSubCode":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":0,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":"郭红声","receiverPhoneNote":"15887223281","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","flag":null,"sourceStr":null,"addressNoNote":93465,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":0,"snSgin":0,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":"ac17023358705126089","forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":8,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":1,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":"0","confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":0,"spitOrderSign":1,"productAmountWholeLine":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"totalPriceNum":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"selecteAddresId":3278}]} +#预期结果 +checkDict39: {"errMessage": "红外测温仪商品已被下架,请返回重新提交。"} + + + + + + + + + + + + + + + -- GitLab From d42ad6656f3a790be1281585738c78df293fba39 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 13 Dec 2023 09:40:13 +0800 Subject: [PATCH 67/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=9A=E5=95=86=E5=93=81=E4=B8=8B=E6=9E=B6=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=5F=E8=AE=A2=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...42\345\215\225\344\277\256\346\224\271.py" | 58 +++++++++++++++++++ log/runtime.txt | 2 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 "air_case/cmdc_demand_mall/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" diff --git "a/air_case/cmdc_demand_mall/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" "b/air_case/cmdc_demand_mall/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" new file mode 100644 index 00000000..4fe79592 --- /dev/null +++ "b/air_case/cmdc_demand_mall/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.air/\345\225\206\345\223\201\344\270\213\346\236\266\346\213\246\346\210\252\351\252\214\350\257\201_\350\256\242\345\215\225\344\277\256\346\224\271.py" @@ -0,0 +1,58 @@ +# -*- encoding=utf8 -*- +__author__ = "liguangyu" + +""" +case_tag:cmdc_api,cmdc商品下架拦截验证_订单修改,2289,2289-37,sit,bs +涉及到接口:多采商城需求单修改接口 +""" + +from common.common_func import commonFuc +from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin +from common.db.db import mySql +import requests +import json + +module = "cmdc_demand_mall" + +# 第一步登录多采商城获取token +# 获取登录所需账号密码 +username = commonFuc().get_business_data(module, "username") +password = commonFuc().get_business_data(module, "password") +# 获取登录后Cmdc_access_token +cmdc_access_token = CmdcMaiiLogin(username, password).get_token() +headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 数据库操作 +mysql_handle = mySql() +# 获取conf.ini文件中配置的数据库信息 +host, port, user, pwd = mysql_handle.getConf(db="cmdc_db") + +# 进行商品下架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.status = 102 WHERE t.productId = 314" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) + +# 第二步需求单编辑修改操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url39") +request_body = commonFuc().get_business_data(module, "payload39") + +""" + 场景: 验证需求单编辑提交时,所含商品下架,是否被拦截成功 + 用例名称:商品下架拦截验证_订单修改 + 输出:{"errMessage": "红外测温仪商品已被下架,请返回重新提交。"} +""" + +# 发送请求 +result = requests.post(url, json=request_body, headers=headers) +result = json.loads(result.content) +# print(result) +# 获取message +result = {"errMessage": result["data"][0]["errMessage"]} +# 获取预期结果 +check_dict = commonFuc().get_business_data(module, "checkDict39") +# print(check_dict) +# 断言实际结果中是否包含预期结果的内容 +commonFuc().check_result(check_dict, result) + +# 进行商品上架架操作 +sql = "UPDATE `cmdc-product`.ic_product t SET t.status = 101 WHERE t.productId = 314" +mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-product", sql) \ No newline at end of file diff --git a/log/runtime.txt b/log/runtime.txt index b1ecff37..9c69c7e5 100644 --- a/log/runtime.txt +++ b/log/runtime.txt @@ -1 +1 @@ -控销商品拦截验证_再来一单_d 1701847135259 1701847140102 liguangyu +商品下架拦截验证_订单修改 1702431554548 1702431564240 liguangyu -- GitLab From 76bd608237b0296230bd5a2ce1f910fa4138b8d4 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 13 Dec 2023 09:48:50 +0800 Subject: [PATCH 68/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...13\345\215\225\351\252\214\350\257\201.py" | 19 +++++++++++++------ data/cmdc_buyercart_handle/data | 1 + 2 files changed, 14 insertions(+), 6 deletions(-) diff --git "a/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.py" "b/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.py" index a231aa44..9d6a68f6 100644 --- "a/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.py" @@ -73,10 +73,17 @@ request_body = commonFuc().get_business_data(module, "payload30", buyercart_id_1 # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) -if result["data"]: - # # 获取预期结果 - check_dict = commonFuc().get_business_data(module, "checkDict2") - # # 断言实际结果中是否包含预期结果的内容 - commonFuc().check_result(check_dict, result) +# print(result) +if result["success"]: + if result["data"]: + # # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict2") + # # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) + else: + print("下单失败") else: - print("下单失败") + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict2_1") + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_buyercart_handle/data b/data/cmdc_buyercart_handle/data index 6fcbaddd..0f21294f 100644 --- a/data/cmdc_buyercart_handle/data +++ b/data/cmdc_buyercart_handle/data @@ -32,6 +32,7 @@ checkDict1: {"success":true,"code":"200","message":"OK"} "payload30": {"国药集团联合医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"15000.0000","productAmount":15000,"payableAmount":15000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9036,"productName":"脉搏血氧测量仪","productCode":"10357517","productNature":"01","brandName":null,"optionStr":"Rad-5v","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/0a2741f8-6870-483e-ba10-07b7d21ca05c.png","lineNumber":null,"price":15000,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":15000,"measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9197","manufacturer":"迈心诺公司/Masimo Corporation","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":1695697442000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":15000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-5v","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.17,"rebateType":0,"paymentAmountWholeLine":15000,"discountAmountWholeLine":0,"payableAmountWholeLine":15000,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-5v","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":2,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":15000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":1,"openPreTaxAmount":1,"notice":"888品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服","promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":15000,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9036,"productName":"脉搏血氧测量仪","productCode":"10357517","productNature":"01","brandName":null,"optionStr":"Rad-5v","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/0a2741f8-6870-483e-ba10-07b7d21ca05c.png","lineNumber":null,"price":15000,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":15000,"measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9197","manufacturer":"迈心诺公司/Masimo Corporation","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":1695697442000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":15000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-5v","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"15000.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":16309,"addressNo":19199,"addressName":"武汉市洪山区高新大道777号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"萧峰","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"13878900987","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":32,"companyId":2,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市顺义区金航中路3号院社科中心1号楼3单元2层301","bank":"中国工商银行北京支行","accountName":"国药集团联合医疗器械有限公司","accountNumber":"108902839271937437","disableSign":0,"deleteSign":0,"createTime":"2021-01-12 16:12:03","updateTime":"2021-01-12 16:12:33","createBy":2,"updateBy":2,"realName":"子公司1admin"},"addressList":[{"addressId":16309,"addressNo":19199,"addressName":null,"provinceCode":null,"userId":null,"companyId":2,"receiverName":"萧峰","address":"武汉市洪山区高新大道777号","isDefault":0,"type":3,"postcode":null,"mobile":"13878900987","updateDate":123258,"updateTime":174051,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":16309,"receiverNote":"萧峰","receiverPhoneNote":"13878900987","receiverAddressNote":"武汉市洪山区高新大道777号","addressNoNote":19199,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"15000.0000","taxRate":0.17,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"15000.0000","productAmount":15000,"payableAmount":15000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9036,"productName":"脉搏血氧测量仪","productCode":"10357517","productNature":"01","brandName":null,"optionStr":"Rad-5v","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/0a2741f8-6870-483e-ba10-07b7d21ca05c.png","lineNumber":null,"price":15000,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":15000,"measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9197","manufacturer":"迈心诺公司/Masimo Corporation","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":1695697442000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":15000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-5v","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.17,"rebateType":0,"paymentAmountWholeLine":15000,"discountAmountWholeLine":0,"payableAmountWholeLine":15000,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-5v","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":2,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":15000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":15000,"paymentType":0,"accountId":32,"receiveBankName":"国药集团联合医疗器械有限公司","receiveBankAccount":"108902839271937437","addressNumber":19199,"receiverName":"萧峰","receiverContact":"13878900987","receiverAddress":"武汉市洪山区高新大道777号","buyerCartIds":["%s","%s"],"sellerCompanyCode":"00102","companyId":2},"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"30.0000","productAmount":30,"payableAmount":30,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":1190,"productName":"百能速干手消毒凝胶","productCode":"13768100","productNature":"03","brandName":null,"optionStr":"500ml/瓶","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/29/72e7cb48-580b-455d-b56d-bddb14b8fc6c.JPG","lineNumber":null,"price":30,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":30,"measuringUnit":"瓶","auxiliaryMeasuringUnit":"BT","procurementMeasuringUnit":"BT","pricingMeasuringUnit":"BT","materialCode":"","manufacturer":"杭州朗索医用消毒剂有限公司","produceRegisterNum":null,"riskRank":"","productClassify":"9998","createTime":null,"updateTime":1695697596000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":30,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"500ml/瓶","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":30,"discountAmountWholeLine":0,"payableAmountWholeLine":30,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"500ml/瓶","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":30,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"_rebateType":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":30,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":1190,"productName":"百能速干手消毒凝胶","productCode":"13768100","productNature":"03","brandName":null,"optionStr":"500ml/瓶","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/29/72e7cb48-580b-455d-b56d-bddb14b8fc6c.JPG","lineNumber":null,"price":30,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":30,"measuringUnit":"瓶","auxiliaryMeasuringUnit":"BT","procurementMeasuringUnit":"BT","pricingMeasuringUnit":"BT","materialCode":"","manufacturer":"杭州朗索医用消毒剂有限公司","produceRegisterNum":null,"riskRank":"","productClassify":"9998","createTime":null,"updateTime":1695697596000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":30,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"500ml/瓶","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"30.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[],"defaultBankInfo":{"accountId":52,"companyId":3,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市东城区","bank":"建设银行19","accountName":"建设银行北京支行19","accountNumber":"62231478523685414","disableSign":0,"deleteSign":0,"createTime":"2021-01-25 11:17:26","updateTime":"2021-01-25 11:17:26","createBy":2,"realName":"子公司1admin"},"addressList":[{"addressId":5243,"addressNo":0,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"叶二娘","address":"嵩山少林室","isDefault":1,"type":5,"postcode":null,"mobile":"13223233434","updateDate":null,"updateTime":0,"flag":null,"deleteSign":null,"province":1681,"city":1797,"area":null,"dateTime":null,"provinceStr":"湖北省","cityStr":"仙桃市","areaStr":null,"isJde":0,"cityList":[{"areaId":1682,"areaCode":"420100","areaName":"武汉市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1696,"areaCode":"420200","areaName":"黄石市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1703,"areaCode":"420300","areaName":"十堰市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1712,"areaCode":"420500","areaName":"宜昌市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1726,"areaCode":"420600","areaName":"襄阳市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1736,"areaCode":"420700","areaName":"鄂州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1740,"areaCode":"420800","areaName":"荆门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1746,"areaCode":"420900","areaName":"孝感市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1754,"areaCode":"421000","areaName":"荆州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1763,"areaCode":"421100","areaName":"黄冈市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1774,"areaCode":"421200","areaName":"咸宁市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1781,"areaCode":"421300","areaName":"随州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1785,"areaCode":"422800","areaName":"恩施土家族苗族自治州","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1794,"areaCode":"429005","areaName":"潜江市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1795,"areaCode":"429021","areaName":"神农架林区","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1796,"areaCode":"429006","areaName":"天门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1797,"areaCode":"429004","areaName":"仙桃市","level":null,"cityCode":null,"center":null,"parentId":null}],"areaList":[]}],"selecteAddresId":5243,"receiverNote":"叶二娘","receiverPhoneNote":"13223233434","receiverAddressNote":"湖北省仙桃市嵩山少林室","addressNoNote":0,"province":1681,"city":1797,"cityList":[{"areaId":1682,"areaCode":"420100","areaName":"武汉市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1696,"areaCode":"420200","areaName":"黄石市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1703,"areaCode":"420300","areaName":"十堰市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1712,"areaCode":"420500","areaName":"宜昌市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1726,"areaCode":"420600","areaName":"襄阳市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1736,"areaCode":"420700","areaName":"鄂州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1740,"areaCode":"420800","areaName":"荆门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1746,"areaCode":"420900","areaName":"孝感市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1754,"areaCode":"421000","areaName":"荆州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1763,"areaCode":"421100","areaName":"黄冈市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1774,"areaCode":"421200","areaName":"咸宁市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1781,"areaCode":"421300","areaName":"随州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1785,"areaCode":"422800","areaName":"恩施土家族苗族自治州","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1794,"areaCode":"429005","areaName":"潜江市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1795,"areaCode":"429021","areaName":"神农架林区","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1796,"areaCode":"429006","areaName":"天门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1797,"areaCode":"429004","areaName":"仙桃市","level":null,"cityCode":null,"center":null,"parentId":null}],"area":null,"areaList":[],"paymentAmount":"30.0000","taxRate":0.17,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"30.0000","productAmount":30,"payableAmount":30,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":1190,"productName":"百能速干手消毒凝胶","productCode":"13768100","productNature":"03","brandName":null,"optionStr":"500ml/瓶","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/29/72e7cb48-580b-455d-b56d-bddb14b8fc6c.JPG","lineNumber":null,"price":30,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":30,"measuringUnit":"瓶","auxiliaryMeasuringUnit":"BT","procurementMeasuringUnit":"BT","pricingMeasuringUnit":"BT","materialCode":"","manufacturer":"杭州朗索医用消毒剂有限公司","produceRegisterNum":null,"riskRank":"","productClassify":"9998","createTime":null,"updateTime":1695697596000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":30,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"500ml/瓶","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":30,"discountAmountWholeLine":0,"payableAmountWholeLine":30,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"500ml/瓶","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":30,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"_rebateType":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":30,"paymentType":0,"accountId":52,"receiveBankName":"建设银行北京支行19","receiveBankAccount":"62231478523685414","buyerCartIds":["%s","%s"],"sellerCompanyCode":"00103","companyId":3}} #预期结果 checkDict2: {"success":true,"code":"200","message":null} +checkDict2_1: {"success":False,"code":"30452","message":"用户证照校验错误"} #查询已添加至购物车商品对应的id #商品-国联公司-脉搏血氧测量仪 -- GitLab From 6f8db1ec191750bb1cb7a947e9ed15afd6ff9b1a Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 13 Dec 2023 10:13:37 +0800 Subject: [PATCH 69/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...02\345\215\225\345\210\233\345\273\272.py" | 21 +++++++++++++------ ...37\350\203\275\351\252\214\350\257\201.py" | 6 ++++-- data/cmdc_demand_create_pc/data | 1 + 3 files changed, 20 insertions(+), 8 deletions(-) diff --git "a/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py" "b/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py" index 3686a137..29add6ba 100644 --- "a/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py" +++ "b/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py" @@ -13,7 +13,6 @@ import json module = "cmdc_demand_create_pc" -url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url") # print(url) # 获取登录所需账号密码 username = commonFuc().get_business_data(module, "username") @@ -21,6 +20,9 @@ password = commonFuc().get_business_data(module, "password") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcMaiiLogin(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, "url") request_body = commonFuc().get_business_data(module, "payload") """ 场景:通过快速下单入口提交创建需求单 @@ -31,8 +33,15 @@ request_body = commonFuc().get_business_data(module, "payload") result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) # print(result) -# 获取预期结果 -check_dict = commonFuc().get_business_data(module, "checkDict") -print(check_dict) -# 断言实际结果中是否包含预期结果的内容 -commonFuc().check_result(check_dict, result) +if result["success"]: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict") + print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict_1") + print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) \ No newline at end of file diff --git "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" index 029fba1c..88812b77 100644 --- "a/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.air/\351\234\200\346\261\202\345\215\225\351\224\200\345\224\256\345\220\210\345\220\214\344\270\213\350\275\275\345\212\237\350\203\275\351\252\214\350\257\201.py" @@ -65,10 +65,12 @@ with open(file_path, 'wb') as f: # 获取销售合同文件中合同编号 excel = HandleExcel(file_path, "Sheet1") -result = {"demandCode": excel.read_data()[0].get("医疗器械产品销售合同 ")[5:]} +result = {"demandCode": excel.read_data()[0].get("医疗器械产品销售合同 ")[-17:]} +print(excel.read_data()[0].get("医疗器械产品销售合同 ")) +print(result) # 获取预期结果 check_dict = commonFuc().get_business_data(module, "checkDict22", demand_code) -# print(check_dict) +print(check_dict) # 断言实际结果中是否包含预期结果的内容 commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_demand_create_pc/data b/data/cmdc_demand_create_pc/data index 78f088eb..8892c4fb 100644 --- a/data/cmdc_demand_create_pc/data +++ b/data/cmdc_demand_create_pc/data @@ -15,6 +15,7 @@ json_headers: { "payload": {"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":230,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"230.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"defaultBankInfo":{"accountId":1,"companyId":3,"companyName":"国药集团北京医疗器械有限公司","registeredAddress":"北京市朝阳区安定路39号长新大厦16层","bank":"招商银行股份有限公司北京东直门支行 ","accountName":"国药集团北京医疗器械有限公司","accountNumber":"110927396010401 ","disableSign":0,"deleteSign":0,"createTime":"2020-12-30 17:18:49","updateTime":"2021-05-28 09:54:12","createBy":2,"updateBy":2,"realName":"北京医疗器械公司1admin"},"addressList":[{"addressId":3278,"addressNo":93465,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"郭红声","address":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","isDefault":0,"type":3,"postcode":null,"mobile":"15887223281","updateDate":120211,"updateTime":100440,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":3278,"receiverNote":"郭红声","receiverPhoneNote":"15887223281","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","addressNoNote":93465,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"receiveInfo":[{"addressId":3278,"addressNo":93465,"addressName":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"郭红声","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"15887223281","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"paymentAmount":"230.0000","taxRate":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":230,"paymentType":0,"accountId":1,"receiveBankName":"国药集团北京医疗器械有限公司","receiveBankAccount":"110927396010401 ","addressNumber":93465,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","buyerCartIds":[null],"sellerCompanyCode":"00103","companyId":3}} #预期结果 checkDict: {"success":true,"code":"200","message":null} +checkDict_1: {"success":false,"code":"30461","message":"商品证照校验错误"} #需求单草稿订单创建接口地址 "url2": "/product/public/draft/add" -- GitLab From 619ba53f8c83da54968ae0a7be10ef7a28f9567b Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 13 Dec 2023 10:19:08 +0800 Subject: [PATCH 70/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...00\344\272\247\345\223\201\347\272\277.py" | 19 +++++++++++++------ data/cmdc_fresenius_group/data | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" index 1ba2b612..67f076ab 100644 --- "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" +++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" @@ -51,9 +51,16 @@ request_body = group_json # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) -print(result) -# 获取预期结果 -check_dict = commonFuc().get_business_data(module, "checkDict16") -# print(check_dict) -# 断言实际结果中是否包含预期结果的内容 -commonFuc().check_result(check_dict, result) +# print(result) +if result["success"]: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict16_1") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict16") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) diff --git a/data/cmdc_fresenius_group/data b/data/cmdc_fresenius_group/data index 9fb9d292..9209df9b 100644 --- a/data/cmdc_fresenius_group/data +++ b/data/cmdc_fresenius_group/data @@ -130,7 +130,7 @@ checkDict15: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成 #预期结果 checkDict16: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成一个套包内商品需满足套包在同一产品线下","data":null,"freshToken":null} "other_product": {"productCode":"10057881","productName":"造口护理用品附件","manufacturer":"Coloplast A/S","manufacturerCode":"7000118","optionStr":"12070","storageCondition":"999","activityUnitAmount":null,"price":15.2,"measuringUnit":"个","materialCode":"","description":"","quantity":"1","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械注进20152664141","productLineName":"康乐保","productLineCode":"3111"} - +checkDict16_1: {"success":true,"code":"200","message":"OK","data":true} #测试场景十七:套包更新验证 -- GitLab From 407d002763252ed425b7ac86e5f4610e2d836b95 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Wed, 13 Dec 2023 10:23:29 +0800 Subject: [PATCH 71/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\260\345\235\200\344\277\241\346\201\257.py" | 17 ++++++++++++----- data/cmdc_order_handle/data | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git "a/air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" index 6a788902..e18cb586 100644 --- "a/air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" +++ "b/air_case/cmdc_order_handle/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.air/\351\252\214\350\257\201\344\270\213\345\215\225\346\227\266\344\270\215\344\274\240\345\234\260\345\235\200\344\277\241\346\201\257.py" @@ -36,8 +36,15 @@ request_body = commonFuc().get_business_data(module, "payload5") result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) # print(result) -# 获取预期结果 -check_dict = commonFuc().get_business_data(module, "checkDict5") -# print(check_dict) -# 断言实际结果中是否包含预期结果的内容 -commonFuc().check_result(check_dict, result) +if result["code"] == "3021": + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict5") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) +else: + # 获取预期结果 + check_dict = commonFuc().get_business_data(module, "checkDict5_1") + # print(check_dict) + # 断言实际结果中是否包含预期结果的内容 + commonFuc().check_result(check_dict, result) \ No newline at end of file diff --git a/data/cmdc_order_handle/data b/data/cmdc_order_handle/data index f186323a..61baeef9 100644 --- a/data/cmdc_order_handle/data +++ b/data/cmdc_order_handle/data @@ -66,6 +66,7 @@ checkDict1: {"productId":"%s"} "payload5": {"国药集团联合医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1068927,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"40000.00","productAmount":40000,"payableAmount":20000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9038,"productName":"脉搏碳氧血氧测量仪","productCode":"10416500","productNature":"01","brandName":null,"optionStr":"Rad-57","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/8453e463-ac86-4e1d-bbe8-9dfd6b8e020f.png","lineNumber":null,"price":20000,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":"2","sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"40000.00","measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9216","manufacturer":"迈心诺公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":40000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-57","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":7,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"fresenuis":false,"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]}}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":20000,"discountAmountWholeLine":0,"payableAmountWholeLine":20000,"discountRate":100,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-57","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":7,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":20000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"lastSaveDemanadItems":null,"totalPriceNum":0}],"addressConfig":2,"openPreTaxAmount":1,"notice":"站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示站点级提示","remark":null,"receiverPhoneNote":"13888715120","promotionOrRebate":1,"promotionType":1,"productLineCodes":[""],"addressIsCommon":true,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":2,"totalPrice":40000,"discountAmount":0,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9038,"productName":"脉搏碳氧血氧测量仪","productCode":"10416500","productNature":"01","brandName":null,"optionStr":"Rad-57","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/8453e463-ac86-4e1d-bbe8-9dfd6b8e020f.png","lineNumber":null,"price":20000,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":"2","sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"40000.00","measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9216","manufacturer":"迈心诺公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":40000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-57","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":7,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"fresenuis":false,"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]}}],"productPrice":40000,"fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[],"defaultBankInfo":{"accountId":5,"companyId":7,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市顺义区金航中路3号院天竺万科中心1号楼3单元2层201(北京天竺综合保税区)","bank":"中国工商银行股份有限公司北京新街口支行","accountName":"国药集团联合医疗器械有限公司","accountNumber":"0200002919200155850","disableSign":0,"deleteSign":0,"createTime":"2021-06-03 09:46:49","updateTime":"2021-06-03 09:46:49","createBy":114378,"realName":"国药集团联合医疗器械有限公司admin"},"addressList":[],"selecteAddresId":16464,"receiverNote":null,"receiverAddressNote":null,"addressNoNote":105378,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"40000.0000","taxRate":null,"draftDemandId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1068927,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"40000.00","productAmount":40000,"payableAmount":20000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9038,"productName":"脉搏碳氧血氧测量仪","productCode":"10416500","productNature":"01","brandName":null,"optionStr":"Rad-57","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/8453e463-ac86-4e1d-bbe8-9dfd6b8e020f.png","lineNumber":null,"price":20000,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":"2","sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":"40000.00","measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9216","manufacturer":"迈心诺公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":40000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-57","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":7,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":1,"userBalance":0,"fresenuis":false,"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":20000,"discountAmountWholeLine":0,"payableAmountWholeLine":20000,"discountRate":100,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-57","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":7,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":20000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"lastSaveDemanadItems":null,"totalPriceNum":0,"pSign":0}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":40000,"paymentType":0,"accountId":5,"version":null,"receiveBankName":"国药集团联合医疗器械有限公司","receiveBankAccount":"0200002919200155850","addressNumber":105378,"receiverName":"","receiverContact":"","receiverAddress":"","buyerCartIds":[""],"sellerCompanyCode":"00102","companyId":7}} #预期结果 checkDict5: {"success":false,"code":"3021","message":"国药集团联合医疗器械有限公司收件人不能为空","data":null,"freshToken":null} +checkDict5_1: {"success":false,"code":"30452","message":"用户证照校验错误"} #测试场景六:附件上传接口验证_结算页面 #接口信息 -- GitLab From 92897d84c79c1c6613d1fba265f12c79e7cd559d Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Thu, 14 Dec 2023 16:12:21 +0800 Subject: [PATCH 72/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...207\350\264\255\345\215\225\346\237\245\350\257\242.py" | 4 +++- data/cmdc_purchase_list/data | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git "a/air_case/cmdc_purchase_list/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.air/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.py" "b/air_case/cmdc_purchase_list/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.air/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.py" index b6ab6389..4ba8613d 100644 --- "a/air_case/cmdc_purchase_list/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.air/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.py" +++ "b/air_case/cmdc_purchase_list/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.air/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.py" @@ -14,7 +14,6 @@ import json module = "cmdc_purchase_list" -url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url") # print(url) # 获取登录所需账号密码 username = commonFuc().get_business_data(module, "username") @@ -22,6 +21,9 @@ password = commonFuc().get_business_data(module, "password") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcDoLogin(username, password).get_token() headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 获取采购单列表 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url") request_body = commonFuc().get_business_data(module, "payload1") """ diff --git a/data/cmdc_purchase_list/data b/data/cmdc_purchase_list/data index 2ed571ff..eff26c1d 100644 --- a/data/cmdc_purchase_list/data +++ b/data/cmdc_purchase_list/data @@ -1,7 +1,3 @@ -#采购单查询接口 -"url": "/order/purchase/list" - - # 后台运营管理系统登录信息 "username": "Admin00111" "password": "Aa123456" @@ -10,6 +6,9 @@ json_headers1: { "Content-Type": "application/json", "Cmdc_access_token": "%s" } + +#采购单查询接口 +"url": "/order/purchase/list" "payload1": {"billNo":"","billStatusList":[],"creator":"","demandNo":"","startTime":"","endTime":"","times":null,"status":null,"pageNumber":1,"pageSize":8} #预期结果 checkDict2: {"success":true,"code":"200","message":null} -- GitLab From bd40d9ea100b0482effee952ff835797583fdb9a Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Thu, 14 Dec 2023 19:09:04 +0800 Subject: [PATCH 73/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\215\225\346\235\203\351\231\220_\345\220\246.py" | 11 ++++------- ...45\256\242\346\210\267\346\237\245\350\257\242.py" | 6 ++++-- ...44\277\241\346\201\257\346\237\245\350\257\242.py" | 5 +++-- ...47\253\231\347\202\271\345\210\207\346\215\242.py" | 4 +++- ...47\253\231\347\202\271\344\277\241\346\201\257.py" | 4 +++- ...47\253\231\347\202\271\345\225\206\345\223\201.py" | 1 + 6 files changed, 18 insertions(+), 13 deletions(-) diff --git "a/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.py" "b/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.py" index a4856eb5..788ac826 100644 --- "a/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.py" +++ "b/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.py" @@ -19,25 +19,22 @@ username = commonFuc().get_business_data(module, "username") password = commonFuc().get_business_data(module, "password") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcMaiiLogin(username, password).get_token() - headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token) - # 第二步查询站点对应的companyId url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") - request_body1 = commonFuc().get_business_data(module, "payload1") -result1 = requests.post(url1, json=request_body1, headers=headers) -result1 = json.loads(result1.text) - """ + 场景:站点不拥有快速下单权限入口 用例名称:快速下单权限判定接口-站点满足条件显示快速下单入口 输入:companyId 输出:"quickOrderSign": 0 """ - +# 发送请求 +result1 = requests.post(url1, json=request_body1, headers=headers) +result1 = json.loads(result1.text) # 获取站点对应的快速下单标识字段quickOrderSign result1 = result1["data"] diff --git "a/air_case/cmdc_query_customer/\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\256\242\346\210\267\346\237\245\350\257\242.py" "b/air_case/cmdc_query_customer/\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\256\242\346\210\267\346\237\245\350\257\242.py" index 9a45831f..c3a99750 100644 --- "a/air_case/cmdc_query_customer/\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\256\242\346\210\267\346\237\245\350\257\242.py" +++ "b/air_case/cmdc_query_customer/\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\256\242\346\210\267\346\237\245\350\257\242.py" @@ -14,14 +14,16 @@ import json module = "cmdc_query_customer" -url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url") -# print(url) + # 获取登录所需账号密码 username = commonFuc().get_business_data(module, "username") password = commonFuc().get_business_data(module, "password") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcDoLogin(username, password).get_token() headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token) + +# 进行客户查询操作 +url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url") request_body = commonFuc().get_business_data(module, "payload1") """ diff --git "a/air_case/cmdc_userinfo_query/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.air/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.py" "b/air_case/cmdc_userinfo_query/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.air/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.py" index 6e1de437..568b4f51 100644 --- "a/air_case/cmdc_userinfo_query/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.air/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.py" +++ "b/air_case/cmdc_userinfo_query/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.air/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.py" @@ -15,14 +15,15 @@ import json module = "cmdc_userinfo_query" -url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") -print(url) # 获取登录所需账号密码 username = commonFuc().get_business_data(module, "username") password = commonFuc().get_business_data(module, "password") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcMaiiLogin(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, "url1") request_body = commonFuc().get_business_data(module, "payload1") """ diff --git "a/air_case/cmdc_website/\347\253\231\347\202\271\345\210\207\346\215\242.air/\347\253\231\347\202\271\345\210\207\346\215\242.py" "b/air_case/cmdc_website/\347\253\231\347\202\271\345\210\207\346\215\242.air/\347\253\231\347\202\271\345\210\207\346\215\242.py" index e40496a0..00024e11 100644 --- "a/air_case/cmdc_website/\347\253\231\347\202\271\345\210\207\346\215\242.air/\347\253\231\347\202\271\345\210\207\346\215\242.py" +++ "b/air_case/cmdc_website/\347\253\231\347\202\271\345\210\207\346\215\242.air/\347\253\231\347\202\271\345\210\207\346\215\242.py" @@ -15,7 +15,6 @@ import json module = "cmdc_website" -url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2") # print(url) # 获取登录所需账号密码 username = commonFuc().get_business_data(module, "username1") @@ -23,6 +22,9 @@ password = commonFuc().get_business_data(module, "password1") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcMaiiLogin(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, "url2") request_body = commonFuc().get_business_data(module, "payload2") """ diff --git "a/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.py" "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.py" index ec624dc5..7394909f 100644 --- "a/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.py" +++ "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.py" @@ -15,7 +15,6 @@ import json module = "cmdc_website" -url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1") # print(url) # 获取登录所需账号密码 username = commonFuc().get_business_data(module, "username") @@ -23,6 +22,9 @@ password = commonFuc().get_business_data(module, "password") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcMaiiLogin(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, "url1") request_body = commonFuc().get_business_data(module, "payload1") """ diff --git "a/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.air/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.py" "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.air/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.py" index c9700493..40b6ccd3 100644 --- "a/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.air/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.py" +++ "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.air/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.py" @@ -21,6 +21,7 @@ password = commonFuc().get_business_data(module, "password1") # 获取登录后Cmdc_access_token cmdc_access_token = CmdcMaiiLogin(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, "url2") request_body = commonFuc().get_business_data(module, "payload2") -- GitLab From d067bf09fa461b0dad2708f79e853fd7e770d945 Mon Sep 17 00:00:00 2001 From: liguangyu06 <1666071293@qq.com> Date: Fri, 15 Dec 2023 08:44:56 +0800 Subject: [PATCH 74/74] =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" "b/air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" index c5b18cc0..a090860e 100644 --- "a/air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" +++ "b/air_case/cmdc_demand_mall/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.air/\346\250\241\347\263\212\346\237\245\350\257\242\347\224\237\344\272\247\345\216\202\345\256\266\345\210\227\350\241\250\346\216\245\345\217\243\351\252\214\350\257\201.py" @@ -36,7 +36,7 @@ request_body = commonFuc().get_business_data(module, "payload7", manufacturer) # 发送请求 result = requests.post(url, json=request_body, headers=headers) result = json.loads(result.content) -# print(result) +print(result) # 获取查询结果中厂家信息 result = {"data": result["data"][0][0]} # 获取预期结果 -- GitLab