ShopTRAINING/test/test_pagination.py

68 lines
2.6 KiB
Python
Raw Normal View History

2025-07-02 11:05:23 +08:00
#!/usr/bin/env python3
"""
测试API分页功能
"""
import urllib.request
import json
def test_pagination():
try:
print("=== 测试API分页功能 ===")
# 测试无分页参数(默认行为)
print("\n1. 测试默认行为(无分页参数):")
url = 'http://localhost:5000/api/models'
with urllib.request.urlopen(url) as response:
data = response.read().decode('utf-8')
result = json.loads(data)
print(f"状态码: {response.status}")
print(f"数据数量: {len(result.get('data', []))}")
pagination = result.get('pagination', {})
print(f"分页信息: {pagination}")
# 测试第一页
print("\n2. 测试第一页page=1, page_size=1:")
url = 'http://localhost:5000/api/models?page=1&page_size=1'
with urllib.request.urlopen(url) as response:
data = response.read().decode('utf-8')
result = json.loads(data)
models = result.get('data', [])
pagination = result.get('pagination', {})
print(f"数据数量: {len(models)}")
print(f"总数: {pagination.get('total', 0)}")
print(f"当前页: {pagination.get('page', 0)}")
print(f"总页数: {pagination.get('total_pages', 0)}")
print(f"有下一页: {pagination.get('has_next', False)}")
if models:
model = models[0]
print(f"第一个模型:")
print(f" model_id: '{model.get('model_id', 'MISSING')}'")
print(f" filename: '{model.get('filename', 'MISSING')}'")
print(f" metrics: {model.get('metrics', {})}")
# 测试第二页(如果存在)
if pagination.get('has_next', False):
print("\n3. 测试第二页:")
url = 'http://localhost:5000/api/models?page=2&page_size=1'
with urllib.request.urlopen(url) as response:
data = response.read().decode('utf-8')
result = json.loads(data)
models = result.get('data', [])
pagination = result.get('pagination', {})
print(f"数据数量: {len(models)}")
print(f"当前页: {pagination.get('page', 0)}")
print(f"有上一页: {pagination.get('has_previous', False)}")
print("\n=== 分页测试完成 ===")
except Exception as e:
print(f"测试失败: {e}")
if __name__ == "__main__":
test_pagination()