1. 新增模块测试用例: - News分类接口测试 (Joyhub_NewsCate.py) - News内容接口测试 (Joyhub_News.py) - 产品分类接口测试 (Joyhub_ProductCate.py) - 产品属性接口测试 (Joyhub_ProductAttr.py) - 产品管理接口测试 (Joyhub_Product.py) - FAQ分类接口测试 (Joyhub_FaqCate.py) - FAQ内容接口测试 (Joyhub_Faq.py) - 博客分类接口测试 (Joyhub_BlogCate.py) - 地址国家接口测试 (Joyhub_AddressCountry.py) - 下载二维码接口测试 (Joyhub_DownloadQrcode.py) - 支付页产品推荐接口测试 (Joyhub_ProductPaymentRecommend.py) 2. 新增业务关键字层: - NewsCateManage.py - NewsManage.py - ProductCateManage.py - ProductAttrManage.py - ProductManage.py - FaqCateManage.py - FaqManage.py - BlogCateManage.py - AddressCountryManage.py - DownloadQrcodeManage.py - ProductPaymentRecommendManage.py 3. 接口层增强: - Dlizhan_interface.py 添加JoyHub相关接口封装 4. 功能增强: - run_tests.py 添加自动清除旧测试结果和报告功能 - Joyhub_Product.py 添加数据库连接获取运费模板ID和品牌ID 5. 修复: - 修复产品创建测试用例缺少前置数据问题
270 lines
11 KiB
Python
270 lines
11 KiB
Python
# -*- coding:utf-8 -*-
|
||
"""
|
||
产品管理业务关键字层
|
||
"""
|
||
import allure
|
||
from dulizhan.library.Dlizhan_interface import DlzhanInterface
|
||
from base_framework.public_tools import log
|
||
|
||
obj_log = log.get_logger()
|
||
|
||
|
||
class ProductManage(DlzhanInterface):
|
||
"""产品管理业务关键字类"""
|
||
|
||
def __init__(self):
|
||
super().__init__()
|
||
|
||
@allure.step("创建产品")
|
||
def kw_joyhub_product_create_post(self, product_name, product_cate_id, shipping_template_id, route, intro,
|
||
brand_id, product_attrs, product_skus, id=0, product_type=1,
|
||
status=1, rank_num=None, seo_title=None, seo_keyword=None,
|
||
seo_description=None, single_user_exchange_limit=None,
|
||
single_product_exchange_limit=None, product_details=None):
|
||
"""
|
||
创建产品业务关键字
|
||
:param id: 主键,新增为0
|
||
:param product_type: 产品类型(普通产品=1,积分产品=2)
|
||
:param product_name: 产品名称
|
||
:param product_cate_id: 产品分类
|
||
:param shipping_template_id: 运费模板ID
|
||
:param route: 跳转路由
|
||
:param intro: 产品简介
|
||
:param brand_id: 品牌id
|
||
:param status: 状态(1上架,2下架)
|
||
:param rank_num: 序号(可选)
|
||
:param seo_title: SEO标题(可选)
|
||
:param seo_keyword: SEO关键词(可选)
|
||
:param seo_description: SEO描述(可选)
|
||
:param single_user_exchange_limit: 单用户兑换次数限制(可选)
|
||
:param single_product_exchange_limit: 单次兑换数量限制(可选)
|
||
:param product_attrs: 产品规格类型关联列表
|
||
:param product_skus: 产品规格列表
|
||
:param product_details: 产品详情列表(可选)
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"创建产品 - product_name: {product_name}, product_type: {product_type}")
|
||
|
||
params = {
|
||
"id": id,
|
||
"productType": product_type,
|
||
"productName": product_name,
|
||
"productCateId": product_cate_id,
|
||
"shippingTemplateId": shipping_template_id,
|
||
"route": route,
|
||
"intro": intro,
|
||
"brandId": brand_id,
|
||
"status": status,
|
||
"productAttrs": product_attrs,
|
||
"productSkus": product_skus
|
||
}
|
||
|
||
if rank_num is not None:
|
||
params["rankNum"] = rank_num
|
||
if seo_title is not None:
|
||
params["seoTitle"] = seo_title
|
||
if seo_keyword is not None:
|
||
params["seoKeyword"] = seo_keyword
|
||
if seo_description is not None:
|
||
params["seoDescription"] = seo_description
|
||
if single_user_exchange_limit is not None:
|
||
params["singleUserExchangeLimit"] = single_user_exchange_limit
|
||
if single_product_exchange_limit is not None:
|
||
params["singleProductExchangeLimit"] = single_product_exchange_limit
|
||
if product_details is not None:
|
||
params["productDetails"] = product_details
|
||
|
||
resp = self.kw_in_joyhub_product_create_post(**params)
|
||
obj_log.info(f"创建产品响应: {resp}")
|
||
|
||
return resp
|
||
|
||
@allure.step("删除产品")
|
||
def kw_joyhub_product_delete_delete(self, product_id):
|
||
"""
|
||
删除产品业务关键字
|
||
:param product_id: 产品ID
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"删除产品 - product_id: {product_id}")
|
||
resp = self.kw_in_joyhub_product_delete_delete(product_id)
|
||
obj_log.info(f"删除产品响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("批量删除产品")
|
||
def kw_joyhub_product_delete_list_delete(self, ids):
|
||
"""
|
||
批量删除产品业务关键字
|
||
:param ids: 产品ID列表
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"批量删除产品 - ids: {ids}")
|
||
resp = self.kw_in_joyhub_product_delete_list_delete(ids)
|
||
obj_log.info(f"批量删除产品响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得产品详情")
|
||
def kw_joyhub_product_get_get(self, product_id):
|
||
"""
|
||
获得产品详情业务关键字
|
||
:param product_id: 产品ID
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"获得产品详情 - product_id: {product_id}")
|
||
resp = self.kw_in_joyhub_product_get_get(product_id)
|
||
obj_log.info(f"获得产品详情响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得产品分页")
|
||
def kw_joyhub_product_page_get(self, page_no=1, page_size=10, **kwargs):
|
||
"""
|
||
获得产品分页业务关键字
|
||
:param page_no: 页码
|
||
:param page_size: 每页大小
|
||
:param kwargs: 其他查询条件
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"获得产品分页 - page_no: {page_no}, page_size: {page_size}")
|
||
|
||
params = {
|
||
"pageNo": page_no,
|
||
"pageSize": page_size
|
||
}
|
||
params.update(kwargs)
|
||
|
||
resp = self.kw_in_joyhub_product_page_get(**params)
|
||
obj_log.info(f"获得产品分页响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得产品规格类型关联列表")
|
||
def kw_joyhub_product_product_attr_list_by_product_id_get(self, product_id):
|
||
"""
|
||
获得产品规格类型关联列表业务关键字
|
||
:param product_id: 产品ID
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"获得产品规格类型关联列表 - product_id: {product_id}")
|
||
resp = self.kw_in_joyhub_product_product_attr_list_by_product_id_get(product_id)
|
||
obj_log.info(f"获得产品规格类型关联列表响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得产品详情列表")
|
||
def kw_joyhub_product_product_detail_list_by_product_id_get(self, product_id):
|
||
"""
|
||
获得产品详情列表业务关键字
|
||
:param product_id: 产品ID
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"获得产品详情列表 - product_id: {product_id}")
|
||
resp = self.kw_in_joyhub_product_product_detail_list_by_product_id_get(product_id)
|
||
obj_log.info(f"获得产品详情列表响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得产品规格列表")
|
||
def kw_joyhub_product_product_sku_list_by_product_id_get(self, product_id):
|
||
"""
|
||
获得产品规格列表业务关键字
|
||
:param product_id: 产品ID
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"获得产品规格列表 - product_id: {product_id}")
|
||
resp = self.kw_in_joyhub_product_product_sku_list_by_product_id_get(product_id)
|
||
obj_log.info(f"获得产品规格列表响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得产品及规格列表-优惠券中使用")
|
||
def kw_joyhub_product_product_sku_list_get(self, **kwargs):
|
||
"""
|
||
获得产品及规格列表-优惠券中使用业务关键字
|
||
:param kwargs: 查询条件
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"获得产品及规格列表 - params: {kwargs}")
|
||
resp = self.kw_in_joyhub_product_product_sku_list_get(**kwargs)
|
||
obj_log.info(f"获得产品及规格列表响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("更新产品")
|
||
def kw_joyhub_product_update_put(self, product_id, product_name, product_cate_id, shipping_template_id, route, intro,
|
||
brand_id, product_attrs, product_skus, product_type=1,
|
||
status=1, rank_num=None, seo_title=None, seo_keyword=None,
|
||
seo_description=None, single_user_exchange_limit=None,
|
||
single_product_exchange_limit=None, product_details=None):
|
||
"""
|
||
更新产品业务关键字
|
||
:param product_id: 产品ID
|
||
:param product_type: 产品类型(普通产品=1,积分产品=2)
|
||
:param product_name: 产品名称
|
||
:param product_cate_id: 产品分类
|
||
:param shipping_template_id: 运费模板ID
|
||
:param route: 跳转路由
|
||
:param intro: 产品简介
|
||
:param brand_id: 品牌id
|
||
:param status: 状态(1上架,2下架)
|
||
:param rank_num: 序号(可选)
|
||
:param seo_title: SEO标题(可选)
|
||
:param seo_keyword: SEO关键词(可选)
|
||
:param seo_description: SEO描述(可选)
|
||
:param single_user_exchange_limit: 单用户兑换次数限制(可选)
|
||
:param single_product_exchange_limit: 单次兑换数量限制(可选)
|
||
:param product_attrs: 产品规格类型关联列表
|
||
:param product_skus: 产品规格列表
|
||
:param product_details: 产品详情列表(可选)
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"更新产品 - product_id: {product_id}, product_name: {product_name}")
|
||
|
||
params = {
|
||
"id": product_id,
|
||
"productType": product_type,
|
||
"productName": product_name,
|
||
"productCateId": product_cate_id,
|
||
"shippingTemplateId": shipping_template_id,
|
||
"route": route,
|
||
"intro": intro,
|
||
"brandId": brand_id,
|
||
"status": status,
|
||
"productAttrs": product_attrs,
|
||
"productSkus": product_skus
|
||
}
|
||
|
||
if rank_num is not None:
|
||
params["rankNum"] = rank_num
|
||
if seo_title is not None:
|
||
params["seoTitle"] = seo_title
|
||
if seo_keyword is not None:
|
||
params["seoKeyword"] = seo_keyword
|
||
if seo_description is not None:
|
||
params["seoDescription"] = seo_description
|
||
if single_user_exchange_limit is not None:
|
||
params["singleUserExchangeLimit"] = single_user_exchange_limit
|
||
if single_product_exchange_limit is not None:
|
||
params["singleProductExchangeLimit"] = single_product_exchange_limit
|
||
if product_details is not None:
|
||
params["productDetails"] = product_details
|
||
|
||
resp = self.kw_in_joyhub_product_update_put(**params)
|
||
obj_log.info(f"更新产品响应: {resp}")
|
||
|
||
return resp
|
||
|
||
@allure.step("批量上下架产品")
|
||
def kw_joyhub_product_change_status_put(self, ids, status):
|
||
"""
|
||
批量上下架产品业务关键字
|
||
:param ids: 产品ID列表
|
||
:param status: 状态(1上架,2下架)
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"批量上下架产品 - ids: {ids}, status: {status}")
|
||
|
||
params = {
|
||
"ids": ids,
|
||
"status": status
|
||
}
|
||
|
||
resp = self.kw_in_joyhub_product_change_status_put(**params)
|
||
obj_log.info(f"批量上下架产品响应: {resp}")
|
||
|
||
return resp
|