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. 修复:
   - 修复产品创建测试用例缺少前置数据问题
This commit is contained in:
2026-05-08 18:09:48 +08:00
parent 32fd51380c
commit 3191ec4f3c
25 changed files with 4800 additions and 2 deletions

View File

@@ -0,0 +1,130 @@
# -*- coding:utf-8 -*-
"""
blog分类管理业务关键字层
"""
import allure
from dulizhan.library.Dlizhan_interface import DlzhanInterface
from base_framework.public_tools import log
obj_log = log.get_logger()
class BlogCateManage(DlzhanInterface):
"""blog分类管理业务关键字类"""
def __init__(self):
super().__init__()
@allure.step("创建blog分类")
def kw_joyhub_blog_cate_create_post(self, name, id=0, status=1, rank_num=None, route=None, cover_image=None):
"""
创建blog分类业务关键字
:param id: 主键新增为0
:param name: 分类名称
:param status: 状态 (1正常 2停用)
:param rank_num: 排序(可选)
:param route: 路由(可选)
:param cover_image: 封面图对象,格式: {"url": "xxx", "name": None, "alt": ""}(可选)
:return: 响应结果
"""
obj_log.info(f"创建blog分类 - name: {name}, status: {status}")
params = {
"id": id,
"name": name,
"status": status
}
if rank_num is not None:
params["rankNum"] = rank_num
if route is not None:
params["route"] = route
if cover_image is not None:
if isinstance(cover_image, str):
params["coverImage"] = {"url": cover_image, "name": None, "alt": ""}
else:
params["coverImage"] = cover_image
resp = self.kw_in_joyhub_blog_cate_create_post(**params)
obj_log.info(f"创建blog分类响应: {resp}")
return resp
@allure.step("删除blog分类")
def kw_joyhub_blog_cate_delete_delete(self, cate_id):
"""
删除blog分类业务关键字
:param cate_id: blog分类ID
:return: 响应结果
"""
obj_log.info(f"删除blog分类 - cate_id: {cate_id}")
resp = self.kw_in_joyhub_blog_cate_delete_delete(cate_id)
obj_log.info(f"删除blog分类响应: {resp}")
return resp
@allure.step("获得blog分类详情")
def kw_joyhub_blog_cate_get_get(self, cate_id):
"""
获得blog分类详情业务关键字
:param cate_id: blog分类ID
:return: 响应结果
"""
obj_log.info(f"获得blog分类详情 - cate_id: {cate_id}")
resp = self.kw_in_joyhub_blog_cate_get_get(cate_id)
obj_log.info(f"获得blog分类详情响应: {resp}")
return resp
@allure.step("获得blog分类分页")
def kw_joyhub_blog_cate_page_get(self, page_num=1, page_size=10, **kwargs):
"""
获得blog分类分页业务关键字
:param page_num: 页码
:param page_size: 每页大小
:param kwargs: 其他查询条件
:return: 响应结果
"""
obj_log.info(f"获得blog分类分页 - page_num: {page_num}, page_size: {page_size}")
params = {
"page": page_num,
"size": page_size
}
params.update(kwargs)
resp = self.kw_in_joyhub_blog_cate_page_get(**params)
obj_log.info(f"获得blog分类分页响应: {resp}")
return resp
@allure.step("更新blog分类")
def kw_joyhub_blog_cate_update_put(self, cate_id, name, status=1, rank_num=None, route=None, cover_image=None):
"""
更新blog分类业务关键字
:param cate_id: blog分类ID
:param name: 分类名称
:param status: 状态 (1正常 2停用)
:param rank_num: 排序(可选)
:param route: 路由(可选)
:param cover_image: 封面图对象,格式: {"url": "xxx", "name": None, "alt": ""}(可选)
:return: 响应结果
"""
obj_log.info(f"更新blog分类 - cate_id: {cate_id}, name: {name}, status: {status}")
params = {
"id": cate_id,
"name": name,
"status": status
}
if rank_num is not None:
params["rankNum"] = rank_num
if route is not None:
params["route"] = route
if cover_image is not None:
if isinstance(cover_image, str):
params["coverImage"] = {"url": cover_image, "name": None, "alt": ""}
else:
params["coverImage"] = cover_image
resp = self.kw_in_joyhub_blog_cate_update_put(**params)
obj_log.info(f"更新blog分类响应: {resp}")
return resp