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