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,187 @@
# -*- coding:utf-8 -*-
"""
news管理业务关键字层
"""
import allure
from dulizhan.library.Dlizhan_interface import DlzhanInterface
from base_framework.public_tools import log
obj_log = log.get_logger()
class NewsManage(DlzhanInterface):
"""news管理业务关键字类"""
def __init__(self):
super().__init__()
@allure.step("创建news管理")
def kw_joyhub_news_create_post(self, title, cover_image, content, id=0, status=1, rank_num=1,
seo_title=None, seo_keyword=None, seo_description=None,
likes_num=0, cate_ids=None, route=None, publish_time=None):
"""
创建news管理业务关键字
:param id: 主键新增为0
:param title: 标题
:param cover_image: 缩略图
:param content: PC页面内容
:param status: 状态 (1正常 2停用)
:param rank_num: 排序号
:param seo_title: SEO标题可选
:param seo_keyword: SEO关键词可选
:param seo_description: SEO描述可选
:param likes_num: 点赞数(可选)
:param cate_ids: news分类ID列表可选
:param route: 路由(可选)
:param publish_time: 发布时间(可选)
:return: 响应结果
"""
obj_log.info(f"创建news管理 - title: {title}")
params = {
"id": id,
"title": title,
"coverImage": cover_image,
"content": content,
"status": status,
"rankNum": rank_num,
"likesNum": likes_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 cate_ids is not None:
params["cateIds"] = cate_ids
if route is not None:
params["route"] = route
if publish_time is not None:
params["publishTime"] = publish_time
resp = self.kw_in_joyhub_news_create_post(**params)
obj_log.info(f"创建news管理响应: {resp}")
return resp
@allure.step("删除news管理")
def kw_joyhub_news_delete_delete(self, news_id):
"""
删除news管理业务关键字
:param news_id: news管理ID
:return: 响应结果
"""
obj_log.info(f"删除news管理 - news_id: {news_id}")
resp = self.kw_in_joyhub_news_delete_delete(news_id)
obj_log.info(f"删除news管理响应: {resp}")
return resp
@allure.step("批量删除news管理")
def kw_joyhub_news_delete_list_delete(self, ids):
"""
批量删除news管理业务关键字
:param ids: news管理ID列表
:return: 响应结果
"""
obj_log.info(f"批量删除news管理 - ids: {ids}")
resp = self.kw_in_joyhub_news_delete_list_delete(ids)
obj_log.info(f"批量删除news管理响应: {resp}")
return resp
@allure.step("获得news管理详情")
def kw_joyhub_news_get_get(self, news_id):
"""
获得news管理详情业务关键字
:param news_id: news管理ID
:return: 响应结果
"""
obj_log.info(f"获得news管理详情 - news_id: {news_id}")
resp = self.kw_in_joyhub_news_get_get(news_id)
obj_log.info(f"获得news管理详情响应: {resp}")
return resp
@allure.step("获得news分类关联列表")
def kw_joyhub_news_cate_relation_list_get(self, news_id):
"""
获得news分类关联列表业务关键字
:param news_id: news管理ID
:return: 响应结果
"""
obj_log.info(f"获得news分类关联列表 - news_id: {news_id}")
resp = self.kw_in_joyhub_news_cate_relation_list_get(news_id)
obj_log.info(f"获得news分类关联列表响应: {resp}")
return resp
@allure.step("获得news管理分页")
def kw_joyhub_news_page_get(self, page_no=1, page_size=10, **kwargs):
"""
获得news管理分页业务关键字
:param page_no: 页码
:param page_size: 每页大小
:param kwargs: 其他查询条件
:return: 响应结果
"""
obj_log.info(f"获得news管理分页 - page_no: {page_no}, page_size: {page_size}")
params = {
"pageNo": page_no,
"pageSize": page_size
}
params.update(kwargs)
resp = self.kw_in_joyhub_news_page_get(**params)
obj_log.info(f"获得news管理分页响应: {resp}")
return resp
@allure.step("更新news管理")
def kw_joyhub_news_update_put(self, news_id, title, cover_image, content, status=1, rank_num=1,
seo_title=None, seo_keyword=None, seo_description=None,
likes_num=0, cate_ids=None, route=None, publish_time=None):
"""
更新news管理业务关键字
:param news_id: news管理ID
:param title: 标题
:param cover_image: 缩略图
:param content: PC页面内容
:param status: 状态 (1正常 2停用)
:param rank_num: 排序号
:param seo_title: SEO标题可选
:param seo_keyword: SEO关键词可选
:param seo_description: SEO描述可选
:param likes_num: 点赞数(可选)
:param cate_ids: news分类ID列表可选
:param route: 路由(可选)
:param publish_time: 发布时间(可选)
:return: 响应结果
"""
obj_log.info(f"更新news管理 - news_id: {news_id}, title: {title}")
params = {
"id": news_id,
"title": title,
"coverImage": cover_image,
"content": content,
"status": status,
"rankNum": rank_num,
"likesNum": likes_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 cate_ids is not None:
params["cateIds"] = cate_ids
if route is not None:
params["route"] = route
if publish_time is not None:
params["publishTime"] = publish_time
resp = self.kw_in_joyhub_news_update_put(**params)
obj_log.info(f"更新news管理响应: {resp}")
return resp