Files
user-system/e2e_v3.txt

202 lines
19 KiB
Plaintext
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.
=== RUN TestE2ETokenRefresh
[API] 2026-03-16 17:56:50 POST /api/v1/auth/register | status: 200 | latency: 74.988ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/auth/login | status: 200 | latency: 64.6651ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:53: 登录成功access_token 和 refresh_token 均已获取
[API] 2026-03-16 17:56:50 POST /api/v1/auth/refresh | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:76: Token 刷新成功,新 access_token 长度=287
[API] 2026-03-16 17:56:50 GET /api/v1/auth/userinfo | status: 200 | latency: 286µs | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:88: 新 Token 可正常访问受保护接口
[API] 2026-03-16 17:56:50 POST /api/v1/auth/refresh | status: 401 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:102: 无效 refresh_token HTTP 401符合预期
--- PASS: TestE2ETokenRefresh (0.15s)
=== RUN TestE2ELogoutInvalidatesToken
[API] 2026-03-16 17:56:50 POST /api/v1/auth/register | status: 200 | latency: 65.0543ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/auth/login | status: 200 | latency: 65.7122ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/auth/logout | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:126: 登出成功
[API] 2026-03-16 17:56:50 GET /api/v1/auth/userinfo | status: 401 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:134: 登出后 Token 已正确失效
--- PASS: TestE2ELogoutInvalidatesToken (0.14s)
=== RUN TestE2ERBACProtectedRoutes
[API] 2026-03-16 17:56:50 POST /api/v1/auth/register | status: 200 | latency: 64.9827ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/auth/login | status: 200 | latency: 65.754ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
=== RUN TestE2ERBACProtectedRoutes/普通用户无法访问角色管理
[API] 2026-03-16 17:56:50 GET /api/v1/roles | status: 403 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:164: 普通用户访问角色管理返回 HTTP 403符合预期>=400
=== RUN TestE2ERBACProtectedRoutes/普通用户无法访问管理员导出接口
[API] 2026-03-16 17:56:50 GET /api/v1/admin/users/export | status: 404 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:176: admin 导出被正确拒绝HTTP 404
=== RUN TestE2ERBACProtectedRoutes/未认证用户访问受保护接口_401
[API] 2026-03-16 17:56:50 GET /api/v1/auth/userinfo | status: 401 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:185: 未认证访问正确返回 401
=== RUN TestE2ERBACProtectedRoutes/带有效_Token_的普通用户可访问自身信息
[API] 2026-03-16 17:56:50 GET /api/v1/auth/userinfo | status: 200 | latency: 102.9µs | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:194: 普通用户访问自身信息成功
--- PASS: TestE2ERBACProtectedRoutes (0.14s)
--- PASS: TestE2ERBACProtectedRoutes/普通用户无法访问角色管理 (0.00s)
--- PASS: TestE2ERBACProtectedRoutes/普通用户无法访问管理员导出接口 (0.00s)
--- PASS: TestE2ERBACProtectedRoutes/未认证用户访问受保护接口_401 (0.00s)
--- PASS: TestE2ERBACProtectedRoutes/带有效_Token_的普通用户可访问自身信息 (0.00s)
=== RUN TestE2ETOTPFlow
[API] 2026-03-16 17:56:50 POST /api/v1/auth/register | status: 200 | latency: 65.6689ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/auth/login | status: 200 | latency: 64.7366ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
=== RUN TestE2ETOTPFlow/TOTP状态查询
[API] 2026-03-16 17:56:50 GET /api/v1/auth/2fa/status | status: 200 | latency: 1.008ms | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:223: TOTP 状态查询成功: map[totp_enabled:false]
=== RUN TestE2ETOTPFlow/TOTP_Setup获取密钥
[API] 2026-03-16 17:56:50 GET /api/v1/auth/2fa/setup | status: 200 | latency: 8.4188ms | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:246: TOTP secret 已获取,长度=32
=== RUN TestE2ETOTPFlow/TOTP_Enable使用实时OTP
[API] 2026-03-16 17:56:50 POST /api/v1/auth/2fa/enable | status: 400 | latency: 644.2µs | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:264: TOTP Enable HTTP 400OTP 可能因时钟偏差失败,视为非致命)
--- PASS: TestE2ETOTPFlow (0.15s)
--- PASS: TestE2ETOTPFlow/TOTP状态查询 (0.00s)
--- PASS: TestE2ETOTPFlow/TOTP_Setup获取密钥 (0.01s)
--- PASS: TestE2ETOTPFlow/TOTP_Enable使用实时OTP (0.00s)
=== RUN TestE2EWebhookCRUD
[API] 2026-03-16 17:56:50 POST /api/v1/auth/register | status: 200 | latency: 65.8796ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/auth/login | status: 200 | latency: 64.5737ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
=== RUN TestE2EWebhookCRUD/创建Webhook
[API] 2026-03-16 17:56:50 POST /api/v1/webhooks | status: 200 | latency: 742.4µs | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:315: Webhook 创建成功id=1
=== RUN TestE2EWebhookCRUD/列出Webhooks
[API] 2026-03-16 17:56:50 GET /api/v1/webhooks | status: 200 | latency: 425.1µs | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:329: Webhook 列表查询成功
=== RUN TestE2EWebhookCRUD/更新Webhook
[API] 2026-03-16 17:56:50 PUT /api/v1/webhooks/1 | status: 200 | latency: 52µs | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:350: Webhook 更新成功
=== RUN TestE2EWebhookCRUD/查询Webhook投递记录
[API] 2026-03-16 17:56:50 GET /api/v1/webhooks/1/deliveries | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:367: Webhook 投递记录查询成功
=== RUN TestE2EWebhookCRUD/删除Webhook
[API] 2026-03-16 17:56:50 DELETE /api/v1/webhooks/1 | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:384: Webhook 删除成功
--- PASS: TestE2EWebhookCRUD (0.14s)
--- PASS: TestE2EWebhookCRUD/创建Webhook (0.00s)
--- PASS: TestE2EWebhookCRUD/列出Webhooks (0.00s)
--- PASS: TestE2EWebhookCRUD/更新Webhook (0.00s)
--- PASS: TestE2EWebhookCRUD/查询Webhook投递记录 (0.00s)
--- PASS: TestE2EWebhookCRUD/删除Webhook (0.00s)
=== RUN TestE2EWebhookCallbackDelivery
[API] 2026-03-16 17:56:50 POST /api/v1/auth/register | status: 200 | latency: 65.516ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/auth/login | status: 200 | latency: 64.7156ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:50 POST /api/v1/webhooks | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:422: Webhook 已创建,等待事件触发投递...
[API] 2026-03-16 17:56:50 POST /api/v1/auth/register | status: 200 | latency: 64.9342ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:436: 注意5秒内未收到 Webhook 回调(异步投递延迟,非致命)
--- PASS: TestE2EWebhookCallbackDelivery (5.20s)
=== RUN TestE2EImportExportTemplate
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 200 | latency: 64.6089ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 200 | latency: 64.6699ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
=== RUN TestE2EImportExportTemplate/普通用户无法访问导出
[API] 2026-03-16 17:56:56 GET /api/v1/admin/users/export | status: 404 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:459: 正确拒绝普通用户访问导出HTTP 404
=== RUN TestE2EImportExportTemplate/普通用户无法下载导入模板
[API] 2026-03-16 17:56:56 GET /api/v1/admin/users/import/template | status: 404 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:468: 正确拒绝普通用户访问导入模板HTTP 404
--- PASS: TestE2EImportExportTemplate (0.14s)
--- PASS: TestE2EImportExportTemplate/普通用户无法访问导出 (0.00s)
--- PASS: TestE2EImportExportTemplate/普通用户无法下载导入模板 (0.00s)
=== RUN TestE2EConcurrentRegisterUnique
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 400 | latency: 2.2694ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 400 | latency: 65.6438ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 400 | latency: 66.1054ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:508: 并发注册结果(状态码分布): map[400:3 429:7]
e2e_advanced_test.go:522: 系统稳定:注册成功=0 被限流=7 其他拒绝=3
--- PASS: TestE2EConcurrentRegisterUnique (0.07s)
=== RUN TestE2EFullAuthCycle
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 200 | latency: 65.5266ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:546: ✅ 1. 注册成功
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 200 | latency: 66.2287ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:552: ✅ 2. 登录成功access_token len=291 refresh_token len=292
[API] 2026-03-16 17:56:56 GET /api/v1/auth/userinfo | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:559: ✅ 3. 获取用户信息成功
[API] 2026-03-16 17:56:56 POST /api/v1/auth/refresh | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:575: ✅ 4. Token 刷新成功,新 access_token len=291
[API] 2026-03-16 17:56:56 GET /api/v1/auth/userinfo | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:582: ✅ 5. 新 Token 验证通过
[API] 2026-03-16 17:56:56 POST /api/v1/auth/logout | status: 200 | latency: 936.4µs | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_advanced_test.go:589: ✅ 6. 登出成功
e2e_advanced_test.go:591: 🎉 完整认证生命周期测试通过注册→登录→获取信息→刷新Token→验证→登出
--- PASS: TestE2EFullAuthCycle (0.14s)
=== RUN TestE2EHealthAndMetrics
=== RUN TestE2EHealthAndMetrics/OAuth_providers_端点可达
[API] 2026-03-16 17:56:56 GET /api/v1/auth/oauth/providers | status: 200 | latency: 1.0621ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:607: OAuth providers 端点正常
=== RUN TestE2EHealthAndMetrics/验证码端点可达(无需认证)
[API] 2026-03-16 17:56:56 GET /api/v1/auth/captcha | status: 200 | latency: 1.0085ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_advanced_test.go:615: 验证码端点正常
--- PASS: TestE2EHealthAndMetrics (0.01s)
--- PASS: TestE2EHealthAndMetrics/OAuth_providers_端点可达 (0.00s)
--- PASS: TestE2EHealthAndMetrics/验证码端点可达(无需认证) (0.00s)
=== RUN TestE2ERegisterAndLogin
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 200 | latency: 64.7368ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:162: 注册成功: map[avatar: email:e2euser1@example.com id:1 nickname: phone: status:1 username:e2e_user1]
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 200 | latency: 64.6626ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:185: 登录成功access_token 长度=283
[API] 2026-03-16 17:56:56 GET /api/v1/auth/userinfo | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_test.go:198: 用户信息获取成功: map[avatar: email:e2euser1@example.com id:1 nickname: phone: status:1 username:e2e_user1]
[API] 2026-03-16 17:56:56 POST /api/v1/auth/logout | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: 1 | ua: Go-http-client/1.1
e2e_test.go:205: 登出成功
--- PASS: TestE2ERegisterAndLogin (0.14s)
=== RUN TestE2ELoginFailures
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 200 | latency: 63.7238ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 401 | latency: 64.6637ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:234: 错误密码返回 HTTP 401符合预期
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 401 | latency: 870.3µs | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
--- PASS: TestE2ELoginFailures (0.14s)
=== RUN TestE2EUnauthorizedAccess
[API] 2026-03-16 17:56:56 GET /api/v1/auth/userinfo | status: 401 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:263: 未认证访问正确返回 401
[API] 2026-03-16 17:56:56 GET /api/v1/auth/userinfo | status: 401 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:270: 无效 token 正确返回 401
--- PASS: TestE2EUnauthorizedAccess (0.01s)
=== RUN TestE2EPasswordReset
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 200 | latency: 64.317ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[密码重置邮件-开发模式] To: resetuser@example.com
Subject: 密码重置请求
ResetURL: http://localhost/reset-password?token=c0f6b31aaa22a59c56161f2e6961a8da4e317f32eb1b10a24f9322e919a58cda
[API] 2026-03-16 17:56:56 POST /api/v1/auth/forgot-password | status: 200 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:293: 密码重置请求正确返回 200
--- PASS: TestE2EPasswordReset (0.07s)
=== RUN TestE2ECaptcha
[API] 2026-03-16 17:56:56 GET /api/v1/auth/captcha | status: 200 | latency: 1.5834ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:322: 验证码生成成功captcha_id=1773655016661686900-ed672991b9c8b0a03b6f45ff2c0d8d14
[API] 2026-03-16 17:56:56 GET /api/v1/auth/captcha/image | status: 200 | latency: 984.5µs | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[Query] /api/v1/auth/captcha/image?captcha_id=1773655016661686900-ed672991b9c8b0a03b6f45ff2c0d8d14
e2e_test.go:329: 验证码图片获取成功
--- PASS: TestE2ECaptcha (0.01s)
=== RUN TestE2EConcurrentLogin
[API] 2026-03-16 17:56:56 POST /api/v1/auth/register | status: 200 | latency: 65.6066ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 401 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 687µs | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 56.1µs | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 429 | latency: 0s | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
[API] 2026-03-16 17:56:56 POST /api/v1/auth/login | status: 200 | latency: 65.9606ms | ip: 127.0.0.1 | user_id: <nil> | ua: Go-http-client/1.1
e2e_test.go:384: 并发登录结果: 成功=1 失败=19 总耗时=67.1632ms 平均=4.94864ms
--- PASS: TestE2EConcurrentLogin (0.14s)
PASS
ok github.com/user-management-system/internal/e2e 6.934s