feat: 框架增加登录态复用机制,绕过图形验证码

Web 端 (storage_state):
- 新增 tests/web/save_auth.py: 手动登录后保存 cookies+localStorage
- conftest.py: skip_login:true 时自动加载 storage_state,跳过 UI 登录
- ensure_login fixture: 登录态有效则直接通过,过期则给出明确指引

App 端 (noReset):
- conftest.py: ensure_logged_in fixture,手动登录后无需重新登录
- noReset=true 持久化登录态,未登录自动检测并给出明确引导

配置文件:
- web.skip_login: true + storage_state_dir
- app.skip_login: true + 手动登录说明
This commit is contained in:
xst
2026-07-15 10:47:34 +08:00
parent aade9e39d0
commit 7b4a54f1ce
6 changed files with 518 additions and 161 deletions
+20
View File
@@ -17,6 +17,18 @@ web:
width: 1920
height: 1080
# 登录态复用(跳过图形验证码)
# storage_state 文件保存了浏览器登录后的 cookies + localStorage
# 首次使用需手动登录一次生成,流程:
# 1. 运行: python tests/web/save_auth.py
# 2. 脚本打开浏览器 → 人工完成验证码登录 → 登录态自动保存
# 3. 后续执行用例时自动复用,无需重复登录
#
# skip_login: true → 加载已有的 storage_state,跳过登录步骤
# skip_login: false → 每次用例都通过 UI 执行完整登录流程
skip_login: true
storage_state_dir: "tests/web/auth" # 登录态存储目录
# ── App 移动端 ──
app:
appium_host: "http://localhost:4723"
@@ -26,6 +38,14 @@ app:
- android
# - ios # iOS 仅在 macOS CI 环境下开启
# 登录态复用(跳过图形验证码)
# Appium noReset=true 已确保 app 数据不重置,登录态持久保留
# 使用方式:手动启动 app 登录一次 → 后续用例自动跳过登录
#
# skip_login: true → 用例直接检查首页是否已登录态,跳过登录步骤
# skip_login: false → 每次用例都执行完整 UI 登录流程
skip_login: true
android:
device_name: "Android Emulator"
app_package: "com.yunba.driver" # ⚠️ 请确认实际包名