Files
smart-management-auto-test/dulizhan/library/BusinessKw/JoyHub/ProductAttrManage.py
zhouqi 3191ec4f3c feat: 新增JoyHub模块测试用例和功能增强
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. 修复:
   - 修复产品创建测试用例缺少前置数据问题
2026-05-08 18:09:48 +08:00

269 lines
9.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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 ProductAttrManage(DlzhanInterface):
"""产品属性+产品属性值管理业务关键字类"""
def __init__(self):
super().__init__()
# ============ 产品属性管理方法 ============
@allure.step("创建产品属性")
def kw_joyhub_product_attr_type_create_post(self, name, type=2, id=0, status=1, remark=None, rank_num=None):
"""
创建产品属性业务关键字
:param id: 主键新增为0
:param type: 属性类型1-颜色属性有色卡2-普通属性
:param name: 属性名称
:param status: 状态 (1正常 2停用)
:param remark: 备注(可选)
:param rank_num: 排序号(可选)
:return: 响应结果
"""
obj_log.info(f"创建产品属性 - name: {name}, type: {type}")
params = {
"id": id,
"type": type,
"name": name,
"status": status
}
if remark is not None:
params["remark"] = remark
if rank_num is not None:
params["rankNum"] = rank_num
resp = self.kw_in_joyhub_product_attr_type_create_post(**params)
obj_log.info(f"创建产品属性响应: {resp}")
return resp
@allure.step("删除产品属性")
def kw_joyhub_product_attr_type_delete_delete(self, product_attr_type_id):
"""
删除产品属性业务关键字
:param product_attr_type_id: 产品属性ID
:return: 响应结果
"""
obj_log.info(f"删除产品属性 - product_attr_type_id: {product_attr_type_id}")
resp = self.kw_in_joyhub_product_attr_type_delete_delete(product_attr_type_id)
obj_log.info(f"删除产品属性响应: {resp}")
return resp
@allure.step("批量删除产品属性")
def kw_joyhub_product_attr_type_delete_list_delete(self, ids):
"""
批量删除产品属性业务关键字
:param ids: 产品属性ID列表
:return: 响应结果
"""
obj_log.info(f"批量删除产品属性 - ids: {ids}")
resp = self.kw_in_joyhub_product_attr_type_delete_list_delete(ids)
obj_log.info(f"批量删除产品属性响应: {resp}")
return resp
@allure.step("获得产品属性详情")
def kw_joyhub_product_attr_type_get_get(self, product_attr_type_id):
"""
获得产品属性详情业务关键字
:param product_attr_type_id: 产品属性ID
:return: 响应结果
"""
obj_log.info(f"获得产品属性详情 - product_attr_type_id: {product_attr_type_id}")
resp = self.kw_in_joyhub_product_attr_type_get_get(product_attr_type_id)
obj_log.info(f"获得产品属性详情响应: {resp}")
return resp
@allure.step("获得产品属性分页")
def kw_joyhub_product_attr_type_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_attr_type_page_get(**params)
obj_log.info(f"获得产品属性分页响应: {resp}")
return resp
@allure.step("更新产品属性")
def kw_joyhub_product_attr_type_update_put(self, product_attr_type_id, name, type=2, status=1, remark=None, rank_num=None):
"""
更新产品属性业务关键字
:param product_attr_type_id: 产品属性ID
:param name: 属性名称
:param type: 属性类型1-颜色属性有色卡2-普通属性
:param status: 状态 (1正常 2停用)
:param remark: 备注(可选)
:param rank_num: 排序号(可选)
:return: 响应结果
"""
obj_log.info(f"更新产品属性 - product_attr_type_id: {product_attr_type_id}, name: {name}")
params = {
"id": product_attr_type_id,
"type": type,
"name": name,
"status": status
}
if remark is not None:
params["remark"] = remark
if rank_num is not None:
params["rankNum"] = rank_num
resp = self.kw_in_joyhub_product_attr_type_update_put(**params)
obj_log.info(f"更新产品属性响应: {resp}")
return resp
@allure.step("修改产品属性状态")
def kw_joyhub_product_attr_type_change_status_put(self, product_attr_type_id, status):
"""
修改产品属性状态业务关键字
:param product_attr_type_id: 产品属性ID
:param status: 状态 (1正常 2停用)
:return: 响应结果
"""
obj_log.info(f"修改产品属性状态 - product_attr_type_id: {product_attr_type_id}, status: {status}")
params = {
"id": product_attr_type_id,
"status": status
}
resp = self.kw_in_joyhub_product_attr_type_change_status_put(**params)
obj_log.info(f"修改产品属性状态响应: {resp}")
return resp
# ============ 产品属性值管理方法 ============
@allure.step("创建产品属性值")
def kw_joyhub_product_attr_data_create_post(self, product_attr_type_id, attr_value, id=0, color=None):
"""
创建产品属性值业务关键字
:param id: 主键ID新增为0
:param product_attr_type_id: 关联产品属性表的主键ID
:param attr_value: 属性值名称
:param color: 色卡(可选,颜色属性类型时使用)
:return: 响应结果
"""
obj_log.info(f"创建产品属性值 - product_attr_type_id: {product_attr_type_id}, attr_value: {attr_value}")
params = {
"id": id,
"productAttrTypeId": product_attr_type_id,
"attrValue": attr_value
}
if color is not None:
params["color"] = color
resp = self.kw_in_joyhub_product_attr_data_create_post(**params)
obj_log.info(f"创建产品属性值响应: {resp}")
return resp
@allure.step("删除产品属性值")
def kw_joyhub_product_attr_data_delete_delete(self, product_attr_data_id):
"""
删除产品属性值业务关键字
:param product_attr_data_id: 产品属性值ID
:return: 响应结果
"""
obj_log.info(f"删除产品属性值 - product_attr_data_id: {product_attr_data_id}")
resp = self.kw_in_joyhub_product_attr_data_delete_delete(product_attr_data_id)
obj_log.info(f"删除产品属性值响应: {resp}")
return resp
@allure.step("批量删除产品属性值")
def kw_joyhub_product_attr_data_delete_list_delete(self, ids):
"""
批量删除产品属性值业务关键字
:param ids: 产品属性值ID列表
:return: 响应结果
"""
obj_log.info(f"批量删除产品属性值 - ids: {ids}")
resp = self.kw_in_joyhub_product_attr_data_delete_list_delete(ids)
obj_log.info(f"批量删除产品属性值响应: {resp}")
return resp
@allure.step("获得产品属性值详情")
def kw_joyhub_product_attr_data_get_get(self, product_attr_data_id):
"""
获得产品属性值详情业务关键字
:param product_attr_data_id: 产品属性值ID
:return: 响应结果
"""
obj_log.info(f"获得产品属性值详情 - product_attr_data_id: {product_attr_data_id}")
resp = self.kw_in_joyhub_product_attr_data_get_get(product_attr_data_id)
obj_log.info(f"获得产品属性值详情响应: {resp}")
return resp
@allure.step("获得产品属性值分页")
def kw_joyhub_product_attr_data_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_attr_data_page_get(**params)
obj_log.info(f"获得产品属性值分页响应: {resp}")
return resp
@allure.step("更新产品属性值")
def kw_joyhub_product_attr_data_update_put(self, product_attr_data_id, product_attr_type_id, attr_value, color=None):
"""
更新产品属性值业务关键字
:param product_attr_data_id: 产品属性值ID
:param product_attr_type_id: 关联产品属性表的主键ID
:param attr_value: 属性值名称
:param color: 色卡(可选,颜色属性类型时使用)
:return: 响应结果
"""
obj_log.info(f"更新产品属性值 - product_attr_data_id: {product_attr_data_id}, attr_value: {attr_value}")
params = {
"id": product_attr_data_id,
"productAttrTypeId": product_attr_type_id,
"attrValue": attr_value
}
if color is not None:
params["color"] = color
resp = self.kw_in_joyhub_product_attr_data_update_put(**params)
obj_log.info(f"更新产品属性值响应: {resp}")
return resp