How the TestDriver agent behaves on GitHub issues, pull requests, and @mentions
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create the TestDriver client, authenticate, and connect to a sandbox
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
The TestDriver client is the main entry point for the SDK. It does the authentication and the sandbox connection. It gives access to all test methods.
const testdriver = new TestDriver(apiKey, options)
import TestDriver from 'testdriverai';
// API key is automatically loaded from TD_API_KEY in .env
const testdriver = new TestDriver({
os: 'windows',
resolution: '1920x1080',
logging: true,
analytics: true
});
// With AI config for stricter verification
const testdriver = new TestDriver({
ai: { temperature: 0, top: { p: 0.9, k: 40 } }
});
// Or pass API key explicitly
const testdriver = new TestDriver('your-api-key', {
os: 'windows'
});
Authenticate with the TestDriver API.
await testdriver.auth()
Returns: Promise<string> - Authentication token
Example:
await testdriver.auth();
<Note>
You must call `auth()` before `connect()`. Most examples call both sequentially.
</Note>
Connect to a sandbox environment. This creates or reconnects to a virtual machine where your tests will run.
await testdriver.connect(options)
<ParamField path="sandboxId" type="string">
Existing sandbox ID to reconnect to
</ParamField>
<ParamField path="ip" type="string">
Direct IP address to connect to (for self-hosted sandboxes)
</ParamField>
<ParamField path="sandboxAmi" type="string">
AMI to use for the sandbox (AWS deployments)
</ParamField>
<ParamField path="sandboxInstance" type="string">
Instance type for the sandbox (AWS deployments)
</ParamField>
<ParamField path="preview" type="string" default="browser">
Preview mode for live test visualization:
- `"browser"` - Opens debugger in default browser (default)
- `"ide"` - Opens preview in IDE panel (VSCode, Cursor - requires TestDriver extension)
- `"none"` - Headless mode, no visual preview
</ParamField>
<ParamField path="headless" type="boolean" default="false">
**Deprecated**: Use `preview: "none"` instead. Run in headless mode without opening the debugger.
</ParamField>
<ParamField path="keepAlive" type="number" default="60000">
Keep sandbox alive for the specified number of milliseconds after disconnect. Set to `0` to terminate immediately on disconnect. Useful for debugging or reconnecting to the same sandbox.
</ParamField>
</Expandable>
</ParamField>
Returns: Promise<Object> - Sandbox instance details including instanceId, ip, vncPort, etc.
Basic connection:
await testdriver.connect();
Reconnect to existing sandbox:
const instance = await testdriver.connect({
sandboxId: 'existing-sandbox-id-123'
});
Self-hosted sandbox:
await testdriver.connect({
ip: '192.168.1.100'
});
Disconnect from the sandbox and clean up resources.
await testdriver.disconnect()
Returns: Promise<void>
Example:
afterAll(async () => {
await testdriver.disconnect();
});
Get the current sandbox instance details.
const instance = testdriver.getInstance()
Returns: Object | null - Sandbox instance information
Example:
const instance = testdriver.getInstance();
console.log('Instance ID:', instance.instanceId);
console.log('IP Address:', instance.ip);
Get the current session ID for tracking and debugging.
const sessionId = testdriver.getSessionId()
Returns: string | null - Session ID
Example:
const sessionId = testdriver.getSessionId();
console.log('Session:', sessionId);
Enable or disable console logging at runtime.
testdriver.setLogging(enabled)
Parameters:
enabled (boolean) - Whether to enable loggingExample:
// Disable logging for cleanup operations
testdriver.setLogging(false);
await testdriver.disconnect();
testdriver.setLogging(true);
Get the event emitter for custom event handling.
const emitter = testdriver.getEmitter()
Returns: EventEmitter2 - Event emitter instance
Example:
const emitter = testdriver.getEmitter();
emitter.on('command:start', (data) => {
console.log('Command started:', data);
});
emitter.on('command:success', (data) => {
console.log('Command succeeded:', data);
});
emitter.on('command:error', (error) => {
console.error('Command failed:', error);
});
import { beforeAll, afterAll, describe, it } from 'vitest';
import TestDriver from 'testdriverai';
describe('My Test Suite', () => {
let testdriver;
beforeAll(async () => {
// Initialize client - API key loaded automatically from .env
testdriver = new TestDriver({
os: 'windows',
resolution: '1366x768',
logging: true
});
// Set up event listeners
const emitter = testdriver.getEmitter();
emitter.on('log:info', (msg) => console.log('[INFO]', msg));
// Authenticate and connect
await testdriver.auth();
const instance = await testdriver.connect();
console.log('Connected to sandbox:', instance.instanceId);
});
afterAll(async () => {
await testdriver.disconnect();
});
it('runs a test', async () => {
// Your test code here
});
});
```javascript
try {
await testdriver.connect();
} catch (error) {
console.error('Failed to connect:', error.message);
throw error;
}
```
</Accordion>
<Accordion title="Always disconnect">
Use `afterAll` or try-finally blocks to ensure `disconnect()` is called even if tests fail. This prevents orphaned sandboxes.
</Accordion>
<Accordion title="Use environment variables for API keys">
Never hardcode API keys. The SDK automatically loads `TD_API_KEY` from your `.env` file:
```bash .env
TD_API_KEY=your_api_key_here
```
```javascript
// API key is loaded automatically - no need to pass it!
const testdriver = new TestDriver();
```
</Accordion>
</AccordionGroup>아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
How the TestDriver agent behaves on GitHub issues, pull requests, and @mentions
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Execute natural language tasks using AI
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Make AI-powered assertions about screen state
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Deploy TestDriver on your AWS infrastructure using CloudFormation
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Speed up tests with screenshot-based caching
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
How TestDriver learns your app and caches what it discovers for instant, deterministic replays
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.