test: update and add E2E, integration, visual, and webapp tests
Some checks failed
CI / scheduled-backup (push) Failing after 36s
CI / backup-verify (push) Has been skipped
CI / weekly-dr-drill (push) Failing after 0s
CI / build-deploy (push) Has been cancelled
CI / security-scan (push) Has been cancelled

- Update E2E tests: announcements, auth, auth-business-flow, full-route-regression, grades, navigation, smoke-auth, teacher-web-test

- Update integration tests: api-ai-chat, api-onboarding-complete, api-onboarding-status, proxy-guard, integration setup

- Update visual regression tests: admin-dashboard, homepage, student-dashboard, teacher-dashboard, visual config, helpers

- Update webapp tests: admin, parent, student full tests and debug scripts

- Add new webapp tests: announcements_messages, settings_profile, debug scripts

- Add webtest directory with test plans, screenshots, and diagnostic scripts
This commit is contained in:
SpecialX
2026-06-23 17:39:40 +08:00
parent f40ce0f560
commit d884c6d513
183 changed files with 19006 additions and 0 deletions

60
webtest/check_auth.py Normal file
View File

@@ -0,0 +1,60 @@
"""检查用户密码和锁定状态"""
import mysql.connector
conn = mysql.connector.connect(
host="mysql.eazygame.cn",
port=14013,
user="root",
password="wx1998WX",
database="next_edu"
)
cursor = conn.cursor()
# 检查用户密码
cursor.execute("""
SELECT email, password, onboarded_at
FROM users
WHERE email IN ('admin@xiaoxue.edu.cn', 't_chinese_1@xiaoxue.edu.cn',
'student_g1c1_1@xiaoxue.edu.cn', 'parent_g1c1_1@xiaoxue.edu.cn')
""")
users = cursor.fetchall()
print("=== 用户密码和 onboarding 状态 ===")
for u in users:
has_pwd = "YES" if u[1] else "NO"
pwd_prefix = u[1][:20] if u[1] else "NULL"
onboarded = "YES" if u[2] else "NO"
print(f" {u[0]}: password={has_pwd} ({pwd_prefix}...), onboarded={onboarded}")
# 检查密码安全表
try:
cursor.execute("""
SELECT ps.user_id, u.email, ps.failed_login_attempts, ps.locked_until
FROM password_security ps
JOIN users u ON ps.user_id = u.id
WHERE u.email IN ('admin@xiaoxue.edu.cn', 't_chinese_1@xiaoxue.edu.cn',
'student_g1c1_1@xiaoxue.edu.cn', 'parent_g1c1_1@xiaoxue.edu.cn')
""")
security = cursor.fetchall()
print("\n=== 密码安全状态 ===")
for s in security:
print(f" {s[1]}: failed_attempts={s[2]}, locked_until={s[3]}")
except Exception as e:
print(f"\n密码安全表查询失败: {e}")
# 检查 login_logs 表最近的登录记录
try:
cursor.execute("""
SELECT user_email, action, status, error_message, created_at
FROM login_logs
ORDER BY created_at DESC
LIMIT 20
""")
logs = cursor.fetchall()
print("\n=== 最近的登录记录 ===")
for l in logs:
print(f" {l[4]} | {l[0]} | {l[1]} | {l[2]} | {l[3] or ''}")
except Exception as e:
print(f"\n登录记录查询失败: {e}")
cursor.close()
conn.close()