How the TestDriver agent behaves on GitHub issues, pull requests, and @mentions
中文简介正在准备中。当前显示原文说明。
Securely manage passwords and sensitive data in your tests
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
Protect sensitive information such as passwords, API keys, and tokens in your TestDriver tests.
When you type sensitive information such as passwords, use the secret: true option. This stops TestDriver from a log or a store of the value:
import { test } from 'vitest';
import { chrome } from 'testdriverai/presets';
test('login with secure password', async (context) => {
const { testdriver } = await chrome(context, {
url: 'https://myapp.com/login'
});
await testdriver.find('email input').click();
await testdriver.type(process.env.TD_USERNAME);
await testdriver.find('password input').click();
// Password is masked in logs and recordings
await testdriver.type(process.env.TD_PASSWORD, { secret: true });
await testdriver.find('login button').click();
await testdriver.assert('dashboard is visible');
});
<Note>
When you set `secret: true`, the typed text shows as `****` in all logs, recordings, and dashcam output.
</Note>
Store sensitive credentials as GitHub repository secrets. Then they are never in your code:
<Steps> <Step title="Navigate to Repository Settings"> Go to your GitHub repository → **Settings** → **Secrets and variables** → **Actions** </Step> <Step title="Add Repository Secrets"> Click **New repository secret** and add your secrets: - `TD_API_KEY` - Your TestDriver API key - `TD_USERNAME` - Test account username - `TD_PASSWORD` - Test account password </Step> <Step title="Use in GitHub Actions"> Reference secrets in your workflow file: ```yaml .github/workflows/test.yml - name: Run TestDriver tests env: TD_API_KEY: ${{ secrets.TD_API_KEY }} TD_USERNAME: ${{ secrets.TD_USERNAME }} TD_PASSWORD: ${{ secrets.TD_PASSWORD }} run: vitest run ``` </Step> </Steps>For local development, store secrets in a .env file:
TD_API_KEY=your_api_key_here
TD_USERNAME=testuser@example.com
TD_PASSWORD=your_secure_password
<Warning>
Never commit `.env` files to version control. Add `.env` to your `.gitignore` file.
</Warning>
Here's a full login test with proper secrets handling:
import { test, expect } from 'vitest';
import { chrome } from 'testdriverai/presets';
test('secure login flow', async (context) => {
const { testdriver } = await chrome(context, {
url: process.env.TD_WEBSITE || 'https://staging.myapp.com'
});
// Enter username (not sensitive)
await testdriver.find('email input').click();
await testdriver.type(process.env.TD_USERNAME);
// Enter password securely
await testdriver.find('password input').click();
await testdriver.type(process.env.TD_PASSWORD, { secret: true });
// Submit login
await testdriver.find('login button').click();
// Verify successful login
const loggedIn = await testdriver.assert('user is logged in');
expect(loggedIn).toBeTruthy();
});
<Card title="Secrets Best Practices" icon="shield-check">
- **Always use `secret: true`** when typing passwords, tokens, or sensitive data
- **Use environment variables** to keep secrets out of code
- **Store secrets in your CI provider** (GitHub Actions, GitLab CI, etc.)
- **Never commit secrets** to version control
- **Rotate secrets regularly** to maintain security
</Card>还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
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
中文简介正在准备中。当前显示原文说明。