실제 현업에서 개발하는 API는 단순히 GET요청도 있지만 인증 등이 들어가고 복잡한 데이터를 POST로 요청하는 경우가 많은데
과연 LLM을 이용해서 대화형으로 사용자가 부하테스트를 할 수 있게 구현이 가능한지 궁금증이 들어 시작을 했다.
문제는 크게 3가지같다.
1. 다양한 데이터를 어떻게 활용하게 할지 ( 예를들어 로그인 api테스트면 여러 ID를 만드는 가입절차까지 스스로 만들게 하는건 어려워보이기 때문에 이미 만들어진 계정을 넘겨줘야 하는데, 어떻게 넘겨줄지)
2. 스크립트를 어떻게 전달할 것인가
- 스크립트 생성까지 llm이 한다면 검증이 필요한데, 검증은 무조건 스모크테스트처럼 부하를 조금이라도 쏴봐야 한다.
- 기본적인 스크립트를 줄것인가 ( 그럼 왜 이 llm을 이용하는지에 대한 강점을 확실하게 줘야함 )
3. API을 알려주면 어떻게 llm이 이해를 하고 스크립트를 짤것인가, 또는 만들어진 스크립트를 활용할 것인가
- 스웨거 json을 이용해야하나?
--개인 메모 -----------
FLOW: 사용자 요청 → LLM 스크립트 생성 → 검증 단계 → 실행 → 결과 보고
검증 단계에서는:
- 문법 검사: k6 스크립트의 문법적 오류 확인
- 안전성 검사: 위험한 코드나 무한 루프 등 확인
- 테스트 실행 가능성 검사: 필수 파라미터 누락 여부 확인
점진적 실행 접근법
- 스모크 테스트 먼저 실행: 생성된 스크립트를 먼저 최소한의 VU(1~2개)로 짧은 시간(5-10초) 실행
- 결과 확인 후 전체 테스트: 스모크 테스트가 성공하면 전체 테스트 실행
템플릿 기반 접근법
- 완전히 자유로운 스크립트 생성 대신, 검증된 템플릿을 사용하고 LLM은 파라미터만 채우는 방식
피드백 루프 구현 ( 이건 랭그래프로 복잡한 구조가 될 듯 )
- 사용자 피드백을 통해 스크립트를 개선하는 메커니즘
실용적인 구현 방안
위 접근법들을 종합하여 다음과 같은 실용적인 구현을 제안합니다:
- 단계적 접근:
- 1단계: 템플릿 기반 + 파라미터 추출 (안전하게 시작)
- 2단계: 제한된 자유도의 스크립트 생성 + 검증
- 3단계: 완전 자유도의 스크립트 생성 + 강력한 검증
- 하이브리드 접근법:
- 핵심 구조는 템플릿 기반으로 유지
- 동적 부분(페이로드, 검증 로직 등)은 LLM이 생성
- 생성된 코드는 샌드박스에서 검증 후 통합
- 사용자 지식 활용:
- "이 API는 JWT 인증이 필요해" 같은 사용자 힌트 활용
- 이전에 성공한 테스트 패턴 재활용
- 점진적 학습:
- 성공한 스크립트를 데이터베이스에 저장
- 새로운 스크립트 생성 시 유사한 성공 사례 참조
'AI' 카테고리의 다른 글
[devopsTool] 기본적인 구조 (0) | 2025.05.02 |
---|---|
[devopsTool] k6, argocd 시나리오 수립 (0) | 2025.04.20 |
[Agentic AI] 랭그래프 기반 개발을 해보며 생각한 것들 (개인 생각 정리 공간) (1) | 2025.04.19 |
[devopsTool] MCP와 오픈소스들을 활용한 개발자 도구 만들기 (1) | 2025.04.12 |
LLM모델들을 이용해 개발할때 필요한 내용들을 기록할 예정... (0) | 2025.02.19 |