ShopTRAINING/test/test_pagination.py
2025-07-02 11:05:23 +08:00

68 lines
2.6 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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()