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,125 @@
# -*- 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 DownloadQrcodeManage(DlzhanInterface):
"""二维码管理业务关键字类"""
def __init__(self):
super().__init__()
@allure.step("创建二维码")
def kw_joyhub_download_qrcode_create_post(self, title, id=0, status=1):
"""
创建二维码业务关键字
:param id: 主键新增为0
:param title: 标题
:param status: 状态 (1正常 2停用)
:return: 响应结果
"""
obj_log.info(f"创建二维码 - title: {title}, status: {status}")
params = {
"id": id,
"title": title,
"status": status
}
resp = self.kw_in_joyhub_download_qrcode_create_post(**params)
obj_log.info(f"创建二维码响应: {resp}")
return resp
@allure.step("获得二维码详情")
def kw_joyhub_download_qrcode_get_get(self, qrcode_id):
"""
获得二维码详情业务关键字
:param qrcode_id: 二维码ID
:return: 响应结果
"""
obj_log.info(f"获得二维码详情 - qrcode_id: {qrcode_id}")
resp = self.kw_in_joyhub_download_qrcode_get_get(qrcode_id)
obj_log.info(f"获得二维码详情响应: {resp}")
return resp
@allure.step("获得二维码分页")
def kw_joyhub_download_qrcode_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_download_qrcode_page_get(**params)
obj_log.info(f"获得二维码分页响应: {resp}")
return resp
@allure.step("更新二维码")
def kw_joyhub_download_qrcode_update_put(self, qrcode_id, title, status=1):
"""
更新二维码业务关键字
:param qrcode_id: 二维码ID
:param title: 标题
:param status: 状态 (1正常 2停用)
:return: 响应结果
"""
obj_log.info(f"更新二维码 - qrcode_id: {qrcode_id}, title: {title}, status: {status}")
params = {
"id": qrcode_id,
"title": title,
"status": status
}
resp = self.kw_in_joyhub_download_qrcode_update_put(**params)
obj_log.info(f"更新二维码响应: {resp}")
return resp
def clean_test_data_from_db(self, title):
"""
从数据库表jh_download_qrcode中删除测试数据
:param title: 要删除的二维码标题
:return: 删除是否成功
"""
obj_log.info(f"从数据库删除测试数据 - title: {title}")
try:
import pymysql
# 数据库连接配置(需要根据实际环境配置)
connection = pymysql.connect(
host='localhost',
user='root',
password='password',
database='joyhub',
charset='utf8mb4'
)
with connection.cursor() as cursor:
sql = "DELETE FROM jh_download_qrcode WHERE title LIKE %s"
cursor.execute(sql, (f"%{title}%",))
connection.commit()
deleted_count = cursor.rowcount
obj_log.info(f"成功删除 {deleted_count} 条测试数据")
return True
except Exception as e:
obj_log.error(f"删除测试数据失败: {str(e)}")
return False
finally:
if 'connection' in locals():
connection.close()