testdriverai 5.7.1 → 5.7.4
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/README.md +2 -2
- package/agent.js +1 -1
- package/docs/docs.json +3 -2
- package/docs/getting-started/vscode.mdx +47 -0
- package/docs/overview/performance.mdx +52 -0
- package/docs/overview/quickstart.mdx +2 -49
- package/lib/focus-application.js +9 -4
- package/package.json +1 -1
- package/testdriver/focus.yaml +15 -0
- package/testdriver/testdriver_2025-05-18T16-25-46-001Z.yaml +0 -0
package/README.md
CHANGED
|
@@ -115,7 +115,7 @@ After this, we will type the URL and press Enter.
|
|
|
115
115
|
|
|
116
116
|
TestDriver will execute the commands found in the yml codeblocks of the response.
|
|
117
117
|
|
|
118
|
-
See the yml TestDriver generated? That's our own schema. You can learn more about it in the [reference](https://docs.testdriver.ai/
|
|
118
|
+
See the yml TestDriver generated? That's our own schema. You can learn more about it in the [reference](https://docs.testdriver.ai/getting-started/editing).
|
|
119
119
|
|
|
120
120
|
> Take your hands off the mouse and keyboard while TestDriver executes! TestDriver is not a fan of backseat drivers.
|
|
121
121
|
|
|
@@ -152,6 +152,6 @@ git commit -am "Add TestDriver tests"
|
|
|
152
152
|
gh pr create --web
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
Your test will run on every commit and the results will be posted as a Dashcam.io video within your GitHub summary! Learn more about deploying on CI [here](https://docs.testdriver.ai/
|
|
155
|
+
Your test will run on every commit and the results will be posted as a Dashcam.io video within your GitHub summary! Learn more about deploying on CI [here](https://docs.testdriver.ai/action/setup).
|
|
156
156
|
|
|
157
157
|
# vscode
|
package/agent.js
CHANGED
|
@@ -1265,7 +1265,7 @@ const start = async () => {
|
|
|
1265
1265
|
),
|
|
1266
1266
|
);
|
|
1267
1267
|
logger.info(
|
|
1268
|
-
chalk.dim("Read More: https://docs.testdriver.ai/security
|
|
1268
|
+
chalk.dim("Read More: https://docs.testdriver.ai/security/agent"),
|
|
1269
1269
|
);
|
|
1270
1270
|
logger.info("");
|
|
1271
1271
|
}
|
package/docs/docs.json
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"/overview/what-is-testdriver",
|
|
24
24
|
"/overview/faq",
|
|
25
25
|
"/overview/comparison",
|
|
26
|
+
"/overview/performance",
|
|
26
27
|
"/account/enterprise"
|
|
27
28
|
]
|
|
28
29
|
},
|
|
@@ -63,8 +64,8 @@
|
|
|
63
64
|
{
|
|
64
65
|
"group": "Getting Started",
|
|
65
66
|
"pages": [
|
|
66
|
-
"/getting-started/vscode",
|
|
67
67
|
"/getting-started/setup",
|
|
68
|
+
"/getting-started/vscode",
|
|
68
69
|
"/getting-started/writing",
|
|
69
70
|
"/getting-started/generating",
|
|
70
71
|
"/getting-started/running",
|
|
@@ -264,4 +265,4 @@
|
|
|
264
265
|
"apiKey": "phc_ovOQ2HFpqFwPVqaxE5plJmI9buPMsz024FB2iajItqn"
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
|
-
}
|
|
268
|
+
}
|
|
@@ -16,7 +16,54 @@ import YmlWarning from '/snippets/yml-warning.mdx'
|
|
|
16
16
|
</Card>
|
|
17
17
|
|
|
18
18
|
<Steps>
|
|
19
|
+
<Accordion title="Install the Extension">
|
|
19
20
|
|
|
21
|
+
<Tabs>
|
|
22
|
+
<Tab title="VS Code">
|
|
23
|
+
|
|
24
|
+
VS Code is the recommended IDE for TestDriver. First, install the following recommended extensions:
|
|
25
|
+
|
|
26
|
+
- [GitHub Copilot Chat](vscode://github.copilot-chat) (The free plan is just fine!)
|
|
27
|
+
- [VS Code YAML](vscode://redhat.vscode-yaml) (Optional, but recommended for YAML validation)
|
|
28
|
+
|
|
29
|
+
Then, download the TestDriver extension:
|
|
30
|
+
|
|
31
|
+
<Card
|
|
32
|
+
title="Download the VS Code Extension"
|
|
33
|
+
icon="download"
|
|
34
|
+
href="https://github.com/testdriverai/vscode/releases/latest/download/testdriver.vsix"
|
|
35
|
+
>
|
|
36
|
+
Get the latest version from GitHub releases.
|
|
37
|
+
</Card>
|
|
38
|
+
|
|
39
|
+
Finally, install the extension in VS Code. You can do this by dragging and dropping the downloaded `.vsix` file into the VS Code window.
|
|
40
|
+
|
|
41
|
+
</Tab>
|
|
42
|
+
<Tab title="Cursor">
|
|
43
|
+
|
|
44
|
+
First, install the following recommended extension:
|
|
45
|
+
|
|
46
|
+
- [VS Code YAML](vscode://redhat.vscode-yaml) (Optional, but recommended for YAML validation)
|
|
47
|
+
|
|
48
|
+
Then download the TestDriver extension:
|
|
49
|
+
|
|
50
|
+
<Card
|
|
51
|
+
title="Download the VS Code Extension"
|
|
52
|
+
icon="download"
|
|
53
|
+
href="https://github.com/testdriverai/vscode/releases/latest/download/testdriver.vsix"
|
|
54
|
+
>
|
|
55
|
+
Install the TestDriver extension from the VS Code Marketplace.
|
|
56
|
+
</Card>
|
|
57
|
+
|
|
58
|
+
Finally, install the extension in Cursor. For more information on installing extensions in Cursor, check out the [Cursor documentation](https://forum.cursor.com/t/how-to-install-vsix-format-extension/1667).
|
|
59
|
+
|
|
60
|
+
</Tab>
|
|
61
|
+
<Tab title="Everything Else">
|
|
62
|
+
|
|
63
|
+
Use JetBrains IDEs, VIM, or other editors? No problem! You can use TestDriver with the CLI. This quickstart contains both GUI and terminal commands to help you get started.
|
|
64
|
+
</Tab>
|
|
65
|
+
</Tabs>
|
|
66
|
+
</Accordion>
|
|
20
67
|
<Step title="Install TestDriver">
|
|
21
68
|
Install the TestDriver CLI globally:
|
|
22
69
|
```bash
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Performance"
|
|
3
|
+
sidebarTitle: "Performance"
|
|
4
|
+
description: "Expected Command Performance"
|
|
5
|
+
icon: "rabbit-running"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
This guide outlines the typical performance characteristics of each TestDriver command based on observed average execution times. These measurements can help guide optimization, identify bottlenecks, and set realistic expectations when designing automated tests.
|
|
9
|
+
|
|
10
|
+
## Fastest Commands
|
|
11
|
+
|
|
12
|
+
These commands execute quickly and can be relied upon for high-frequency usage in complex test sequences.
|
|
13
|
+
|
|
14
|
+
| Command | Avg Duration | Notes |
|
|
15
|
+
|---------|--------------|-------|
|
|
16
|
+
| `exec` | **0.28s** | Fastest command — used for running system-level operations or internal scripting logic. |
|
|
17
|
+
| `wait-for-image` | 2.21s | Relatively fast if the image is readily present; can be slower if the UI takes time to render. |
|
|
18
|
+
| `remember` | 2.80s | Internal memory operation — used for tracking previous outputs or locations. |
|
|
19
|
+
| `hover-text` | 3.11s | Efficient for UI elements with immediate accessibility. |
|
|
20
|
+
| `scroll` | 3.34s | Smooth and fast in most scrollable containers. |
|
|
21
|
+
| `assert` | 3.47s | Used for validation — usually lightweight unless image or text detection is delayed. |
|
|
22
|
+
|
|
23
|
+
## Medium Performance Commands
|
|
24
|
+
|
|
25
|
+
These are reliable but may involve minor delays due to image processing, UI rendering, or input simulation.
|
|
26
|
+
|
|
27
|
+
| Command | Avg Duration | Notes |
|
|
28
|
+
|---------|--------------|-------|
|
|
29
|
+
| `focus-application` | 4.83s | Includes system-level context switching — may vary by OS and app state. |
|
|
30
|
+
| `scroll-until-text` | 5.94s | Slightly slower due to iterative scroll and search logic. |
|
|
31
|
+
| `click` | 6.15s | Includes visual target matching and precise cursor control. |
|
|
32
|
+
| `press-keys` | 6.18s | Slightly slower if key sequences involve modifier keys or application delays. |
|
|
33
|
+
| `type` | 7.32s | Simulates real typing — intentionally throttled for realism and stability. |
|
|
34
|
+
| `wait` | 7.50s | Direct sleep used for explicit pauses. Use sparingly for faster tests. |
|
|
35
|
+
|
|
36
|
+
## Slower Commands
|
|
37
|
+
|
|
38
|
+
These commands tend to be slower due to intensive image comparison, polling loops, or delays in dynamic content rendering.
|
|
39
|
+
|
|
40
|
+
| Command | Avg Duration | Notes |
|
|
41
|
+
|---------|--------------|-------|
|
|
42
|
+
| `hover-image` | 11.95s | Requires locating a target image — performance depends on image quality and rendering time. |
|
|
43
|
+
| `wait-for-text` | 12.08s | Polls repeatedly for expected text — delay depends on application speed and visibility. |
|
|
44
|
+
| `match-image` | **16.55s** | Most time-consuming operation — relies on pixel-level image detection which may be affected by resolution, anti-aliasing, and scaling. |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
- **Avoid overusing `match-image`** unless strictly necessary. Prefer `wait-for-text` or `hover-text` when working with text-based UIs.
|
|
49
|
+
- **Use `remember` and `assert` early** in the test to catch failures before expensive commands.
|
|
50
|
+
- **Favor `exec` for background operations** like launching processes or setting up test conditions.
|
|
51
|
+
- **Use `wait` intentionally** and sparingly — prefer dynamic waits (`wait-for-image`, `wait-for-text`) when possible.
|
|
52
|
+
- **Monitor cumulative test time**. Replacing slower commands can dramatically improve test suite duration.
|
|
@@ -13,54 +13,7 @@ TestDriver isn't just a computer-use agent, it's an entire AI-native workflow fo
|
|
|
13
13
|
|
|
14
14
|
<AccordionGroup>
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<Tabs>
|
|
19
|
-
<Tab title="VS Code">
|
|
20
|
-
|
|
21
|
-
VS Code is the recommended IDE for TestDriver. First, install the following recommended extensions:
|
|
22
|
-
|
|
23
|
-
- [GitHub Copilot Chat](vscode://github.copilot-chat) (The free plan is just fine!)
|
|
24
|
-
- [VS Code YAML](vscode://redhat.vscode-yaml) (Optional, but recommended for YAML validation)
|
|
25
|
-
|
|
26
|
-
Then, download the TestDriver extension:
|
|
27
|
-
|
|
28
|
-
<Card
|
|
29
|
-
title="Download the VS Code Extension"
|
|
30
|
-
icon="download"
|
|
31
|
-
href="https://github.com/testdriverai/vscode/releases/latest/download/testdriver.vsix"
|
|
32
|
-
>
|
|
33
|
-
Get the latest version from GitHub releases.
|
|
34
|
-
</Card>
|
|
35
|
-
|
|
36
|
-
Finally, install the extension in VS Code. You can do this by dragging and dropping the downloaded `.vsix` file into the VS Code window.
|
|
37
|
-
|
|
38
|
-
</Tab>
|
|
39
|
-
<Tab title="Cursor">
|
|
40
|
-
|
|
41
|
-
First, install the following recommended extension:
|
|
42
|
-
|
|
43
|
-
- [VS Code YAML](vscode://redhat.vscode-yaml) (Optional, but recommended for YAML validation)
|
|
44
|
-
|
|
45
|
-
Then download the TestDriver extension:
|
|
46
|
-
|
|
47
|
-
<Card
|
|
48
|
-
title="Download the VS Code Extension"
|
|
49
|
-
icon="download"
|
|
50
|
-
href="https://github.com/testdriverai/vscode/releases/latest/download/testdriver.vsix"
|
|
51
|
-
>
|
|
52
|
-
Install the TestDriver extension from the VS Code Marketplace.
|
|
53
|
-
</Card>
|
|
54
|
-
|
|
55
|
-
Finally, install the extension in Cursor. For more information on installing extensions in Cursor, check out the [Cursor documentation](https://forum.cursor.com/t/how-to-install-vsix-format-extension/1667).
|
|
56
|
-
|
|
57
|
-
</Tab>
|
|
58
|
-
<Tab title="Everything Else">
|
|
59
|
-
|
|
60
|
-
Use JetBrains IDEs, VIM, or other editors? No problem! You can use TestDriver with the CLI. This quickstart contains both GUI and terminal commands to help you get started.
|
|
61
|
-
</Tab>
|
|
62
|
-
</Tabs>
|
|
63
|
-
</Accordion>
|
|
16
|
+
|
|
64
17
|
<Accordion title="Install the CLI">
|
|
65
18
|
|
|
66
19
|
Ensure you have Node.js (v16 or higher) installed. Then, install the TestDriver CLI globally using `npm`:
|
|
@@ -217,4 +170,4 @@ TestDriver can also generate tests without any input! Instead, it will suggest t
|
|
|
217
170
|
|
|
218
171
|
</Step>
|
|
219
172
|
|
|
220
|
-
</Steps>
|
|
173
|
+
</Steps>
|
package/lib/focus-application.js
CHANGED
|
@@ -38,7 +38,12 @@ end tell`;
|
|
|
38
38
|
// set value of attribute "AXMinimized" of every window of application process "${windowName}" to true
|
|
39
39
|
// end tell`;
|
|
40
40
|
|
|
41
|
-
const appleScriptActivate = (windowName) => `
|
|
41
|
+
const appleScriptActivate = (windowName) => `
|
|
42
|
+
tell application "${windowName}"
|
|
43
|
+
reopen
|
|
44
|
+
activate
|
|
45
|
+
end tell
|
|
46
|
+
`;
|
|
42
47
|
|
|
43
48
|
const runPwsh = (appName, method) => {
|
|
44
49
|
let script = `powershell -ExecutionPolicy Bypass -Command "& { ${scriptPath} '${appName}' '${method}' }"`;
|
|
@@ -88,9 +93,9 @@ async function showTerminal(appName) {
|
|
|
88
93
|
if (!config.TD_VM) {
|
|
89
94
|
try {
|
|
90
95
|
if (platform() == "mac") {
|
|
91
|
-
await execSync(`osascript -e '${appleScriptActivate(appName)}'
|
|
92
|
-
await execSync(`osascript -e '${appleScriptSetFrontmost(appName)}'
|
|
93
|
-
|
|
96
|
+
await execSync(`osascript -e '${appleScriptActivate(appName)}'`, { stdio: [] });
|
|
97
|
+
await execSync(`osascript -e '${appleScriptSetFrontmost(appName)}'`, { stdio: [] });
|
|
98
|
+
|
|
94
99
|
} else if (platform() == "windows") {
|
|
95
100
|
return runPwsh(appName, "Restore");
|
|
96
101
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
version: 5.6.5
|
|
2
|
+
session: 682a09d01e7bdbd8dadde346
|
|
3
|
+
steps:
|
|
4
|
+
- prompt: focus chrome
|
|
5
|
+
commands:
|
|
6
|
+
- command: focus-application
|
|
7
|
+
name: Google Chrome
|
|
8
|
+
- prompt: focus chrome
|
|
9
|
+
commands:
|
|
10
|
+
- command: focus-application
|
|
11
|
+
name: Google Chrome
|
|
12
|
+
- prompt: focus chrome
|
|
13
|
+
commands:
|
|
14
|
+
- command: focus-application
|
|
15
|
+
name: Google Chrome
|
|
File without changes
|