원클릭으로
testdriver-hosted
// The fastest way to get started with TestDriver. Just set your API key and start testing.
// The fastest way to get started with TestDriver. Just set your API key and start testing.
| name | testdriver:hosted |
| description | The fastest way to get started with TestDriver. Just set your API key and start testing. |
Hosted pricing is based on device-seconds: the amount of time your tests run on our infrastructure.
- 1 Concurrent Sandbox
- 60 Minutes Included
- 1 Team User
- Community Support
**$20/month**
- 2 Concurrent Sandboxes
- 600 Minutes Included
- Overage: $0.002/second
- 1 Team User
- Test Recordings
- Community Support
**$600/month**
- 8 Concurrent Sandboxes
- 10,000 Minutes Included
- Overage: $0.001/second
- 5 Team Users
- Test Recordings
- Private Support
- Test Analytics
- CPU, RAM, & Network Profiles
Hosted is the default when you follow the Quickstart guide.
<Card
title="Try the Quickstart"
icon="play"
href="/v7/quickstart"
Set your API key and start testing in minutes.
Your account has a set number of license slots that determine how many devices can run simultaneously. You can view your available slots in the TestDriver Dashboard.
**When is a slot in use?** A license slot is occupied when a test client is connected. As soon as your device is destroyed the slot becomes available immediately.To prevent tests from failing due to exceeding your license slot limit, we recommend two key configurations:
Limit concurrent tests to match your available license slots:```javascript vitest.config.mjs
import { defineConfig } from 'vitest/config';
import { TestDriver } from 'testdriverai/vitest';
export default defineConfig({
test: {
testTimeout: 900000,
hookTimeout: 900000,
maxConcurrency: 5, // Set to your license slot limit
reporters: ['default', TestDriver()],
setupFiles: ['testdriverai/vitest/setup'],
},
});
```
<Tip>
Check your slot count at [console.testdriver.ai](https://console.testdriver.ai) and set `maxConcurrency` to that number or lower.
</Tip>
Prevent multiple workflow runs from competing for the same slots by using [GitHub's concurrency controls](https://docs.github.com/actions/writing-workflows/choosing-what-your-workflow-does/control-the-concurrency-of-workflows-and-jobs):
```yaml .github/workflows/test.yml
name: Tests
on:
push:
branches: [main]
pull_request:
# Prevent concurrent runs from competing for license slots
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Run tests
run: vitest run
env:
TD_API_KEY: ${{ secrets.TD_API_KEY }}
```
The `concurrency` block ensures:
- Only one workflow run per branch runs at a time
- New pushes cancel in-progress runs on the same branch
- Different branches/PRs can run in parallel (up to your slot limit)
Hosted is perfect for getting started and for teams that want zero infrastructure management. However, you might consider Self-Hosted if you:
<Card title="Explore Self-Hosted" icon="server" href="/v7/self-hosted"
Learn about self-hosting for unlimited test execution at a flat rate.
Self-hosted enterprise deployments with assisted setup and dedicated support
Execute natural language tasks using AI
Run your first computer-use test in minutes.
Our enterprise solution with unlimited test execution, assisted setup, and dedicated support.
Per-test JSON result files with metadata, versions, and infrastructure details
Locate UI elements using natural language