<div align="center">
<img src="https://raw.githubusercontent.com/QAInsights/jmeter-ai/HEAD/images/feather-wand.png" alt="Feather Wand logo" width="140">
🪶 Feather Wand
Apache JMeter용 AI 기반 어시스턴트
Release
PerfAtlas
License
Stars
Features · Install · Configure · Commands · Changelog
</div>
🪄 왜 "Feather Wand"인가요? 제 아이들이 Bluey 에피소드에서 이름을 따왔는데, 그 에피소드에서는 단순한 깃털이 평범한 것을 특별하게 바꾸는 마법 지팡이가 됩니다. 이 플러그인도 JMeter 워크플로우에 정확히 그런 역할을 합니다.
🤩 Feather Wand showcase에서 프로젝트를 자랑해 보세요.
🔒 익명 사용량 원격 측정(Anonymous usage telemetry): v3.8.6부터 Feather Wand는 하루에 한 번의 익명 Ping을 전송하여 얼마나 많은 사람이 이 플러그인을 사용하는지, 그리고 어떤 기능이 중요한지 확인할 수 있습니다. 프롬프트, 키 또는 테스트 계획 내용은 절대 사용자 장치를 벗어나지 않습니다. 수집되는 내용 및 비활성화 방법 보기.
<div align="center">
<img src="https://raw.githubusercontent.com/QAInsights/jmeter-ai/HEAD/images/feather-wand-agent-demo.gif" alt="Feather Wand Agent Mode building a JMeter load test from one prompt" width="800">
<sub>Agent Mode는 단일 프롬프트만으로 어설션(assertion)과 요약 보고서(Summary Report)가 포함된 사용자 20명의 부하 테스트를 생성합니다 (3배속).</sub>
<img src="https://raw.githubusercontent.com/QAInsights/jmeter-ai/HEAD/images/Feather-Wand-AI-Agent-JMeter.png" alt="Feather Wand Chat UI" width="700">
</div>
📑 목차
✨ 기능 (Features)
| |
|---|
| 🤖 멀티 모델 채팅 (Multi-Model Chat) | API 기반의 Claude, OpenAI, Google Gemini, DeepSeek, Ollama, Grok (xAI), OpenRouter, Meta Muse 또는 AWS Bedrock 모델과 대화하거나, CLI로 관리되는 ChatGPT/Codex, Claude Code, 또는 OpenCode 계정을 사용할 수 있습니다. |
| ... | |
📥 설치 (Installation)
필수 요구 사항: Apache JMeter 5.6.3 이상 버전이 Java 17 또는 그 이상에서 실행되어야 합니다. Feather Wand는 Java 17 (클래스 버전 61)용으로 컴파일되었지만, JMeter 자체는 Java 8 이상에서 실행됩니다. Java 8 또는 11에서는 JMeter가 플러그인을 로드할 수 없으며 도구 모음 버튼이 나타나지 않습니다.
java -version을 사용하거나 JMeter의 jmeter.log 파일에서 확인하세요.
플러그인 매니저 (Plugins Manager) (권장)
1. JMeter Plugins Manager 설치 → https://jmeter-plugins.org/
2. JMeter 재시작
3. 플러그인 매니저 열기 → 사용 가능한 플러그인(Available Plugins)
...
수동 설치 (Manual Installation)
1. 릴리스(Releases)에서 최신 JAR 파일 다운로드
2. JMeter의 lib/ext 디렉터리에 넣기
3. jmeter-ai-quickstart.properties 파일을 JMeter의 bin/user.properties에 붙여넣기
...
최신 JAR 파일은 Releases에서 확인하세요.
⚙️ 설정 (Configuration)
처음 사용하시나요? jmeter-ai-quickstart.properties 파일을 JMeter의 bin/user.properties에 붙여넣고, 제공자(provider) 중 하나를 주석 해제하고 해당 키를 추가하세요 (Ollama 및 Apple on-device는 필요 없음):
Feather Wand 패널의 ⋯ 메뉴 > 제공자 연결(Connect a provider)에서 제공자를 연결하고, JMeter를 재시작하지 않고도 Chat 모드와 Agent Mode에서 즉시 사용할 수 있습니다. Smart routing 및 Apple on-device 설정 또한 이 대화 상자에서 구성할 수 있습니다. 아래에 수동으로 명시된 속성들은 계속 문서화되어 있습니다. JSR223 리팩터 메뉴는 JMeter 재시작 후 새로운 제공자를 인식합니다.
jmeter.ai.service.type=anthropic
anthropic.api.key=YOUR_ANTHROPIC_API_KEY
이것이 Feather Wand가 필요로 하는 모든 것입니다. 다른 모든 설정은 기본값이 있습니다. jmeter-ai-sample.properties가 전체 참조 자료입니다: 여기서 변경하려는 설정만 복사하여 user.properties (또는 jmeter.properties)에 붙여넣으세요. 아래 표들은 각 설정과 그 기본값을 나열합니다.
일반 설정 (General Settings)
| Property | Description | Default |
|---|
jmeter.ai.streaming.enabled | AI 응답을 토큰 단위로 스트리밍 활성화 | true |
| ... | | |
AI 서비스 설정 (AI Service Settings)
<details>
<summary><b>Anthropic (Claude)</b></summary>
| Property | Description | Default |
|---|
anthropic.api.key | Claude API 키 | 필수 (헤더를 통해 인증하는 게이트웨이 뒤에 있는 경우 선택 사항) |
| ... | | |
</details>
<details>
<summary><b>OpenAI</b></summary>
| Property | Description | Default |
|---|
openai.api.key | OpenAI API 키 | 필수 (헤더를 통해 인증하는 게이트웨이 뒤에 있는 경우 선택 사항) |
| ... | | |
</details>
<details>
<summary><b>Apple on-device (macOS)</b></summary>
<details>
<summary><b>애플 온디바이스(Apple on-device)</b></summary>
애플 온디바이스는 채팅 모델 선택기 및 JSR223 Refactor에서 사용 가능합니다. 애플 온디바이스가 선택된 동안에는 Agent 옵션이 비활성화되며, Record Mode에서는 사용할 수 없습니다. 이 기능은 Apple의 FoundationModels 프레임워크를 로컬에서 사용하므로 API 키나 네트워크 추론 서비스(network inference service)가 필요하지 않습니다. 해당 모델은 약 4K 토큰 컨텍스트 창을 가집니다.
요구 사항: macOS 26 이상, 애플 실리콘(Apple silicon), 시스템 설정(System Settings)에서 Apple Intelligence 활성화.
모델은 헬퍼가 사용 가능하다고 보고할 때만 선택기(picker)에 나타납니다.
| 속성 (Property) | 설명 (Description) | 기본값 (Default) |
|---|
apple.enabled | 애플 온디바이스 모델 검색 활성화 | true |
| ... | | |
The 번들된 헬퍼는 macOS arm64용입니다. 재빌드하려면 native/apple-fm/README.md를 참조하십시오.</details>
<details>
<summary><b>ChatGPT / Codex (CLI 관리 계정; 플러그인 API 키 불필요)</b></summary>
로컬 Codex CLI에서 관리하는 인증을 사용합니다. 일반적으로 ChatGPT를 사용하지만, Codex 내부에 구성된 API 키도 인식됩니다. Feather Wand는 이 제공자(provider)에 대해 openai.api.key를 요구하거나 검사하지 않습니다. ChatGPT / Codex로 Feather Wand 사용하기를 참조하십시오.
| 속성 (Property) | 설명 (Description) | 기본값 (Default) |
|---|
jmeter.ai.codex.enabled | 재시작 후 선택기에서 ChatGPT/Codex 상태 및 모델 표시 | false |
| ... | | |
</details>
<details>
<summary><b>Claude Code (CLI 관리 계정; 플러그인 API 키 불필요)</b></summary>
로컬 Claude Code CLI에서 관리하는 인증을 사용하며, 여기에는 Claude 구독, Anthropic 콘솔 키 또는 지원되는 클라우드 자격 증명이 포함됩니다. Feather Wand는 이 제공자에 대해 anthropic.api.key를 요구하거나 검사하지 않습니다. Claude Code로 Feather Wand 사용하기를 참조하십시오.
| Property | Description | Default |
|---|
jmeter.ai.claudecode.provider.enabled | 재시작 후 피커에서 Claude Code 상태 및 모델을 표시합니다. | false |
| ... | | |
</details>
<details>
<summary><b>OpenCode CLI (무료 모델 또는 CLI 관리형 제공업체)</b></summary>
OpenCode의 무료 모델은 로그인 없이 작동합니다. 다른 제공업체는 OpenCode가 관리하는 자격 증명을 사용합니다. Feather Wand는 해당 자격 증명을 읽거나 저장하지 않습니다.
| Property | Description | Default |
|---|
jmeter.ai.opencode.enabled | OpenCode 채팅 및 에이전트 모드 제공업체를 활성화합니다. | false |
| ... | | |
Feather Wand는 OpenCode를 비어 있는 임시 디렉터리에서 실행합니다. 해당 디렉터리 외부의 파일 쓰기, 셸 및 웹 도구는 거부되며, 읽기도 마찬가지입니다. 계획 편집은 Feather Wand 자체 JMeter 도구가 수행합니다. 속성을 수정하지 않고 OpenCode를 활성화하려면 **제공업체 연결(Connect a provider)**을 열고 OpenCode를 선택한 다음, **연결 테스트(Test connection)**를 클릭하고 **저장 및 연결(Save and connect)**을 누르십시오. JMeter를 재시작할 필요 없이 즉시 적용됩니다. 수동 대안으로 user.properties 파일에 jmeter.ai.opencode.enabled=true를 설정하고, 선택적으로 jmeter.ai.opencode.executable=/path/to/opencode를 추가하십시오. | | |
이 채팅 및 에이전트 모드 제공업체는 대화형 터미널 탭을 제어하는 jmeter.ai.terminal.opencode.*와는 별개입니다.
</details>
이러한 채팅 및 에이전트 모드 제공업체는 별도의 대화형 터미널 탭을 제어하는 jmeter.ai.terminal.* 통합 기능이 아닙니다.
<details>
<summary><b>Google Gemini</b></summary>
| Property | Description | Default |
|---|
google.api.key | Google AI API 키 | 필수 |
| ... | | |
</details>
<details>
<summary><b>Ollama (로컬)</b></summary>
| Property | Description | Default |
|---|
ollama.host | 서버 호스트 | http://localhost |
| ... | | |
⚠️ 만약 ollama.thinking.mode=ENABLED인 경우, ollama.request.timeout.seconds를 최소 300으로 높이십시오.
</details>
<details>
<summary><b>Grok (xAI)</b></summary>
| 속성 | 설명 | 기본값 |
|---|
grok.api.key | xAI API 키 | 필수 |
| ... | | |
</details>
<details>
<summary><b>OpenRouter</b></summary>
OpenRouter는 채팅(Chat) 및 에이전트 모드(Agent Mode)에 대해 OpenAI와 호환되는 Chat Completions API를 사용합니다. 이 키는 OpenRouter Decisions와 공유됩니다.
모델 선택기(model picker)는 도구 지원을 광고하는 모델만 요청하므로, 나열된 모든 모델은 에이전트 모드(Agent Mode)로 사용될 수 있습니다.
| 속성 | 설명 | 기본값 |
|---|
openrouter.api.key | OpenRouter API 키 (OpenRouter Decisions와 공유됨) | 필수 |
| ... | | |
모델 목록은 supported_parameters=tools를 사용하여 OpenRouter에서 가져옵니다. 실시간 도구 사용 가능 카탈로그에 누락된 추천 ID는 건너뜁니다. OpenRouter 출처 헤더(attribution headers)는 요청을 JMeter 및 Feather Wand로 식별합니다. | | |
</details>
<details>
<summary><b>DeepSeek</b></summary>
| 속성 | 설명 | 기본값 |
|---|
deepseek.api.key | DeepSeek API 키 | 필수 |
| ... | | |
</details>
<details>
<summary><b>Meta Muse</b></summary>
| 속성 | 설명 | 기본값 |
|---|
meta.api.key | Meta AI API 키 | 필수 |
| ... | | |
</details>
<details>
<summary><b>AWS Bedrock</b></summary>
Feather Wand는 채팅 요청에 대해 Bedrock의 표준화된 Converse 및 ConverseStream API를 사용합니다. 이는 제공업체별 페이로드 포매터(payload formatter)를 요구하는 대신, 호환되는 Anthropic, Meta, Mistral, MiniMax, Amazon 및 기타 Bedrock 텍스트 생성 모델 전반에 걸쳐 단일 요청 및 스트리밍 형식을 제공합니다.
| 속성 | 설명 | 기본값 |
|---|
bedrock.api.key | Bedrock API 키 (bearer token) | (비어 있음) |
| ... | | |
| 인증 우선순위: Bedrock API 키, IAM 액세스 키 및 비밀 키, 그 다음 AWS 기본 자격 증명 체인입니다. 자격 증명을 속성 파일이나 소스 저장소에 커밋하지 마십시오. | | |
</details>
모델 검색(Model discovery): 선택기에는 bedrock.model.providers와 일치하는 활성화된 텍스트 처리 기반 모델(foundation models)과 활성 시스템 정의 추론 프로필(inference profiles)이 포함됩니다. 추론 프로필은 표시되기 전에 합의(agreement), 권한 부여(authorization), 자격(entitlement), 그리고 지역 가용성에 대해 확인됩니다. 이미지, 임베딩(embedding), 재순위 지정(reranking), 음성 모델과 같은 모델은 채팅 선택기에서 제외됩니다.