68 lines
2.6 KiB
Python
68 lines
2.6 KiB
Python
#!/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() |