Files
aio-01d4-stu/Last3Mon/76/answers/02-lab01-before.txt
T

265 lines
8.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
$ uv run tools/flow.py test cases/lab01.json --webhook base-intake -v
✔ before: POST http://localhost:8800/tickets-reset · HTTP 200 · 0.0s · {"cleared": 8}
→ request POST http://localhost:8800/tickets-reset
{}
← response HTTP 200
{
"cleared": 8
}
✔ before: POST http://localhost:8800/dlq-clear · HTTP 200 · 0.0s · {"cleared": 0}
→ request POST http://localhost:8800/dlq-clear
{}
← response HTTP 200
{
"cleared": 0
}
✔ before: POST http://localhost:8800/alerts-clear · HTTP 200 · 0.0s · {"cleared": 0}
→ request POST http://localhost:8800/alerts-clear
{}
← response HTTP 200
{
"cleared": 0
}
✔ before: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}
POST http://localhost:5678/webhook/base-intake · 6 case(s) × 1
✘ 정상 3건 · 2.7s · created = null (expected 3); failed = null (expected 0); rejected = null (expected 0)
→ request POST /webhook/base-intake
{
"requests": [
{
"id": "R-101",
"user": "이준호",
"text": "VPN이 아침부터 계속 끊겨서 고객 미팅을 못 하고 있어요"
},
{
"id": "R-102",
"user": "박서연",
"text": "새 모니터를 하나 더 받을 수 있을까요?"
},
{
"id": "R-103",
"user": "최유진",
"text": "엑셀 라이선스가 만료됐다고 나와요"
}
]
}
← response HTTP 200
{
"processed": 3,
"tickets": [
"T-2001",
"T-2002",
"T-2003"
]
}
✘ 같은 요청을 다시 보내도 중복 없음 · 3.1s · created = null (expected 3); duplicates = null (expected 3)
→ request POST /webhook/base-intake
{
"requests": [
{
"id": "R-101",
"user": "이준호",
"text": "VPN이 아침부터 계속 끊겨서 고객 미팅을 못 하고 있어요"
},
{
"id": "R-102",
"user": "박서연",
"text": "새 모니터를 하나 더 받을 수 있을까요?"
},
{
"id": "R-103",
"user": "최유진",
"text": "엑셀 라이선스가 만료됐다고 나와요"
}
]
}
← response HTTP 200
{
"processed": 3,
"tickets": [
"T-2004",
"T-2005",
"T-2006"
]
}
✘ 만들어진 접수 건은 3개 · 0.0s · count = 6 (expected 3)
→ request POST http://localhost:8800/tickets-created/list
{}
← response HTTP 200
{
"count": 6,
"tickets": [
{
"ticket_id": "T-2001",
"key": "10061-0",
"title": "VPN이 아침부터 계속 끊겨서 고객 미팅을 못 하고 있어요",
"requester": "이준호",
"category": "네트워크",
"priority": "높음"
},
{
"ticket_id": "T-2002",
"key": "10061-1",
"title": "새 모니터를 하나 더 받을 수 있을까요?",
"requester": "박서연",
"category": "장비",
"priority": "낮음"
},
{
"ticket_id": "T-2003",
"key": "10061-2",
"title": "엑셀 라이선스가 만료됐다고 나와요",
"requester": "최유진",
"category": "소프트웨어",
"priority": "높음"
},
{
"ticket_id": "T-2004",
"key": "10062-0",
"title": "VPN이 아침부터 계속 끊겨서 고객 미팅을 못 하고 있어요",
"requester": "이준호",
"category": "네트워크",
"priority": "높음"
},
{
"ticket_id": "T-2005",
"key": "10062-1",
"title": "새 모니터를 하나 더 받을 수 있을까요?",
"requester": "박서연",
"category": "장비",
"priority": "보통"
},
{
"ticket_id": "T-2006",
"key": "10062-2",
"title": "엑셀 라이선스가 만료됐다고 나와요",
"requester": "최유진",
"category": "소프트웨어",
"priority": "높음"
}
]
}
✘ 잘못된 항목은 그 항목만 거절 · 3.4s · status 500 (expected 200); created = null (expected 2); rejected = null (expected 1); failed = null (expected 0); results has none of ['text is required']
→ request POST /webhook/base-intake
{
"requests": [
{
"id": "R-201",
"user": "한지훈",
"text": "프린터 용지가 걸려요"
},
{
"id": "R-202",
"user": "한지훈",
"text": ""
},
{
"id": "R-203",
"user": "김민지",
"text": "메일 첨부가 안 열려요"
}
]
}
← response HTTP 500
{
"message": "Error in workflow"
}
✘ 목록이 아니면 400 · 0.1s · status 500 (expected 400)
→ request POST /webhook/base-intake
{
"requests": "VPN이 끊겨요"
}
← response HTTP 500
{
"message": "Error in workflow"
}
✔ before: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "flaky", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"tickets": "flaky"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "flaky",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}
✘ 가끔 실패하는 API · 다시 해 보기로 성공 · 2.0s · status 500 (expected 200); created = null (expected 2); failed = null (expected 0)
→ request POST /webhook/base-intake
{
"requests": [
{
"id": "R-301",
"user": "정우성",
"text": "사내 위키 로그인이 안 돼요"
},
{
"id": "R-302",
"user": "이준호",
"text": "노트북 배터리가 금방 닳아요"
}
]
}
← response HTTP 500
{
"message": "Error in workflow"
}
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}
Passed 0/6
report: runs/lab01-20261029-141145.json
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}