Raw 레코딩 시나리오를 수동 cleanup 없이 재생 가능하게 #14
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
배경
Smoke 2회차 첫 E2E 성공(
2026-04-08_smoke-2회차-첫-e2e-성공.md)은scenarios/box-v5-clean.yaml로 달성했다. 그러나 이는 원본box-v5.yaml(676줄)을 AI로 수작업 정리해 54줄로 축약한 파일이다. 즉 raw 레코딩 그대로는 재생 불가였던 상태.이슈 #13에서 root cause 3건을 수정했다:
FocusEventFilter로 SUT ProcessId 필터WindowPointResolverSUT scope fallback목표
box-v5.yaml(cleanup 없이 raw 그대로)을 player로 재생해 Box geometry가 생성되는 것을 검증한다. 성공 시 cleanup 단계를 워크플로우에서 제거할 수 있다.Definition of Done
dotnet run --project src/Recordingtest.Player -- --scenario scenarios/box-v5.yaml --output-dir artifacts/replay-v5-raw --no-launch실행비목표
관련
docs/history/2026-04-08_smoke-2회차-첫-e2e-성공.mdscenarios/box-v5.yaml(raw, 676줄) vsscenarios/box-v5-clean.yaml(54줄)Raw 시나리오 E2E 성공 🎉
scenarios/box-v6.yaml원본(AI 후처리 없음) → Player 재생 → Box geometry 생성 확인.해결 방식: recorder를 재공사하는 대신 Player가 record→replay gap을 흡수하도록 포스트프로세싱 추가. (recorder Gap I-1은 follow-up.)
변경 (commit
70bf570)host.Type()Step.RawCoord필드 추가UiaPlayerHost.BringSutToForeground()(SetForeground + Focus + 600ms settle) — 재생 시작 전 1회Step.Ts+IPlayerHost.Delay(150ms~3s 클램프). 엔진 내부Thread.Sleep금지 DoD 유지하려 host로 위임라이브 결과
1차 시도 실패 / 2차 성공. foreground settle이 경계선(600ms) — 1차에 "BOX" 타이핑이 부분 누락됨. Follow-up 등록.
Follow-up
GetForegroundWindow == sut_hwnd능동 대기 또는 Keyboard warm-up. PLAN.md P1.Automation.FocusedElement직접 쿼리해 typeRes 채우기. PLAN.md P1.토큰 사용량
DoD 달성도
Raw box-v6.yaml 재생 명령 실행✓SUT에 Box geometry 생성✓ (2차 시도)시나리오 편집 없이 해결✓ (recorder는 이번 수정 없음, player만)Close 가능 — 안정화 follow-up은 별개 이슈로 추적.