testdriverai 5.5.5 → 5.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent.js +29 -39
- package/docs/account/dashboard.mdx +16 -0
- package/docs/account/enterprise.mdx +97 -0
- package/docs/account/pricing.mdx +26 -0
- package/docs/account/projects.mdx +27 -0
- package/docs/account/team.mdx +31 -0
- package/docs/action/browser.mdx +1 -1
- package/docs/action/os.mdx +1 -2
- package/docs/action/output.mdx +2 -2
- package/docs/action/performance.mdx +4 -0
- package/docs/action/prerun.mdx +57 -1
- package/docs/action/secrets.mdx +3 -3
- package/docs/action/setup.mdx +6 -6
- package/docs/apps/chrome-extensions.mdx +41 -0
- package/docs/apps/desktop-apps.mdx +87 -0
- package/docs/apps/mobile-apps.mdx +22 -0
- package/docs/apps/static-websites.mdx +54 -0
- package/docs/bugs/jira.mdx +35 -28
- package/docs/cli/overview.mdx +19 -13
- package/docs/commands/assert.mdx +2 -0
- package/docs/commands/exec.mdx +96 -0
- package/docs/commands/focus-application.mdx +2 -0
- package/docs/commands/hover-image.mdx +2 -0
- package/docs/commands/hover-text.mdx +2 -0
- package/docs/commands/if.mdx +3 -2
- package/docs/commands/issues.mdx +27 -0
- package/docs/commands/match-image.mdx +2 -0
- package/docs/commands/press-keys.mdx +9 -5
- package/docs/commands/run.mdx +2 -1
- package/docs/commands/scroll-until-image.mdx +3 -1
- package/docs/commands/scroll-until-text.mdx +2 -0
- package/docs/commands/scroll.mdx +3 -1
- package/docs/commands/type.mdx +3 -1
- package/docs/commands/wait-for-image.mdx +3 -1
- package/docs/commands/wait-for-text.mdx +3 -1
- package/docs/commands/wait.mdx +3 -1
- package/docs/docs.json +260 -146
- package/docs/exporting/playwright.mdx +33 -26
- package/docs/features/auto-healing.mdx +25 -20
- package/docs/features/cross-platform.mdx +9 -8
- package/docs/features/generation.mdx +4 -3
- package/docs/features/github.mdx +22 -18
- package/docs/features/parallel-testing.mdx +15 -11
- package/docs/features/reusable-snippets.mdx +18 -14
- package/docs/features/selectorless.mdx +8 -3
- package/docs/features/visual-assertions.mdx +9 -10
- package/docs/getting-started/ci.mdx +7 -8
- package/docs/getting-started/editing.mdx +2 -0
- package/docs/getting-started/generating.mdx +1 -1
- package/docs/getting-started/running.mdx +2 -2
- package/docs/getting-started/setup.mdx +5 -12
- package/docs/getting-started/vscode.mdx +67 -79
- package/docs/getting-started/writing.mdx +7 -5
- package/docs/guide/assertions.mdx +6 -6
- package/docs/guide/authentication.mdx +18 -14
- package/docs/guide/code.mdx +3 -3
- package/docs/guide/environment-variables.mdx +64 -0
- package/docs/guide/lifecycle.mdx +154 -0
- package/docs/guide/locating.mdx +9 -9
- package/docs/guide/variables.mdx +9 -6
- package/docs/guide/waiting.mdx +9 -8
- package/docs/images/content/account/newprojectsettings.png +0 -0
- package/docs/images/content/account/projectpage.png +0 -0
- package/docs/images/content/account/projectreplays.png +0 -0
- package/docs/images/content/account/team-manage.png +0 -0
- package/docs/images/content/account/teampage.png +0 -0
- package/docs/images/content/side-by-side.png +0 -0
- package/docs/images/content/vscode/vscode-agent-preview.png +0 -0
- package/docs/images/content/vscode/vscode-copilot-ask.png +0 -0
- package/docs/images/content/vscode/vscode-file-creation.png +0 -0
- package/docs/images/content/vscode/vscode-install.png +0 -0
- package/docs/images/content/vscode/vscode-overview.png +0 -0
- package/docs/images/content/vscode/vscode-setup-walkthrough.png +0 -0
- package/docs/images/content/vscode/vscode-stopchat.png +0 -0
- package/docs/images/content/vscode/vscode-stoptest.png +0 -0
- package/docs/images/content/vscode/vscode-tdservice.png +0 -0
- package/docs/images/content/vscode/vscode-test-output.png +0 -0
- package/docs/images/content/vscode/vscode-testhistory.png +0 -0
- package/docs/images/content/vscode/vscode-testpane-runtests.png +0 -0
- package/docs/images/content/vscode/vscode-testpane.png +0 -0
- package/docs/importing/csv.mdx +9 -6
- package/docs/importing/gherkin.mdx +12 -10
- package/docs/importing/jira.mdx +11 -9
- package/docs/importing/testrail.mdx +10 -8
- package/docs/integrations/electron.mdx +26 -19
- package/docs/integrations/netlify.mdx +25 -24
- package/docs/integrations/vercel.mdx +22 -20
- package/docs/interactive/assert.mdx +4 -1
- package/docs/interactive/dry.mdx +51 -0
- package/docs/interactive/explore.mdx +92 -0
- package/docs/interactive/generate.mdx +6 -3
- package/docs/interactive/run.mdx +3 -0
- package/docs/interactive/save.mdx +3 -0
- package/docs/interactive/undo.mdx +3 -0
- package/docs/overview/comparison.mdx +6 -2
- package/docs/overview/faq.mdx +2 -1
- package/docs/overview/quickstart.mdx +123 -65
- package/docs/overview/upgrading.mdx +82 -0
- package/docs/overview/what-is-testdriver.mdx +13 -5
- package/docs/quickstart.mdx +1 -1
- package/docs/scenarios/ai-chatbot.mdx +26 -0
- package/docs/scenarios/cookie-banner.mdx +30 -0
- package/docs/scenarios/file-upload.mdx +30 -0
- package/docs/scenarios/form-filling.mdx +28 -0
- package/docs/scenarios/log-in.mdx +68 -0
- package/docs/scenarios/pdf-generation.mdx +21 -0
- package/docs/scenarios/spell-check.mdx +21 -0
- package/docs/security/action.mdx +7 -3
- package/docs/security/agent.mdx +1 -1
- package/docs/security/platform.mdx +9 -1
- package/docs/snippets/calendar-link.mdx +1 -0
- package/docs/snippets/gitignore-warning.mdx +4 -0
- package/docs/snippets/test-prereqs.mdx +15 -0
- package/docs/tutorials/advanced-test.mdx +2 -0
- package/docs/tutorials/basic-test.mdx +8 -7
- package/lib/commands.js +40 -21
- package/lib/config.js +0 -1
- package/lib/init.js +1 -1
- package/lib/logger.js +2 -2
- package/lib/parser.js +1 -0
- package/lib/sdk.js +14 -13
- package/package.json +2 -1
- package/schema.json +1 -4
- package/styles/config/vocabularies/Docs/accept.txt +15 -2
- package/styles/config/vocabularies/Docs/reject.txt +4 -0
- package/docs/30x30.mdx +0 -84
- package/docs/issues.mdx +0 -9
- package/docs/security/dashboard.mdx +0 -0
- package/testdriver/chrome.yaml +0 -102
package/agent.js
CHANGED
|
@@ -160,7 +160,7 @@ function completer(line) {
|
|
|
160
160
|
"/summarize /save /run /quit /assert /undo /manual /yml /js /exec".split(
|
|
161
161
|
" ",
|
|
162
162
|
);
|
|
163
|
-
if (line.startsWith("/run ")
|
|
163
|
+
if (line.startsWith("/run ")) {
|
|
164
164
|
return fileCompleter(line);
|
|
165
165
|
} else {
|
|
166
166
|
completions.concat(tasks);
|
|
@@ -851,9 +851,6 @@ const firstPrompt = async () => {
|
|
|
851
851
|
let shouldExit = flags.includes("--exit") ? true : false;
|
|
852
852
|
|
|
853
853
|
await run(file, shouldSave, shouldExit);
|
|
854
|
-
} else if (input.indexOf("/explore") == 0) {
|
|
855
|
-
const file = commands[1];
|
|
856
|
-
await run(file, true, true);
|
|
857
854
|
} else if (input.indexOf("/generate") == 0) {
|
|
858
855
|
const skipYaml = commands[4] === "--skip-yaml";
|
|
859
856
|
await generate(commands[1], commands[2], commands[3], skipYaml);
|
|
@@ -882,7 +879,7 @@ const firstPrompt = async () => {
|
|
|
882
879
|
logger.error(result.error.result.stdout);
|
|
883
880
|
}
|
|
884
881
|
} else {
|
|
885
|
-
await exploratoryLoop(input, false, true, true);
|
|
882
|
+
await exploratoryLoop(input.replace(/^\/explore\s+/, ""), false, true, true );
|
|
886
883
|
}
|
|
887
884
|
|
|
888
885
|
setTerminalWindowTransparency(false);
|
|
@@ -1082,12 +1079,10 @@ let run = async (file = thisFile, shouldSave = false, shouldExit = true) => {
|
|
|
1082
1079
|
if (ymlObj.version) {
|
|
1083
1080
|
let valid = isValidVersion(ymlObj.version);
|
|
1084
1081
|
if (!valid) {
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
);
|
|
1088
|
-
|
|
1089
|
-
await summarize("Version mismatch");
|
|
1090
|
-
await exit(true);
|
|
1082
|
+
console.log("")
|
|
1083
|
+
logger.warn(chalk.red(`Version mismatch detected!`));
|
|
1084
|
+
logger.warn(chalk.red(`Running a test created with v${ymlObj.version}.`));
|
|
1085
|
+
logger.warn(chalk.red(`The current testdriverai version is v${package.version}.`));
|
|
1091
1086
|
}
|
|
1092
1087
|
}
|
|
1093
1088
|
|
|
@@ -1210,18 +1205,19 @@ const buildEnv = async () => {
|
|
|
1210
1205
|
};
|
|
1211
1206
|
|
|
1212
1207
|
const start = async () => {
|
|
1213
|
-
// logger.info(await system.getPrimaryDisplay());
|
|
1214
|
-
|
|
1215
|
-
// @todo add-auth
|
|
1216
|
-
// if (!process.env.DASHCAM_API_KEY) {
|
|
1217
|
-
// log('info', chalk.red(`You must supply an API key`), 'system')
|
|
1218
|
-
// log('info', `Supply your API key with the \`DASHCAM_API_KEY\` environment variable.`, 'system');
|
|
1219
|
-
// log('info', 'You can get a key in the Dashcam Discord server: https://discord.com/invite/cWDFW8DzPm', 'system')
|
|
1220
|
-
// process.exit();
|
|
1221
|
-
// }
|
|
1222
1208
|
|
|
1223
1209
|
let a = getArgs();
|
|
1224
1210
|
|
|
1211
|
+
thisFile = a.file;
|
|
1212
|
+
const thisCommand = a.command;
|
|
1213
|
+
|
|
1214
|
+
logger.info(chalk.green(`Howdy! I'm TestDriver v${package.version}`));
|
|
1215
|
+
logger.info(`This is beta software!`);
|
|
1216
|
+
logger.info("");
|
|
1217
|
+
logger.info(chalk.yellow(`Join our Discord for help`));
|
|
1218
|
+
logger.info(`https://discord.com/invite/cWDFW8DzPm`);
|
|
1219
|
+
logger.info("");
|
|
1220
|
+
|
|
1225
1221
|
// make testdriver directory if it doesn't exist
|
|
1226
1222
|
let testdriverFolder = path.join(workingDir, "testdriver");
|
|
1227
1223
|
if (!fs.existsSync(testdriverFolder)) {
|
|
@@ -1235,29 +1231,23 @@ const start = async () => {
|
|
|
1235
1231
|
|
|
1236
1232
|
}
|
|
1237
1233
|
|
|
1238
|
-
// if
|
|
1239
|
-
|
|
1240
|
-
if (!fs.existsSync(
|
|
1241
|
-
fs.
|
|
1242
|
-
logger.info(chalk.dim(`Created
|
|
1243
|
-
console.log(chalk.dim(`Created testdriver.yaml: ${testdriverFile}`));
|
|
1234
|
+
// if the directory for thisFile doesn't exist, create it
|
|
1235
|
+
const dir = path.dirname(thisFile);
|
|
1236
|
+
if (!fs.existsSync(dir)) {
|
|
1237
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
1238
|
+
logger.info(chalk.dim(`Created directory ${dir}`));
|
|
1244
1239
|
}
|
|
1245
1240
|
|
|
1246
|
-
thisFile
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
logger.info("");
|
|
1252
|
-
logger.info(chalk.yellow(`Join our Discord for help`));
|
|
1253
|
-
logger.info(`https://discord.com/invite/cWDFW8DzPm`);
|
|
1254
|
-
logger.info("");
|
|
1255
|
-
|
|
1256
|
-
// individual run ID for this session
|
|
1257
|
-
// let runID = new Date().getTime();
|
|
1241
|
+
// if thisFile doesn't exist, create it
|
|
1242
|
+
if (!fs.existsSync(thisFile)) {
|
|
1243
|
+
fs.writeFileSync(thisFile, "");
|
|
1244
|
+
logger.info(chalk.dim(`Created ${thisFile}`));
|
|
1245
|
+
}
|
|
1258
1246
|
|
|
1247
|
+
if (config.TD_API_KEY) {
|
|
1248
|
+
await sdk.auth();
|
|
1249
|
+
}
|
|
1259
1250
|
|
|
1260
|
-
// await sdk.auth();
|
|
1261
1251
|
if (thisCommand !== "run") {
|
|
1262
1252
|
speak("Howdy! I am TestDriver version " + package.version);
|
|
1263
1253
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Dashboard"
|
|
3
|
+
sidebarTitle: "Dashboard"
|
|
4
|
+
description: "Explore your TestDriver dashboard and its features."
|
|
5
|
+
icon: "gauge"
|
|
6
|
+
---
|
|
7
|
+
## Welcome to your TestDriver Dashboard
|
|
8
|
+
Your dashboard is your command center for managing your TestDriver experience. Here, you can view your projects, monitor usage, and access various features to enhance your testing workflow.
|
|
9
|
+
|
|
10
|
+
## Key Features
|
|
11
|
+
- **Projects**: Get a quick snapshot of your projects, with all Dashcam replays.
|
|
12
|
+
- **Team**: Manage your API key, and add/remove team members.
|
|
13
|
+
- **Usage & Billing**: Monitor your usage and credits in real-time.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Enterprise"
|
|
3
|
+
sidebarTitle: "Enterprise"
|
|
4
|
+
description: "30 Tests in 30 Days Guaranteed!"
|
|
5
|
+
icon: gem
|
|
6
|
+
---
|
|
7
|
+
import { calendar } from '/snippets/calendar-link.mdx'
|
|
8
|
+
|
|
9
|
+
We understand that QA coverage is critical and often needed immediately. That's why we're offering our **30x30 Guarantee**: try TestDriver Enterprise and we guarantee you will see 30 tests in 30 days!
|
|
10
|
+
|
|
11
|
+
Unlike other QA services that take months and cost hundreds of thousands of dollars, TestDriver gets you up and running in just 30 days.
|
|
12
|
+
|
|
13
|
+
<Card
|
|
14
|
+
title="Book a Call"
|
|
15
|
+
icon="calendar"
|
|
16
|
+
href="https://calendly.com/d/cq23-qyn-3v6/testdriver-ai-demo"
|
|
17
|
+
link
|
|
18
|
+
>
|
|
19
|
+
Don't miss out on the cutting-edge of AI and QA testing!
|
|
20
|
+
</Card>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Pricing
|
|
26
|
+
We're confident you'll love TestDriver, which is why we're offering this risk-free trial. After the trial, plans start at just **$995/month**, which includes:
|
|
27
|
+
- **12,500 runner minutes per month**: Enough to run 30 tests **2-5 times per day**.
|
|
28
|
+
- Full access to our enterprise test dashboards.
|
|
29
|
+
- Seamless integration with GitHub Actions.
|
|
30
|
+
|
|
31
|
+
For more details or to get a demo [Contract Details](#contract-details). To see other plans and pricing, check out our [Pricing](/account/pricing).
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<CardGroup cols={3}>
|
|
35
|
+
<Card title="Quickly Deploy AI QA Tests">
|
|
36
|
+
Safeguard your most important user flows with generated tests.
|
|
37
|
+
</Card>
|
|
38
|
+
<Card title="Increase your total coverage">
|
|
39
|
+
Test flows never possible before with our powerful computer-use agent.
|
|
40
|
+
</Card>
|
|
41
|
+
<Card title="Spend less time on maintenance">
|
|
42
|
+
TestDriver tests automatically repair themselves.
|
|
43
|
+
</Card>
|
|
44
|
+
</CardGroup>
|
|
45
|
+
|
|
46
|
+
## Promotion Details
|
|
47
|
+
Here's what's included in the **30x30 Promotion**:
|
|
48
|
+
|
|
49
|
+
- **Test Coverage**: Test any publicly available desktop app, Chrome extension, mobile app, or website.
|
|
50
|
+
- **AI-Generated Tests**: Choose from **250 AI-generated tests** within the first 7 days.
|
|
51
|
+
- **Daily Test Runs**: Run tests **3-5 times every day**.
|
|
52
|
+
- **AI Quality Reports**: Receive detailed reports delivered directly to your email.
|
|
53
|
+
- **Self-Healing Tests**: AI automatically fixes and maintains your tests.
|
|
54
|
+
- **GitHub Integration**: Seamlessly integrate with GitHub Actions.
|
|
55
|
+
- **Enterprise Dashboards**: Gain full access to our enterprise-grade test dashboards.
|
|
56
|
+
|
|
57
|
+
For more details, see [Contract Details](#contract-details).
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## How Does It Work?
|
|
62
|
+
|
|
63
|
+
1. **Book an Onboarding Call**: Share the specific flows you want to test.
|
|
64
|
+
2. **Generate a Test Suite**: We'll explore your app and generate hundreds of tests using our AI.
|
|
65
|
+
3. **Deploy Tests**: Your new tests will be deployed to our GitHub Actions.
|
|
66
|
+
4. **Custom Test Creation**: Our support team will work with you to create tests for any features TestDriver might have missed.
|
|
67
|
+
5. **Engineer Training**: We'll train your engineers on best practices for creating and maintaining TestDriver tests.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Onboarding Process
|
|
72
|
+
|
|
73
|
+
| Service | Timeline | Description |
|
|
74
|
+
|-----------------------|----------------|-----------------------------------------------------------------------------|
|
|
75
|
+
| **Custom Onboarding** | First 7 Days | Get set up quickly with custom workflows and Prerun Scripts developed by the TestDriver team. |
|
|
76
|
+
| **AI Test Generation**| First 7 Days | Instant coverage: We'll generate hundreds of tests for you to choose from. |
|
|
77
|
+
| **Custom Test Creation** | First 30 Days | Our team will create tests for any features TestDriver might have missed. |
|
|
78
|
+
| **Training** | First 30 Days | Our support team will train your engineers on best practices. |
|
|
79
|
+
| **Test Execution** | Recurring | Seamless deployment: Tests are executed on a schedule or via GitHub Actions.|
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Contract Details
|
|
84
|
+
|
|
85
|
+
- **Free Trial**: Get 30 custom tests free during a 30-day trial when subscribing to the $995/month "30x30" plan.
|
|
86
|
+
- **Ownership**: The tests are yours! You can modify, duplicate, or distribute them however you wish.
|
|
87
|
+
- **Payment**: A payment method is required to begin the trial.
|
|
88
|
+
- **Renewal**: The contract renews annually.
|
|
89
|
+
- **Cancellation**: Cancel anytime during your trial, for any reason.
|
|
90
|
+
- **Credits**: Unused credits do not roll over and expire at the end of each month.
|
|
91
|
+
- **Additional Usage**: Additional usage is billed at standard rates.
|
|
92
|
+
- **On Prem/BYOC**: Option available as an add-on to your contract.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Ready to Get Started?
|
|
97
|
+
Don't wait! <a href={calendar}>**Schedule your onboarding call now**</a> and let us help you achieve QA coverage in just 30 days.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Pricing"
|
|
3
|
+
sidebarTitle: "Pricing"
|
|
4
|
+
description: "Explore TestDriver's pricing plans and features."
|
|
5
|
+
icon: "dollar-sign"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## TestDriver Pricing Plans
|
|
9
|
+
TestDriver offers a range of pricing plans to suit different needs, from individual developers to large enterprises. Our plans are designed to provide flexibility and scalability, ensuring you can choose the right option for your testing requirements.
|
|
10
|
+
|
|
11
|
+
<CardGroup cols={3}>
|
|
12
|
+
<Card title="Free" icon="check">
|
|
13
|
+
Local agent testing. Always free.
|
|
14
|
+
</Card>
|
|
15
|
+
<Card title="Business" icon="briefcase">
|
|
16
|
+
Use local or hosted runners on demand or integrated with CI for as low as $0.05/minute.
|
|
17
|
+
</Card>
|
|
18
|
+
<Card title="Enterprise" icon="shield">
|
|
19
|
+
Need advanced features? Contact us for tailored solutions. Starting at $995/month.
|
|
20
|
+
</Card>
|
|
21
|
+
</CardGroup>
|
|
22
|
+
|
|
23
|
+
<Tip>Every plan starts with $100 in TestDriver credits to get you off the starting line!</Tip>
|
|
24
|
+
|
|
25
|
+
## Compare Plans
|
|
26
|
+
To view the latest pricing and features, please visit our [Pricing Page](https://testdriver.ai/pricing).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "TestDriver Projects"
|
|
3
|
+
sidebarTitle: "Projects"
|
|
4
|
+
description: "Manage your projects and workflows with TestDriver."
|
|
5
|
+
icon: "folder"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Dashboard Project View
|
|
9
|
+
In the Project tab, select a Project to see the replays for that project.
|
|
10
|
+
|
|
11
|
+
<Frame caption="Click a Project to view its replays">
|
|
12
|
+
<img src="/images/content/account/projectpage.png" />
|
|
13
|
+
</Frame>
|
|
14
|
+
|
|
15
|
+
From the Project view, you can see all the replays (Dashes) stored for that project. Click one to see it. These will also be linked in CI for any pull requests or branches that have been tested with TestDriver.
|
|
16
|
+
|
|
17
|
+
<Frame caption="Click a Replay to view, comment or share ">
|
|
18
|
+
<img src="/images/content/account/projectreplays.png" />
|
|
19
|
+
</Frame>
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## New Project
|
|
23
|
+
When you create a new Project, you can also enable the <Icon icon="jira" /> Jira integration to create issues automatically each time a replay (Dash) is created.
|
|
24
|
+
|
|
25
|
+
<Frame caption="Click a Project to view its replays">
|
|
26
|
+
<img src="/images/content/account/newprojectsettings.png" />
|
|
27
|
+
</Frame>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Team"
|
|
3
|
+
sidebarTitle: "Team"
|
|
4
|
+
description: "Manage your team and collaborate with TestDriver."
|
|
5
|
+
icon: "users"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Important Settings in one place
|
|
9
|
+
In the Team tab, you can manage your team name, team members, API key, and subscription.
|
|
10
|
+
|
|
11
|
+
### Let's take a look at the team settings.
|
|
12
|
+
<Frame caption="Team Settings">
|
|
13
|
+
<img src="/images/content/account/teampage.png" />
|
|
14
|
+
</Frame>
|
|
15
|
+
|
|
16
|
+
1. **Team Name**: The name of your team. This is used to identify your team in TestDriver.
|
|
17
|
+
2. **API Key**: Your API key is used to authenticate your requests to the TestDriver API. You can regenerate it if you suspect it has been compromised.
|
|
18
|
+
3. **Usage & Billing**: Monitor your usage and billing information. This includes your current plan, usage limits, and billing history.
|
|
19
|
+
<Tip>Note: this button is where you 'Upgrade to Pro' to start your free trial.</Tip>
|
|
20
|
+
4. **Replay Visibility**: Toggle whether your replays are public or private by default. This defaults to **private**.
|
|
21
|
+
5. **Don't forget to save your changes!**: After making any changes, be sure to click the **Update** button to apply them.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Team Members
|
|
25
|
+
<Frame caption="Team Members">
|
|
26
|
+
<img src="/images/content/account/team-manage.png" />
|
|
27
|
+
</Frame>
|
|
28
|
+
|
|
29
|
+
1. **Email Invite**: Invite new team members by entering their email address and clicking the **Invite** button. They will receive an email invitation to join your team. You can also copy the link above this option to send to everyone at once.
|
|
30
|
+
2. **Removing Team Members**: To remove a team member, click the **Remove** button next to their name. This will revoke their access to your TestDriver account.
|
|
31
|
+
3. **Invite Status**: The status of the invite will be shown here. If it says **Invited**, the invite has not been accepted yet. To resend it, click here.
|
package/docs/action/browser.mdx
CHANGED
package/docs/action/os.mdx
CHANGED
|
@@ -142,7 +142,7 @@ jobs:
|
|
|
142
142
|
os: ${{ matrix.os }}
|
|
143
143
|
prerun: |
|
|
144
144
|
# Add prerun script here
|
|
145
|
-
key: ${{ secrets.
|
|
145
|
+
key: ${{ secrets.TD_API_KEY }}
|
|
146
146
|
env:
|
|
147
147
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
148
148
|
FORCE_COLOR: "3"
|
|
@@ -155,4 +155,3 @@ jobs:
|
|
|
155
155
|
- **Prerun Scripts**: Ensure your prerun scripts are compatible with the specified operating system.
|
|
156
156
|
- **Cross-Platform Testing**: Use the matrix strategy to test across multiple OS and browser combinations for maximum coverage.
|
|
157
157
|
- **Linux Default**: Linux is the default operating system for most workflows and is ideal for lightweight, fast testing.
|
|
158
|
-
```
|
package/docs/action/output.mdx
CHANGED
|
@@ -26,7 +26,7 @@ The following example demonstrates how to use the output variables to create a c
|
|
|
26
26
|
|
|
27
27
|
### Workflow Example
|
|
28
28
|
```yaml
|
|
29
|
-
name: TestDriver
|
|
29
|
+
name: TestDriver
|
|
30
30
|
|
|
31
31
|
permissions:
|
|
32
32
|
actions: read
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
steps:
|
|
46
46
|
- uses: dashcamio/testdriver@main
|
|
47
47
|
version: v4.0.0
|
|
48
|
-
key: ${{ secrets.
|
|
48
|
+
key: ${{ secrets.TD_API_KEY }}
|
|
49
49
|
with:
|
|
50
50
|
prompt: |
|
|
51
51
|
1. /run /Users/ec2-user/actions-runner/_work/testdriver/testdriver/.testdriver/test.yml
|
|
@@ -19,6 +19,10 @@ Parallel testing allows you to split your test actions into multiple files and r
|
|
|
19
19
|
- Divide your test steps into smaller, independent YAML files.
|
|
20
20
|
- Use the `run` command or GitHub matrix strategy to execute these files in parallel.
|
|
21
21
|
|
|
22
|
+
<Warning>
|
|
23
|
+
The `run` command is used in your test files to run other test files. This is useful for breaking down large tests into smaller, more manageable pieces. To run multiple separate tests, use the GitHub matrix strategy.
|
|
24
|
+
</Warning>
|
|
25
|
+
|
|
22
26
|
Example:
|
|
23
27
|
```yaml
|
|
24
28
|
strategy:
|
package/docs/action/prerun.mdx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: "Prerun Scripts"
|
|
3
3
|
sidebarTitle: "Prerun Scripts"
|
|
4
4
|
description: "Learn how to customize and set up your TestDriver environment to optimize your CI/CD pipeline."
|
|
5
|
-
icon: "
|
|
5
|
+
icon: "terminal"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
@@ -58,6 +58,30 @@ jobs:
|
|
|
58
58
|
}
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
## Example: Loading a Calculator App on Linux, Mac or Windows
|
|
62
|
+
```yaml
|
|
63
|
+
version: 5.5.5
|
|
64
|
+
session: 67f00511acbd9ccac373edf7
|
|
65
|
+
steps:
|
|
66
|
+
- prompt: launch a calculator
|
|
67
|
+
commands:
|
|
68
|
+
- command: exec
|
|
69
|
+
lang: shell
|
|
70
|
+
linux: |
|
|
71
|
+
linux: |
|
|
72
|
+
jumpapp /usr/bin/galculator > /dev/null 2>&1 &
|
|
73
|
+
exit
|
|
74
|
+
mac: |
|
|
75
|
+
open "/Applications/Calculator.app"
|
|
76
|
+
wait
|
|
77
|
+
windows:
|
|
78
|
+
start /B calc.exe
|
|
79
|
+
timeout /t 5
|
|
80
|
+
- command: wait-for-text
|
|
81
|
+
text: "galculator"
|
|
82
|
+
timeout: 30000
|
|
83
|
+
```
|
|
84
|
+
|
|
61
85
|
---
|
|
62
86
|
|
|
63
87
|
## Key Points
|
|
@@ -75,6 +99,38 @@ jobs:
|
|
|
75
99
|
|
|
76
100
|
---
|
|
77
101
|
|
|
102
|
+
## A Note on the Default Prerun Script
|
|
103
|
+
When setting up your TestDriver environment, a default prerun script is automatically generated. This script includes essential commands to ensure your VM is ready for testing. You can customize this script to suit your specific needs, but it's important to understand that it serves as a baseline for your test environment. It looks like this:
|
|
104
|
+
|
|
105
|
+
```yaml
|
|
106
|
+
version: 5.1.1
|
|
107
|
+
session: 67f00511acbd9ccac373edf7
|
|
108
|
+
steps:
|
|
109
|
+
- prompt: launch chrome
|
|
110
|
+
commands:
|
|
111
|
+
- command: exec
|
|
112
|
+
lang: shell
|
|
113
|
+
linux: |
|
|
114
|
+
jumpapp google-chrome --disable-fre --no-default-browser-check --no-first-run "${TD_WEBSITE}" &
|
|
115
|
+
exit
|
|
116
|
+
mac: |
|
|
117
|
+
open -na "Google Chrome" --args --disable-fre --no-default-browser-check --no-first-run --disable-features=PasswordManagerEnabled "${TD_WEBSITE}" &
|
|
118
|
+
exit
|
|
119
|
+
windows:
|
|
120
|
+
Start-Process "C:/Program Files/Google/Chrome/Application/chrome.exe" -ArgumentList "--start-maximized", "${TD_WEBSITE}"
|
|
121
|
+
exit
|
|
122
|
+
- command: wait-for-text
|
|
123
|
+
text: "Google Chrome"
|
|
124
|
+
timeout: 30000
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Take note that it defaults to launching the Chrome browser. If you want to use a different browser, you can modify the `prompt` and `commands` sections accordingly.
|
|
128
|
+
|
|
129
|
+
<Warning>
|
|
130
|
+
The `wait-For-text` command is crucial for ensuring that the browser is fully loaded before proceeding with the test steps. If you are testing a webapplication, you may want to adjust the `text` parameter to match the expected title or content of the page.
|
|
131
|
+
</Warning>
|
|
132
|
+
|
|
133
|
+
|
|
78
134
|
## Notes
|
|
79
135
|
- Prerun scripts are executed on the VM before the test suite begins.
|
|
80
136
|
- They are essential for ensuring a consistent and reliable test environment.
|
package/docs/action/secrets.mdx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: "Managing Secrets in GitHub Actions"
|
|
3
3
|
sidebarTitle: "Secrets Management"
|
|
4
4
|
description: "Discover how to securely configure and optimize your TestDriver environment for seamless CI/CD workflows."
|
|
5
|
-
icon: "
|
|
5
|
+
icon: "asterisk"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
@@ -52,7 +52,7 @@ steps:
|
|
|
52
52
|
1. Navigate to your GitHub repository.
|
|
53
53
|
2. Go to **Settings** > **Secrets and variables** > **Actions**.
|
|
54
54
|
3. Click **New repository secret**.
|
|
55
|
-
4. Add your secrets (e.g., `TD_USERNAME`, `TD_PASSWORD`, `
|
|
55
|
+
4. Add your secrets (e.g., `TD_USERNAME`, `TD_PASSWORD`, `TD_API_KEY`).
|
|
56
56
|
|
|
57
57
|
For detailed instructions, refer to the [GitHub Docs on using secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets).
|
|
58
58
|
|
|
@@ -78,7 +78,7 @@ jobs:
|
|
|
78
78
|
steps:
|
|
79
79
|
- uses: testdriverai/action@main
|
|
80
80
|
with:
|
|
81
|
-
key: ${{ secrets.
|
|
81
|
+
key: ${{ secrets.TD_API_KEY }}
|
|
82
82
|
prompt: |
|
|
83
83
|
1. /run tests/signin.yml
|
|
84
84
|
env:
|
package/docs/action/setup.mdx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: "GitHub Action Setup Guide"
|
|
3
3
|
sidebarTitle: "Setup Guide"
|
|
4
4
|
description: "Learn how to set up and configure the TestDriver GitHub Action for automated cloud-based testing in your CI/CD workflows."
|
|
5
|
-
icon: "
|
|
5
|
+
icon: "square-terminal"
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
@@ -25,7 +25,7 @@ To execute TestDriver actions on our virtual machines, you'll need an API key. F
|
|
|
25
25
|
3. **Copy Your API Key**: Locate and copy your API key.
|
|
26
26
|
4. **Add the API Key as a GitHub Secret**:
|
|
27
27
|
- Navigate to your repository settings in GitHub.
|
|
28
|
-
- Add a new secret named `
|
|
28
|
+
- Add a new secret named `TD_API_KEY` and paste your API key.
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
@@ -33,7 +33,7 @@ To execute TestDriver actions on our virtual machines, you'll need an API key. F
|
|
|
33
33
|
Now it's time to create your first TestDriver workflow. Add the following configuration to `.github/workflows/testdriver.yml`:
|
|
34
34
|
|
|
35
35
|
```yaml
|
|
36
|
-
name: TestDriver
|
|
36
|
+
name: TestDriver
|
|
37
37
|
|
|
38
38
|
permissions:
|
|
39
39
|
actions: read
|
|
@@ -57,7 +57,7 @@ jobs:
|
|
|
57
57
|
steps:
|
|
58
58
|
- uses: dashcamio/testdriver@main
|
|
59
59
|
version: "v5.0.7"
|
|
60
|
-
key: ${{ secrets.
|
|
60
|
+
key: ${{ secrets.TD_API_KEY }}
|
|
61
61
|
os: linux
|
|
62
62
|
with:
|
|
63
63
|
prompt: |
|
|
@@ -69,7 +69,7 @@ jobs:
|
|
|
69
69
|
|
|
70
70
|
### Key Points:
|
|
71
71
|
- **Trigger Conditions**: The `on` section defines when the workflow runs (e.g., pull requests, scheduled events, or manual triggers).
|
|
72
|
-
- **API Key**: The `key` field uses the `
|
|
72
|
+
- **API Key**: The `key` field uses the `TD_API_KEY` secret for authentication.
|
|
73
73
|
- **Prompt**: The `prompt` field specifies the commands to execute. In this example, the `/run` command is used to execute a test file from the repository.
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -106,7 +106,7 @@ gh pr create --web
|
|
|
106
106
|
---
|
|
107
107
|
|
|
108
108
|
## Output
|
|
109
|
-
For details on interpreting the output of the GitHub Action, refer to the [Action Output Documentation](
|
|
109
|
+
For details on interpreting the output of the GitHub Action, refer to the [Action Output Documentation](action/output).
|
|
110
110
|
|
|
111
111
|
---
|
|
112
112
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Testing Chrome Extensions with TestDriver
|
|
3
|
+
sidebarTitle: "Chrome Extensions"
|
|
4
|
+
description: "Test Chrome extensions with TestDriver"
|
|
5
|
+
icon: "puzzle-piece"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
import TestPrereqs from '/snippets/test-prereqs.mdx'
|
|
9
|
+
|
|
10
|
+
# Testing Chrome Extensions with TestDriver
|
|
11
|
+
TestDriver can be used to test Chrome extensions. This guide provides an overview of how to set up and run tests for your Chrome extension using TestDriver.
|
|
12
|
+
|
|
13
|
+
<TestPrereqs />
|
|
14
|
+
|
|
15
|
+
## How Do I Test Chrome Extensions?
|
|
16
|
+
TestDriver provides a powerful solution for testing Chrome extensions. With our platform, you can easily create and run tests to ensure your extension functions as expected across different browsers and operating systems.
|
|
17
|
+
## Getting Started
|
|
18
|
+
You can test a preinstalled extension or test by installing an extension. If the extension is in developemt mode, turn this on by checking the "Developer mode" checkbox in the Chrome extensions page. From there you can load the unpacked extension by selecting the folder where your extension is located. To download the files onto the VM if you are performing a test on cloud hosted runners, see the [Lifecycle](/guide/lifecycle) or [Prerun](/action/prerun) docs.
|
|
19
|
+
|
|
20
|
+
## Sample Test Steps
|
|
21
|
+
1. Load a the Chrome Web Store.
|
|
22
|
+
2. Search for the extension you want to test.
|
|
23
|
+
3. Click on the extension to open its details page.
|
|
24
|
+
4. Click on the "Add to Chrome" button to install the extension.
|
|
25
|
+
5. Wait for the installation to complete.
|
|
26
|
+
6. Click the 'puzzle piece' icon to pin the extension to the toolbar.
|
|
27
|
+
7. Click on the extension icon to open it.
|
|
28
|
+
|
|
29
|
+
## TestDriver in Action
|
|
30
|
+
<iframe
|
|
31
|
+
width="560"
|
|
32
|
+
height="315"
|
|
33
|
+
src="https://www.youtube.com/embed/czfq4It6-pQ"
|
|
34
|
+
title="Testing Chrome Extensions with TestDriver"
|
|
35
|
+
frameborder="0"
|
|
36
|
+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
|
37
|
+
allowfullscreen
|
|
38
|
+
></iframe>
|
|
39
|
+
|
|
40
|
+
## Now What?
|
|
41
|
+
Once you have insstalled your extension, simply create a TestDriver test to test any functionality a user would use.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Using TestDriver with Desktop Apps
|
|
3
|
+
sidebarTitle: "Desktop Apps"
|
|
4
|
+
description: "TestDriver is designed to work with any desktop application, including Electron, Java, and .NET apps."
|
|
5
|
+
icon: "desktop"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
import TestPrereqs from '/snippets/test-prereqs.mdx'
|
|
9
|
+
|
|
10
|
+
TestDriver is designed to work with any desktop application, including Electron, Java, and .NET apps. This guide provides an overview of how to use TestDriver with desktop applications, including installation, configuration, and running tests.
|
|
11
|
+
|
|
12
|
+
<TestPrereqs />
|
|
13
|
+
|
|
14
|
+
## Sample Test Steps
|
|
15
|
+
|
|
16
|
+
## TestDriver in Action
|
|
17
|
+
<iframe
|
|
18
|
+
width="560"
|
|
19
|
+
height="315"
|
|
20
|
+
src="https://www.youtube.com/embed/IwJwGxHH8cA"
|
|
21
|
+
title="Assert 2+2=4"
|
|
22
|
+
frameborder="0"
|
|
23
|
+
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
|
24
|
+
allowfullscreen
|
|
25
|
+
></iframe>
|
|
26
|
+
|
|
27
|
+
## Supported Desktop Applications
|
|
28
|
+
TestDriver supports a wide range of desktop applications, including:
|
|
29
|
+
- Electron apps
|
|
30
|
+
- Java apps
|
|
31
|
+
- .NET apps
|
|
32
|
+
- Native Windows applications
|
|
33
|
+
- Native Mac applications
|
|
34
|
+
- Native Linux applications
|
|
35
|
+
- Any other desktop application that can be run on Windows, Mac, or Linux
|
|
36
|
+
## Installation
|
|
37
|
+
To use TestDriver with desktop applications, no special setup is needed. Simply run the local agent to interact with applications on your local machine, or add instructions to `prerun.yaml` to tell the runner to launch or install the application. Here is an example that performs a calculation on a calculator app:
|
|
38
|
+
```yaml
|
|
39
|
+
version: 5.5.5
|
|
40
|
+
session: 67f00511acbd9ccac373edf7
|
|
41
|
+
steps:
|
|
42
|
+
- prompt: launch a calculator
|
|
43
|
+
commands:
|
|
44
|
+
- command: exec
|
|
45
|
+
lang: shell
|
|
46
|
+
linux: |
|
|
47
|
+
linux: |
|
|
48
|
+
jumpapp /usr/bin/galculator > /dev/null 2>&1 &
|
|
49
|
+
exit
|
|
50
|
+
mac: |
|
|
51
|
+
open "/Applications/Calculator.app"
|
|
52
|
+
wait
|
|
53
|
+
windows:
|
|
54
|
+
start /B calc.exe
|
|
55
|
+
timeout /t 5
|
|
56
|
+
- command: wait-for-text
|
|
57
|
+
text: "calculator"
|
|
58
|
+
timeout: 30000
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
A `calculator_test.yaml` file might look like this:
|
|
62
|
+
```yaml
|
|
63
|
+
version: 5.5.5
|
|
64
|
+
session: 6810141e0e064b42739922f2
|
|
65
|
+
steps:
|
|
66
|
+
- prompt: /try performing the operation 2 + 2 = on the calculator that is opened
|
|
67
|
+
commands:
|
|
68
|
+
- command: focus-application
|
|
69
|
+
name: galculator
|
|
70
|
+
- command: hover-image
|
|
71
|
+
description: button with number 2 on the calculator
|
|
72
|
+
action: click
|
|
73
|
+
- command: hover-image
|
|
74
|
+
description: plus button on the calculator
|
|
75
|
+
action: click
|
|
76
|
+
- command: hover-image
|
|
77
|
+
description: button with number 2 on the calculator
|
|
78
|
+
action: click
|
|
79
|
+
- command: hover-image
|
|
80
|
+
description: equals button on the calculator
|
|
81
|
+
action: click
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Conclusion
|
|
85
|
+
TestDriver is a powerful tool for automating tests for desktop applications. With its support for a wide range of desktop platforms and its easy-to-use interface, you can quickly set up and run tests for your applications. Whether you are testing Electron apps, Java apps, or any other desktop application, TestDriver provides the tools you need to ensure your applications work as expected.
|
|
86
|
+
|
|
87
|
+
|