Files
sam-scenarios/payment-history.json
김보곤 b2509ee2dc refactor: 28개 시나리오 JSON 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 14:14:09 +09:00

121 lines
3.7 KiB
JSON

{
"id": "payment-history",
"name": "결제내역 테스트",
"screenshotPolicy": {
"onErrorOnly": true,
"captureOn": ["error", "fail", "timeout", "404", "500", "blocked"]
},
"description": "회계관리 > 결제내역 메뉴의 결제 내역 조회 기능 테스트",
"baseUrl": "https://dev.codebridge-x.com",
"menuNavigation": {
"level1": "회계관리",
"level2": "결제내역",
"expectedUrl": "/payment-history",
"searchWithinParent": true,
"closeOtherMenus": true
},
"auth": {
"username": "TestUser5",
"password": "password123!"
},
"selectors": {
"pageTitle": "h1, h2, [class*='title'], [class*='Title']",
"dataTable": "table, [role='grid'], [class*='table'], [class*='Table']",
"tableHeader": "table thead th, table th, [role='columnheader']",
"tableRow": "table tbody tr, [role='row']:not(:first-child)",
"pagination": "[class*='pagination'], [class*='Pagination'], nav[aria-label*='page'], [class*='pager']",
"emptyMessage": "[class*='empty'], [class*='no-data'], [class*='noData']"
},
"steps": [
{
"id": 0,
"name": "사이드바 메뉴 전체 펼치기",
"actions": [
{
"type": "evaluate",
"script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})"
},
{ "type": "wait", "duration": 300 },
{
"type": "evaluate",
"script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()"
},
{ "type": "wait", "duration": 2000 }
]
},
{
"id": 1,
"name": "2단계 메뉴 진입: 회계관리 > 결제내역",
"action": "menu_navigate",
"level1": "회계관리",
"level2": "결제내역",
"expected": {
"url_contains": "/payment"
}
},
{
"id": 2,
"name": "페이지 로드 및 404 확인",
"action": "verify_url_stability",
"verification": {
"expected_url": "/payment"
}
},
{
"id": 3,
"name": "페이지 제목 확인",
"action": "evaluate",
"script": "(() => { const title = document.querySelector('h1, h2, [class*=\"title\"]'); return title && (title.innerText.includes('결제') || title.innerText.includes('Payment')); })()"
},
{
"id": 4,
"name": "테이블 구조 존재 확인",
"action": "verify_element",
"target": "dataTable"
},
{
"id": 5,
"name": "테이블 헤더 컬럼 확인",
"action": "verify_element",
"target": "tableHeader",
"verification": { "count": 1 }
},
{
"id": 6,
"name": "데이터 행 또는 빈 메시지 확인",
"action": "evaluate",
"script": "(() => { const rows = document.querySelectorAll('table tbody tr, [role=\"row\"]:not(:first-child)'); const empty = document.body.innerText.includes('데이터') && document.body.innerText.includes('없'); return rows.length > 0 || empty; })()"
},
{
"id": 7,
"name": "페이지네이션 존재 확인",
"action": "verify_element",
"target": "pagination"
},
{
"id": 8,
"name": "콘솔 에러 없음 확인",
"action": "evaluate",
"script": "true"
},
{
"id": 9,
"name": "최종 URL 안정성 확인",
"action": "verify_url_stability",
"verification": {
"expected_url": "/payment"
}
}
],
"expectedAPIs": [
{
"method": "GET",
"endpoint": "/api/v1/accounting/payments",
"description": "결제 내역 목록 조회"
}
],
"rollbackPlan": {
"note": "조회 전용 페이지로 데이터 변경 없음"
}
}