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. 修复: - 修复产品创建测试用例缺少前置数据问题
168 lines
5.5 KiB
Python
168 lines
5.5 KiB
Python
# -*- 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 NewsCateManage(DlzhanInterface):
|
||
"""news分类管理业务关键字类"""
|
||
|
||
def __init__(self):
|
||
super().__init__()
|
||
|
||
@allure.step("创建news分类")
|
||
def kw_joyhub_news_cate_create_post(self, name, id=0, status=1, rank_num=1, route=None, cover_image=None):
|
||
"""
|
||
创建news分类业务关键字
|
||
:param id: 主键,新增为0
|
||
:param name: 分类名称
|
||
:param status: 状态 (1正常 2停用)
|
||
:param rank_num: 排序号
|
||
:param route: 路由(可选)
|
||
:param cover_image: 缩略图(可选)
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"创建news分类 - name: {name}")
|
||
|
||
params = {
|
||
"id": id,
|
||
"name": name,
|
||
"status": status,
|
||
"rankNum": rank_num
|
||
}
|
||
|
||
if route is not None:
|
||
params["route"] = route
|
||
if cover_image is not None:
|
||
params["coverImage"] = cover_image
|
||
|
||
resp = self.kw_in_joyhub_news_cate_create_post(**params)
|
||
obj_log.info(f"创建news分类响应: {resp}")
|
||
|
||
return resp
|
||
|
||
@allure.step("删除news分类")
|
||
def kw_joyhub_news_cate_delete_delete(self, news_cate_id):
|
||
"""
|
||
删除news分类业务关键字
|
||
:param news_cate_id: news分类ID
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"删除news分类 - news_cate_id: {news_cate_id}")
|
||
resp = self.kw_in_joyhub_news_cate_delete_delete(news_cate_id)
|
||
obj_log.info(f"删除news分类响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("批量删除news分类")
|
||
def kw_joyhub_news_cate_delete_list_delete(self, ids):
|
||
"""
|
||
批量删除news分类业务关键字
|
||
:param ids: news分类ID列表
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"批量删除news分类 - ids: {ids}")
|
||
resp = self.kw_in_joyhub_news_cate_delete_list_delete(ids)
|
||
obj_log.info(f"批量删除news分类响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得news分类详情")
|
||
def kw_joyhub_news_cate_get_get(self, news_cate_id):
|
||
"""
|
||
获得news分类详情业务关键字
|
||
:param news_cate_id: news分类ID
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"获得news分类详情 - news_cate_id: {news_cate_id}")
|
||
resp = self.kw_in_joyhub_news_cate_get_get(news_cate_id)
|
||
obj_log.info(f"获得news分类详情响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("获得news分类分页")
|
||
def kw_joyhub_news_cate_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_cate_page_get(**params)
|
||
obj_log.info(f"获得news分类分页响应: {resp}")
|
||
return resp
|
||
|
||
@allure.step("更新news分类")
|
||
def kw_joyhub_news_cate_update_put(self, news_cate_id, name, status=1, rank_num=1, route=None, cover_image=None):
|
||
"""
|
||
更新news分类业务关键字
|
||
:param news_cate_id: news分类ID
|
||
:param name: 分类名称
|
||
:param status: 状态 (1正常 2停用)
|
||
:param rank_num: 排序号
|
||
:param route: 路由(可选)
|
||
:param cover_image: 缩略图(可选)
|
||
:return: 响应结果
|
||
"""
|
||
obj_log.info(f"更新news分类 - news_cate_id: {news_cate_id}, name: {name}")
|
||
|
||
params = {
|
||
"id": news_cate_id,
|
||
"name": name,
|
||
"status": status,
|
||
"rankNum": rank_num
|
||
}
|
||
|
||
if route is not None:
|
||
params["route"] = route
|
||
if cover_image is not None:
|
||
params["coverImage"] = cover_image
|
||
|
||
resp = self.kw_in_joyhub_news_cate_update_put(**params)
|
||
obj_log.info(f"更新news分类响应: {resp}")
|
||
|
||
return resp
|
||
|
||
def clean_test_data_from_db(self, name):
|
||
"""
|
||
从数据库表jh_news_cate中删除测试数据
|
||
:param name: 要删除的分类名称
|
||
:return: 删除是否成功
|
||
"""
|
||
obj_log.info(f"从数据库删除测试数据 - name: {name}")
|
||
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_news_cate WHERE name LIKE %s"
|
||
cursor.execute(sql, (f"%{name}%",))
|
||
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()
|