peach-e2e-suite
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseE2E 통합 시나리오 오케스트레이터
E2E集成场景编排器
단위 시나리오(.js)를 비즈니스 플로우 단위로 조합한 통합 테스트 시나리오를 md로 생성하고,
md를 읽어 순차 실행 + 단계별 검증 + 코드/DB 검증까지 처리한다.
peach-e2e-scenario(단위 실행)의 상위 오케스트레이션 레이어.
将单元场景(.js)按业务流程组合,以md格式生成集成测试场景,并读取md文件完成顺序执行 + 分步验证 + 代码/数据库验证等操作。
属于peach-e2e-scenario(单元执行)的上层编排层。
모드
模式
| 모드 | 트리거 | 동작 |
|---|---|---|
| | 생성 + 실행 |
| | 통합 시나리오 md 생성만 |
| | 기존 md를 읽어 실행 |
| 模式 | 触发方式 | 操作 |
|---|---|---|
| | 生成 + 执行 |
| | 仅生成集成场景md |
| | 读取已有md并执行 |
생성 파일 경로
生成文件路径
docs/e2e-suite/
└── {업무흐름}-{핵심동작}.md
예: 재처방-결제-검증.md
신규주문-전체흐름.md
회원가입-로그인-검증.mddocs/e2e-suite/
└── {业务流程}-{核心动作}.md
示例: 续方-支付-验证.md
新订单-全流程.md
注册-登录-验证.md워크플로우
工作流程
공통: 환경 확인
通用:环境检查
bash
cd e2e && ./e2e.sh setup
cd e2e && ./e2e.sh statusstatus❌ Chrome CDP 미연결- 실행
cd e2e && ./e2e.sh chrome & - 대기
sleep 4 - 재확인
cd e2e && ./e2e.sh status - 여전히 미연결이면 사용자에게 수동 실행을 안내한다
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未连接- 执行
cd e2e && ./e2e.sh chrome & - 等待
sleep 4 - 重新执行 确认
cd e2e && ./e2e.sh status - 若仍未连接,引导用户手动执行
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模式
- 요청 파악 — 사용자의 자연어 요청에서 테스트 대상 업무 플로우 파악
- 단위 시나리오 탐색 — 기존 시나리오 목록 확인
bash
cd e2e && ./e2e.sh list ls e2e/시나리오/**/*.js - 시나리오 코드 분석 — 관련 단위 시나리오 .js 파일을 읽어 동작/입출력 파악
- DOM 선조사 (필요시) — agent-browser eval로 페이지 구조 확인
- 정보 확인 — 사용자에게 확인:
- 통합 시나리오 이름 (한글, kebab-case)
- 포함할 단위 시나리오 목록 + 순서
- 각 단계별 검증 포인트
- 코드/DB 검증 항목 (있으면)
- md 생성 — 참조하여 작성
references/suite-템플릿.md - 저장 —
docs/e2e-suite/{이름}.md- 폴더 없으면 자동 생성
- 완료 보고
- 需求识别 — 从用户自然语言请求中识别测试目标业务流程
- 单元场景检索 — 查看已有场景列表
bash
cd e2e && ./e2e.sh list ls e2e/시나리오/**/*.js - 场景代码分析 — 读取相关单元场景.js文件,识别其动作/输入输出
- DOM预检查(按需) — 通过agent-browser eval确认页面结构
- 信息确认 — 向用户确认:
- 集成场景名称(韩文,kebab-case格式)
- 需包含的单元场景列表及顺序
- 各步骤验证点
- 代码/数据库验证项(如有)
- 生成md — 参考编写
references/suite-템플릿.md - 保存 — 保存至
docs/e2e-suite/{名称}.md- 若文件夹不存在则自动创建
- 完成报告
run 모드
run模式
- md 파일 선택
사용자가 파일 지정하거나, 목록에서 선택bash
ls docs/e2e-suite/*.md - md 파싱 — frontmatter + 시나리오 흐름 읽기
- 사전조건 확인 — md의 사전조건 섹션을 읽고 충족 여부 확인
- 실행 승인 확인 — 민감 세션/고정 프로필 유지 흐름이면 실제 Step 실행 전 사용자 승인 확인
- 순차 실행 루프 — 각 Step마다:
a. 단위 시나리오 실행: b. 실패 시: peach-e2e-scenario의 자동수정 패턴 적용 (에러 파싱 → DOM 확인 → 수정 → 재실행, 최대 3회) c. 검증 포인트 확인: agent-browser eval로 DOM/URL 상태 검증 d. 전달 데이터 추출: 다음 Step에 필요한 데이터를 컨텍스트에 보관 (예: orderId) e. 데이터 주입: 다음 Step 실행 시 환경변수로 전달 (
cd e2e && ./e2e.sh run --tab N 시나리오/경로)E2E_ORDER_ID=xxx - 코드 검증 (md에 섹션이 있으면) — 해당 파일을 Read/Grep으로 확인
- DB 검증 (md에 섹션이 있으면) — peach-db-query 스킬 또는 직접 SQL 실행
- 결과 보고 — 각 Step 결과 + 최종 통합 기준 충족 여부
- 选择md文件
用户指定文件或从列表中选择bash
ls docs/e2e-suite/*.md - 解析md — 读取frontmatter + 场景流程
- 前置条件检查 — 读取md的前置条件章节,确认是否满足
- 执行确认 — 若为敏感会话/固定配置文件保留流程,实际步骤执行前需用户确认
- 顺序执行循环 — 每个步骤执行:
a. 执行单元场景:b. 执行失败时:应用peach-e2e-scenario的自动修复模式(错误解析 → DOM确认 → 修改 → 重新执行,最多3次) c. 验证点确认:通过agent-browser eval验证DOM/URL状态 d. 提取传递数据:将下一步所需数据保存至上下文(如orderId) e. 数据注入:下一步执行时通过环境变量传递(
cd e2e && ./e2e.sh run --tab N 시나리오/路径)E2E_ORDER_ID=xxx - 代码验证(若md中有对应章节) — 通过Read/Grep确认对应文件
- 数据库验证(若md中有对应章节) — 使用peach-db-query技能或直接执行SQL
- 结果报告 — 展示各步骤结果 + 最终集成标准是否满足
auto 모드 (기본)
auto模式(默认)
create → run 연속 실행. 생성 후 바로 실행하여 검증.
连续执行create → run。生成后立即执行并验证。
단계별 실패 처리
分步失败处理
| 상황 | 처리 |
|---|---|
| 단위 시나리오 실행 실패 | 자동수정 루프 3회 시도 (peach-e2e-scenario 패턴) |
| 자동수정 3회 실패 | 해당 Step에서 중단, 실패 보고 |
| 검증 포인트 불일치 | 기대값과 실제값을 보고, 사용자 판단 요청 |
| 코드/DB 검증 실패 | 불일치 내용 보고, 사용자 판단 요청 |
Step 실패 시 후속 Step은 실행하지 않는다 (데이터 의존성 때문).
| 场景 | 处理方式 |
|---|---|
| 单元场景执行失败 | 尝试自动修复循环3次(peach-e2e-scenario模式) |
| 自动修复3次失败 | 在该步骤终止,报告失败 |
| 验证点不匹配 | 展示预期值与实际值,请求用户判断 |
| 代码/数据库验证失败 | 展示不匹配内容,请求用户判断 |
步骤失败时,后续步骤停止执行(因存在数据依赖)。
데이터 전달 방식
数据传递方式
단위 시나리오는 독립 프로세스()로 실행되어 메모리 공유 불가.
AI가 중간 데이터를 컨텍스트에 유지하고, 환경변수로 주입한다.
nodebash
undefined单元场景以独立进程()执行,无法共享内存。
AI在上下文中保存中间数据,并通过环境变量注入。
nodebash
undefinedStep 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-템플릿.mdfrontmatter
frontmatter
yaml
---
name: 재처방-결제-검증
module: tang
created: 2026-04-14
---yaml
---
name: 续方-支付-验证
module: tang
created: 2026-04-14
---본문 구조
正文结构
markdown
undefinedmarkdown
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 runnode - 验证点以自然语言描述 — AI解析后通过agent-browser eval确认
- 步骤失败时禁止执行后续步骤(因数据依赖)
- 执行历史可从git log查看。suite md文件仅包含场景定义,不会因执行结果修改。
도구 역할 분담
工具职责划分
| 용도 | 도구 |
|---|---|
| 단위 시나리오 실행 | |
| 검증 포인트 확인 | |
| 코드 검증 | Read, Grep |
| DB 검증 | peach-db-query 또는 직접 SQL |
| iframe 검증 | |
| 用途 | 工具 |
|---|---|
| 单元场景执行 | |
| 验证点确认 | |
| 代码验证 | Read, Grep |
| 数据库验证 | peach-db-query或直接SQL |
| iframe验证 | |
참조 문서
参考文档
| 문서 | 용도 | 로드 조건 |
|---|---|---|
| md 생성 템플릿 | create, auto |
| 文档 | 用途 | 加载条件 |
|---|---|---|
| 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 {文件名}` — 重新执行该集成场景