peach-e2e-suite

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

E2E 통합 시나리오 오케스트레이터

E2E集成场景编排器

단위 시나리오(.js)를 비즈니스 플로우 단위로 조합한 통합 테스트 시나리오를 md로 생성하고, md를 읽어 순차 실행 + 단계별 검증 + 코드/DB 검증까지 처리한다.
peach-e2e-scenario(단위 실행)의 상위 오케스트레이션 레이어.
将单元场景(.js)按业务流程组合,以md格式生成集成测试场景,并读取md文件完成顺序执行 + 分步验证 + 代码/数据库验证等操作。
属于peach-e2e-scenario(单元执行)的上层编排层。

모드

模式

모드트리거동작
auto
(기본)
/peach-e2e-suite [설명]
생성 + 실행
create
/peach-e2e-suite create [설명]
통합 시나리오 md 생성만
run
/peach-e2e-suite run [md 파일명]
기존 md를 읽어 실행
模式触发方式操作
auto
(默认)
/peach-e2e-suite [描述]
生成 + 执行
create
/peach-e2e-suite create [描述]
仅生成集成场景md
run
/peach-e2e-suite run [md文件名]
读取已有md并执行

생성 파일 경로

生成文件路径

docs/e2e-suite/
└── {업무흐름}-{핵심동작}.md
    예: 재처방-결제-검증.md
        신규주문-전체흐름.md
        회원가입-로그인-검증.md
docs/e2e-suite/
└── {业务流程}-{核心动作}.md
    示例: 续方-支付-验证.md
        新订单-全流程.md
        注册-登录-验证.md

워크플로우

工作流程

공통: 환경 확인

通用:环境检查

bash
cd e2e && ./e2e.sh setup
cd e2e && ./e2e.sh status
status
에서
❌ Chrome CDP 미연결
이 보이면 아래 순서로 자동 복구를 먼저 시도한다.
  1. cd e2e && ./e2e.sh chrome &
    실행
  2. sleep 4
    대기
  3. cd e2e && ./e2e.sh status
    재확인
  4. 여전히 미연결이면 사용자에게
    cd e2e && ./e2e.sh chrome
    수동 실행을 안내한다
탭 목록을 사용자에게 보여주고 탭 번호 확인.
Google/OAuth/관리자/결제/기존 Chrome Beta 프로필 세션 유지가 핵심인 통합 흐름은 md 생성/분석까지만 진행하고, 실제 Step 실행은 사용자 승인 후 시작한다.
탭 드리프트 방지: 탭 번호 응답 후
agent-browser tab N
직후
agent-browser eval "document.title + ' | ' + location.href"
로 재검증한다. 예상과 다르면
./e2e.sh status
재출력 후 재선택.
파일 업로드 Step 포함 시: OS 네이티브 파일 다이얼로그 차단을 위해
Page.setInterceptFileChooserDialog
방식을 사용한다. (상세:
peach-e2e-browse/references/SPA-프레임워크-입력패턴.md §3
)
bash
cd e2e && ./e2e.sh setup
cd e2e && ./e2e.sh status
status
显示
❌ Chrome CDP未连接
,请按以下顺序尝试自动恢复:
  1. 执行
    cd e2e && ./e2e.sh chrome &
  2. 等待
    sleep 4
  3. 重新执行
    cd e2e && ./e2e.sh status
    确认
  4. 若仍未连接,引导用户手动执行
    cd e2e && ./e2e.sh chrome
向用户展示标签页列表并确认标签页编号。
对于需保留Google/OAuth/管理员/支付/现有Chrome Beta配置文件会话的核心集成流程, 仅完成md生成/分析,实际步骤执行需经用户确认后启动。
防止标签页漂移:用户回复标签页编号并执行
agent-browser tab N
后, 立即通过
agent-browser eval "document.title + ' | ' + location.href"
重新验证。 若与预期不符,重新输出
./e2e.sh status
并让用户重新选择。
包含文件上传步骤时:为拦截OS原生文件对话框,采用
Page.setInterceptFileChooserDialog
方式。 (详情:
peach-e2e-browse/references/SPA-프레임워크-입력패턴.md §3

create 모드

create模式

  1. 요청 파악 — 사용자의 자연어 요청에서 테스트 대상 업무 플로우 파악
  2. 단위 시나리오 탐색 — 기존 시나리오 목록 확인
    bash
    cd e2e && ./e2e.sh list
    ls e2e/시나리오/**/*.js
  3. 시나리오 코드 분석 — 관련 단위 시나리오 .js 파일을 읽어 동작/입출력 파악
  4. DOM 선조사 (필요시) — agent-browser eval로 페이지 구조 확인
  5. 정보 확인 — 사용자에게 확인:
    • 통합 시나리오 이름 (한글, kebab-case)
    • 포함할 단위 시나리오 목록 + 순서
    • 각 단계별 검증 포인트
    • 코드/DB 검증 항목 (있으면)
  6. md 생성
    references/suite-템플릿.md
    참조하여 작성
  7. 저장
    docs/e2e-suite/{이름}.md
    • 폴더 없으면 자동 생성
  8. 완료 보고
  1. 需求识别 — 从用户自然语言请求中识别测试目标业务流程
  2. 单元场景检索 — 查看已有场景列表
    bash
    cd e2e && ./e2e.sh list
    ls e2e/시나리오/**/*.js
  3. 场景代码分析 — 读取相关单元场景.js文件,识别其动作/输入输出
  4. DOM预检查(按需) — 通过agent-browser eval确认页面结构
  5. 信息确认 — 向用户确认:
    • 集成场景名称(韩文,kebab-case格式)
    • 需包含的单元场景列表及顺序
    • 各步骤验证点
    • 代码/数据库验证项(如有)
  6. 生成md — 参考
    references/suite-템플릿.md
    编写
  7. 保存 — 保存至
    docs/e2e-suite/{名称}.md
    • 若文件夹不存在则自动创建
  8. 完成报告

run 모드

run模式

  1. md 파일 선택
    bash
    ls docs/e2e-suite/*.md
    사용자가 파일 지정하거나, 목록에서 선택
  2. md 파싱 — frontmatter + 시나리오 흐름 읽기
  3. 사전조건 확인 — md의 사전조건 섹션을 읽고 충족 여부 확인
  4. 실행 승인 확인 — 민감 세션/고정 프로필 유지 흐름이면 실제 Step 실행 전 사용자 승인 확인
  5. 순차 실행 루프 — 각 Step마다: a. 단위 시나리오 실행:
    cd e2e && ./e2e.sh run --tab N 시나리오/경로
    b. 실패 시: peach-e2e-scenario의 자동수정 패턴 적용 (에러 파싱 → DOM 확인 → 수정 → 재실행, 최대 3회) c. 검증 포인트 확인: agent-browser eval로 DOM/URL 상태 검증 d. 전달 데이터 추출: 다음 Step에 필요한 데이터를 컨텍스트에 보관 (예: orderId) e. 데이터 주입: 다음 Step 실행 시 환경변수로 전달 (
    E2E_ORDER_ID=xxx
    )
  6. 코드 검증 (md에 섹션이 있으면) — 해당 파일을 Read/Grep으로 확인
  7. DB 검증 (md에 섹션이 있으면) — peach-db-query 스킬 또는 직접 SQL 실행
  8. 결과 보고 — 각 Step 결과 + 최종 통합 기준 충족 여부
  1. 选择md文件
    bash
    ls docs/e2e-suite/*.md
    用户指定文件或从列表中选择
  2. 解析md — 读取frontmatter + 场景流程
  3. 前置条件检查 — 读取md的前置条件章节,确认是否满足
  4. 执行确认 — 若为敏感会话/固定配置文件保留流程,实际步骤执行前需用户确认
  5. 顺序执行循环 — 每个步骤执行: a. 执行单元场景:
    cd e2e && ./e2e.sh run --tab N 시나리오/路径
    b. 执行失败时:应用peach-e2e-scenario的自动修复模式(错误解析 → DOM确认 → 修改 → 重新执行,最多3次) c. 验证点确认:通过agent-browser eval验证DOM/URL状态 d. 提取传递数据:将下一步所需数据保存至上下文(如orderId) e. 数据注入:下一步执行时通过环境变量传递(
    E2E_ORDER_ID=xxx
  6. 代码验证(若md中有对应章节) — 通过Read/Grep确认对应文件
  7. 数据库验证(若md中有对应章节) — 使用peach-db-query技能或直接执行SQL
  8. 结果报告 — 展示各步骤结果 + 最终集成标准是否满足

auto 모드 (기본)

auto模式(默认)

create → run 연속 실행. 생성 후 바로 실행하여 검증.
连续执行create → run。生成后立即执行并验证。

단계별 실패 처리

分步失败处理

상황처리
단위 시나리오 실행 실패자동수정 루프 3회 시도 (peach-e2e-scenario 패턴)
자동수정 3회 실패해당 Step에서 중단, 실패 보고
검증 포인트 불일치기대값과 실제값을 보고, 사용자 판단 요청
코드/DB 검증 실패불일치 내용 보고, 사용자 판단 요청
Step 실패 시 후속 Step은 실행하지 않는다 (데이터 의존성 때문).
场景处理方式
单元场景执行失败尝试自动修复循环3次(peach-e2e-scenario模式)
自动修复3次失败在该步骤终止,报告失败
验证点不匹配展示预期值与实际值,请求用户判断
代码/数据库验证失败展示不匹配内容,请求用户判断
步骤失败时,后续步骤停止执行(因存在数据依赖)。

데이터 전달 방식

数据传递方式

단위 시나리오는 독립 프로세스(
node
)로 실행되어 메모리 공유 불가. AI가 중간 데이터를 컨텍스트에 유지하고, 환경변수로 주입한다.
bash
undefined
单元场景以独立进程(
node
)执行,无法共享内存。 AI在上下文中保存中间数据,并通过环境变量注入。
bash
undefined

Step 1에서 orderId 추출

Step 1中提取orderId

agent-browser eval "location.pathname.split('/').pop()"
agent-browser eval "location.pathname.split('/').pop()"

→ orderId = "12345"

→ orderId = "12345"

Step 2에 주입

注入Step 2

cd e2e && E2E_ORDER_ID=12345 ./e2e.sh run --tab 0 시나리오/2-결제.js

> 단위 시나리오 .js 코드에서 `process.env.E2E_ORDER_ID`로 접근 가능.
> connect.js의 `origin`처럼 환경변수 기반 주입이 기존 패턴과 일관된다.
cd e2e && E2E_ORDER_ID=12345 ./e2e.sh run --tab 0 시나리오/2-결제.js

> 单元场景.js代码可通过`process.env.E2E_ORDER_ID`访问。
> 与connect.js中`origin`基于环境变量注入的现有模式保持一致。

md 구조

md结构

references/suite-템플릿.md
참조.
参考
references/suite-템플릿.md

frontmatter

frontmatter

yaml
---
name: 재처방-결제-검증
module: tang
created: 2026-04-14
---
yaml
---
name: 续方-支付-验证
module: tang
created: 2026-04-14
---

본문 구조

正文结构

markdown
undefined
markdown
undefined

{통합 시나리오 이름}

{集成场景名称}

사전조건

前置条件

  • Chrome Beta CDP 연결, 로그인 완료
  • {필요한 데이터/상태}
  • 탭: {시작 페이지}
  • Chrome Beta CDP已连接,登录完成
  • {所需数据/状态}
  • 标签页:{起始页面}

시나리오 흐름

场景流程

Step 1: {단계명}

Step 1: {步骤名称}

  • 실행:
    시나리오/{경로}.js
  • 검증:
    • {DOM/URL 검증 포인트}
  • 전달 데이터:
    {변수명}
    ({추출 방법})
  • 执行:
    시나리오/{路径}.js
  • 验证:
    • {DOM/URL验证点}
  • 传递数据:
    {变量名}
    ({提取方式})

Step 2: {단계명}

Step 2: {步骤名称}

  • 실행:
    시나리오/{경로}.js
  • 사전 주입:
    E2E_{변수명}=${값}
  • 검증:
    • {검증 포인트}
  • 执行:
    시나리오/{路径}.js
  • 前置注入:
    E2E_{变量名}=${值}
  • 验证:
    • {验证点}

Step N: 결과 검증

Step N: 结果验证

  • 실행: 없음 (AI가 직접 확인)
  • DB 검증:
    {SQL}
    → {기대값}
  • 코드 검증:
    {파일경로}
    — {확인할 로직}
  • 执行:无(AI直接确认)
  • 数据库验证:
    {SQL}
    → {预期值}
  • 代码验证:
    {文件路径}
    — {需确认的逻辑}

최종 통합 기준

最终集成标准

  • {전체 통과 조건}
  • {整体通过条件}

실행 이력

执行历史

일시결과비고
undefined
时间结果备注
undefined

핵심 원칙

核心原则

  • 단위 시나리오 .js 파일은 수정하지 않는다 — 통합 시나리오 md가 조합만 정의
  • 실행은 반드시
    e2e.sh run
    을 통해 — 직접
    node
    호출 금지
  • 검증 포인트는 자연어로 기술 — AI가 해석하여 agent-browser eval로 확인
  • Step 실패 시 후속 Step 실행 금지 (데이터 의존성)
  • 실행 이력은 git log에서 확인한다. suite md 파일은 시나리오 정의만 포함하며 실행 결과로 변경되지 않는다.
  • 不修改单元场景.js文件 — 集成场景md仅定义组合规则
  • 必须通过
    e2e.sh run
    执行 — 禁止直接调用
    node
  • 验证点以自然语言描述 — AI解析后通过agent-browser eval确认
  • 步骤失败时禁止执行后续步骤(因数据依赖)
  • 执行历史可从git log查看。suite md文件仅包含场景定义,不会因执行结果修改。

도구 역할 분담

工具职责划分

용도도구
단위 시나리오 실행
./e2e.sh run
검증 포인트 확인
agent-browser eval
코드 검증Read, Grep
DB 검증peach-db-query 또는 직접 SQL
iframe 검증
./e2e/pwc.sh eval
(fallback)
用途工具
单元场景执行
./e2e.sh run
验证点确认
agent-browser eval
代码验证Read, Grep
数据库验证peach-db-query或直接SQL
iframe验证
./e2e/pwc.sh eval
(备选)

참조 문서

参考文档

문서용도로드 조건
references/suite-템플릿.md
md 생성 템플릿create, auto
文档用途加载条件
references/suite-템플릿.md
md生成模板create, auto

완료 후 안내

完成后提示

통합 시나리오가 완료되었습니다.

📄 파일: docs/e2e-suite/{이름}.md

**관련 스킬:**
- `/peach-e2e-scenario` — 단위 시나리오 생성/실행/자동수정
- `/peach-e2e-browse` — DOM 탐색/디버깅
- `/peach-e2e-suite run {파일명}` — 이 통합 시나리오 재실행
集成场景已完成。

📄 文件: docs/e2e-suite/{名称}.md

**相关技能:**
- `/peach-e2e-scenario` — 单元场景生成/执行/自动修复
- `/peach-e2e-browse` — DOM检索/调试
- `/peach-e2e-suite run {文件名}` — 重新执行该集成场景