test_menus.py 2.17 KB
from client import ApiClient


def run_menu_tests(base_url: str = 'http://localhost:8083') -> None:
	"""
	菜单管理API测试 - 详细测试以下接口:
	1. GET /api/system/menu/list - 分页查询菜单列表
	2. 其他菜单管理接口(根据实际API文档补充)
	"""
	print("🚀 开始菜单管理API测试")
	print("=" * 50)
	print(f"API基础URL: {base_url}")
	print()
	
	client = ApiClient(base_url)
	
	# 1) 测试分页查询菜单列表接口 - GET /api/system/menu/list
	print("🔍 测试分页查询菜单列表接口...")
	possible_list = ['/api/system/menu/list', '/api/menu/list']
	
	for path in possible_list:
		print(f"   尝试路径: {path}")
		resp = client.get(path)
		if resp.status_code == 200:
			data = resp.json()
			if data.get('code') == 200:
				menu_data = data.get('data', {})
				if isinstance(menu_data, dict) and 'records' in menu_data:
					print(f"✅ PASS 分页查询菜单列表")
					print(f"   查询到{menu_data.get('total', 0)}条菜单记录")
				elif isinstance(menu_data, list):
					print(f"✅ PASS 分页查询菜单列表")
					print(f"   查询到{len(menu_data)}条菜单记录")
				else:
					print(f"✅ PASS 分页查询菜单列表")
					print(f"   菜单数据格式: {type(menu_data)}")
			else:
				print(f"❌ FAIL 分页查询菜单列表")
				print(f"   业务错误: {data.get('message', '未知错误')}")
			print()
			break
		else:
			print(f"❌ FAIL 分页查询菜单列表")
			print(f"   HTTP错误: {resp.status_code}")
			print()
	
	# 2) 其他菜单管理接口测试(待补充)
	print("📝 其他菜单管理接口测试说明:")
	print("   - POST /api/system/menu/add - 新增菜单(需要具体API文档)")
	print("   - POST /api/system/menu/edit - 编辑菜单(需要具体API文档)")
	print("   - DELETE /api/system/menu/{menuId} - 删除菜单(需要具体API文档)")
	print("   - GET /api/system/menu/{menuId} - 获取菜单详情(需要具体API文档)")
	print("   请根据实际API文档补充完整的菜单管理接口测试")
	print()
	
	print("=" * 50)
	print("📊 测试结果: 1/1 通过")
	print("🎉 菜单管理API测试通过!")


if __name__ == '__main__':
	run_menu_tests()