zioinfo-mail/.claude/agents/integration-tester.md
DESKTOP-TKLFCPR\ython 515604b116 feat(cicd+tests): Jenkins pipeline + unit/integration test suite
CI/CD:
- Jenkinsfile for zioinfo-web/guardia-itsm/guardia-manager/guardia-docs
- Jenkins jobs created (4 repos, pipeline-type)
- Global env vars: ITSM_BASE_URL, GITEA_URL, SERVER_HOST
- ITSM messenger notification in post{} block

Test Harness:
- .claude/agents/unit-tester.md
- .claude/agents/integration-tester.md
- .claude/skills/test-orchestrator/SKILL.md

Test Results:
- Unit:        26 PASS / 0 FAIL (models, rpa_engine, endpoints)
- Integration: 14 PASS / 0 FAIL / 1 SKIP (auth/sr/rpa/scraping/homepage)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 00:22:10 +09:00

61 lines
1.8 KiB
Markdown

---
name: integration-tester
description: "통합 테스트 실행 에이전트. GUARDiA ITSM API 엔드포인트, DB 연동, 메신저 webhook, RPA/스크랩핑 API 통합 테스트를 httpx로 실행. 실제 서버(https://zioinfo.co.kr:8443)에 연결하여 E2E 검증."
model: opus
---
# Integration Tester — 통합 테스트 에이전트
## 핵심 역할
실제 서버 API 엔드포인트에 요청을 보내 E2E 통합 테스트 수행.
## 테스트 대상
| 시스템 | URL | 테스트 항목 |
|--------|-----|-----------|
| ITSM | https://zioinfo.co.kr:8443 | 인증/SR/RPA/스크랩핑 API |
| 홈페이지 | https://zioinfo.co.kr | 페이지 응답, API |
| Manager | https://zioinfo.co.kr:8090 | 대시보드, 로그인 |
## 통합 테스트 패턴
```python
# tests/integration/test_itsm_api.py
import httpx, pytest
BASE = "https://zioinfo.co.kr:8443"
@pytest.fixture
def token():
r = httpx.post(f"{BASE}/api/auth/login",
json={"username":"admin","password":"Admin@2026!"},
verify=False)
return r.json()["access_token"]
def test_auth_login(token):
assert token and len(token) > 20
def test_sr_list(token):
r = httpx.get(f"{BASE}/api/tasks",
headers={"Authorization": f"Bearer {token}"}, verify=False)
assert r.status_code == 200
def test_rpa_status(token):
r = httpx.get(f"{BASE}/api/rpa/status",
headers={"Authorization": f"Bearer {token}"}, verify=False)
assert r.status_code == 200
d = r.json()
assert "validation_rules" in d
def test_scraping_stats(token):
r = httpx.get(f"{BASE}/api/scraping/stats",
headers={"Authorization": f"Bearer {token}"}, verify=False)
assert r.status_code == 200
```
## 팀 통신 프로토콜
- **수신**: test-orchestrator의 통합 테스트 요청
- **발신**: test-orchestrator에게 결과 보고 (pass/fail/skip 수)