testdriverai 6.0.22 → 6.0.23

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.
@@ -0,0 +1,57 @@
1
+ <svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0)">
3
+ <g filter="url(#filter0_d)">
4
+ <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="100" height="100">
5
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M70.9119 99.5723C72.4869 100.189 74.2828 100.15 75.8725 99.3807L96.4604 89.4231C98.624 88.3771 100 86.1762 100 83.7616V16.2392C100 13.8247 98.624 11.6238 96.4604 10.5774L75.8725 0.619067C73.7862 -0.389991 71.3446 -0.142885 69.5135 1.19527C69.252 1.38636 69.0028 1.59985 68.769 1.83502L29.3551 37.9795L12.1872 24.88C10.5891 23.6607 8.35365 23.7606 6.86938 25.1178L1.36302 30.1525C-0.452603 31.8127 -0.454583 34.6837 1.35854 36.3466L16.2471 50.0001L1.35854 63.6536C-0.454583 65.3164 -0.452603 68.1876 1.36302 69.8477L6.86938 74.8824C8.35365 76.2395 10.5891 76.34 12.1872 75.1201L29.3551 62.0207L68.769 98.1651C69.3925 98.7923 70.1246 99.2645 70.9119 99.5723ZM75.0152 27.1813L45.1092 50.0001L75.0152 72.8189V27.1813Z" fill="white"/>
6
+ </mask>
7
+ <g mask="url(#mask0)">
8
+ <path d="M96.4614 10.593L75.8567 0.62085C73.4717 -0.533437 70.6215 -0.0465506 68.7498 1.83492L1.29834 63.6535C-0.515935 65.3164 -0.513852 68.1875 1.30281 69.8476L6.8125 74.8823C8.29771 76.2395 10.5345 76.339 12.1335 75.1201L93.3604 13.18C96.0854 11.102 100 13.0557 100 16.4939V16.2535C100 13.84 98.6239 11.64 96.4614 10.593Z" fill="#D9D9D9"/>
9
+ <g filter="url(#filter1_d)">
10
+ <path d="M96.4614 89.4074L75.8567 99.3797C73.4717 100.534 70.6215 100.047 68.7498 98.1651L1.29834 36.3464C-0.515935 34.6837 -0.513852 31.8125 1.30281 30.1524L6.8125 25.1177C8.29771 23.7605 10.5345 23.6606 12.1335 24.88L93.3604 86.8201C96.0854 88.8985 100 86.9447 100 83.5061V83.747C100 86.1604 98.6239 88.3603 96.4614 89.4074Z" fill="#E6E6E6"/>
11
+ </g>
12
+ <g filter="url(#filter2_d)">
13
+ <path d="M75.8578 99.3807C73.4721 100.535 70.6219 100.047 68.75 98.1651C71.0564 100.483 75 98.8415 75 95.5631V4.43709C75 1.15852 71.0565 -0.483493 68.75 1.83492C70.6219 -0.0467614 73.4721 -0.534276 75.8578 0.618963L96.4583 10.5773C98.6229 11.6237 100 13.8246 100 16.2391V83.7616C100 86.1762 98.6229 88.3761 96.4583 89.4231L75.8578 99.3807Z" fill="white"/>
14
+ </g>
15
+ <g style="mix-blend-mode:overlay" opacity="0.25">
16
+ <path style="mix-blend-mode:overlay" opacity="0.25" fill-rule="evenodd" clip-rule="evenodd" d="M70.8508 99.5723C72.4258 100.189 74.2218 100.15 75.8115 99.3807L96.4 89.4231C98.5635 88.3771 99.9386 86.1762 99.9386 83.7616V16.2391C99.9386 13.8247 98.5635 11.6239 96.4 10.5774L75.8115 0.618974C73.7252 -0.390085 71.2835 -0.142871 69.4525 1.19518C69.1909 1.38637 68.9418 1.59976 68.7079 1.83493L29.2941 37.9795L12.1261 24.88C10.528 23.6606 8.2926 23.7605 6.80833 25.1177L1.30198 30.1524C-0.51354 31.8126 -0.515625 34.6837 1.2975 36.3465L16.186 50L1.2975 63.6536C-0.515625 65.3164 -0.51354 68.1875 1.30198 69.8476L6.80833 74.8824C8.2926 76.2395 10.528 76.339 12.1261 75.1201L29.2941 62.0207L68.7079 98.1651C69.3315 98.7923 70.0635 99.2645 70.8508 99.5723ZM74.9542 27.1812L45.0481 50L74.9542 72.8188V27.1812Z" fill="url(#paint0_linear)"/>
17
+ </g>
18
+ </g>
19
+ </g>
20
+ </g>
21
+ <defs>
22
+ <filter id="filter0_d" x="-6.25" y="-4.16667" width="112.5" height="112.5" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
23
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
24
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
25
+ <feOffset dy="2.08333"/>
26
+ <feGaussianBlur stdDeviation="3.125"/>
27
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"/>
28
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
29
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
30
+ </filter>
31
+ <filter id="filter1_d" x="-8.39436" y="15.6951" width="116.728" height="92.6376" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
32
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
33
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
34
+ <feOffset/>
35
+ <feGaussianBlur stdDeviation="4.16667"/>
36
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
37
+ <feBlend mode="overlay" in2="BackgroundImageFix" result="effect1_dropShadow"/>
38
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
39
+ </filter>
40
+ <filter id="filter2_d" x="60.4167" y="-8.33346" width="47.9167" height="116.667" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
41
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
42
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
43
+ <feOffset/>
44
+ <feGaussianBlur stdDeviation="4.16667"/>
45
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
46
+ <feBlend mode="overlay" in2="BackgroundImageFix" result="effect1_dropShadow"/>
47
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
48
+ </filter>
49
+ <linearGradient id="paint0_linear" x1="49.939" y1="-5.19792e-05" x2="49.939" y2="100.001" gradientUnits="userSpaceOnUse">
50
+ <stop stop-color="white"/>
51
+ <stop offset="1" stop-color="white" stop-opacity="0"/>
52
+ </linearGradient>
53
+ <clipPath id="clip0">
54
+ <rect width="100" height="100" fill="white"/>
55
+ </clipPath>
56
+ </defs>
57
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M897.246 286.869H889.819C850.735 286.808 819.017 318.46 819.017 357.539V515.589C819.017 547.15 792.93 572.716 761.882 572.716C743.436 572.716 725.02 563.433 714.093 547.85L552.673 317.304C539.28 298.16 517.486 286.747 493.895 286.747C457.094 286.747 423.976 318.034 423.976 356.657V515.619C423.976 547.181 398.103 572.746 366.842 572.746C348.335 572.746 329.949 563.463 319.021 547.881L138.395 289.882C134.316 284.038 125.154 286.93 125.154 294.052V431.892C125.154 438.862 127.285 445.619 131.272 451.34L309.037 705.2C319.539 720.204 335.033 731.344 352.9 735.392C397.616 745.557 438.77 711.135 438.77 667.278V508.406C438.77 476.845 464.339 451.279 495.904 451.279H495.995C515.02 451.279 532.857 460.562 543.785 476.145L705.235 706.661C718.659 725.835 739.327 737.218 763.983 737.218C801.606 737.218 833.841 705.9 833.841 667.308V508.376C833.841 476.815 859.41 451.249 890.975 451.249H897.276C901.233 451.249 904.43 448.053 904.43 444.097V294.021C904.43 290.065 901.233 286.869 897.276 286.869H897.246Z" fill="white"/>
3
+ </svg>
@@ -3,6 +3,7 @@ title: "Performance"
3
3
  sidebarTitle: "Performance"
4
4
  description: "Expected Command Performance"
5
5
  icon: "rabbit-running"
6
+ mode: "wide"
6
7
  ---
7
8
 
8
9
  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.
@@ -3,108 +3,83 @@ title: "Quickstart"
3
3
  sidebarTitle: "Quickstart"
4
4
  description: "Get started with TestDriver in minutes."
5
5
  icon: "gauge-high"
6
+ mode: "wide"
6
7
  ---
7
8
 
8
- import Comments from "/snippets/comments.mdx";
9
-
10
- TestDriver isn't just a computer-use agent, it's an entire AI-native workflow for creating end-to-end tests. Follow these steps to set up your environment and get started with TestDriver.
9
+ <Tip>
10
+ You will need a [TestDriver Pro](https://app.testdriver.ai/team) account
11
+ ($20/m) to complete setup.
12
+ </Tip>
11
13
 
12
14
  <Steps>
13
- <Step title="Create a TestDriver Account">
14
- Because TestDriver is powered by agentic users, a **free** account is required to access:
15
+ <Step title="Install TestDriver">
15
16
 
16
- - Dedicated Virtual Machines (VMs) for running agents
17
- - TestDriver AI \+ Vision models
18
- - Community support
17
+ Click the button below to install the TestDriver extension for your preferred IDE. Then, follow the setup guide and chat with TestDriver to create your first test.
19
18
 
20
- <Card title="Sign Up Now" icon="arrow-turn-down-right" iconType="duotone" horizontal href="https://app.testdriver.ai">
21
- No Credit-Card Required
22
- </Card>
19
+ <Card
20
+ horizontal
21
+ title="VS Code"
22
+ arrow
23
+ href="vscode:extension/testdriver.testdriver"
24
+ icon="/images/content/extension/vscode.svg"
25
+ ></Card>
23
26
 
24
- </Step>
25
- <Step title="Set up your environment">
26
-
27
- Copy your API key from [the TestDriver dashboard](https://app.testdriver.ai/team), and set it as an environment variable.
28
-
29
- <Tabs>
30
- <Tab title="macOS / Linux">
31
- ```bash Export an environment variable on macOS or Linux systems
32
- export TD_API_KEY="your_api_key_here"
33
- ```
34
- </Tab>
35
- <Tab title="Windows">
36
- ```powershell Export an environment variable in PowerShell
37
- setx TD_API_KEY "your_api_key_here"
38
- ```
39
- </Tab>
40
- </Tabs>
27
+ <Card
28
+ horizontal
29
+ title="Cursor"
30
+ arrow
31
+ href="cursor:extension/testdriver.testdriver"
32
+ icon="/images/content/extension/cursor.svg"
41
33
 
42
- </Step>
43
- <Step title="Try an example test">
44
-
45
- Download the TestDriver GitHub repository and run the web example test.
34
+ > </Card>
46
35
 
47
- ```bash
48
- git clone https://github.com/testdriverai/cli testdriverai
49
- cd testdriverai/testdriver/examples/web
50
- ```
36
+ <Card
37
+ horizontal
38
+ title="Windsurf"
39
+ arrow
40
+ href="windsurf:extension/testdriver.testdriver"
41
+ icon="/images/content/extension/windsurf.svg"
42
+ ></Card>
51
43
 
52
- TestDriver tests are written in YAML, a human-readable data format. The `example.yaml` file contains a series of steps that the agent will execute.
53
-
54
- ```yaml testdriver/test.yaml
55
- steps:
56
- - prompt: log in
57
- - prompt: add an item to the cart
58
- - prompt: click on the cart icon
59
- - prompt: complete checkout
60
- ```
61
-
62
- Each step has a `prompt` that describes what the agent should do. The agent will use the prompt to generate [commands](/commands) that make the tests faster and more reliable the next time you run the test.
44
+ The extension will generate most of your tests for you, but you'll probably want to customize them. [Learn more about editing tests](/getting-started/editing).
63
45
 
64
46
  </Step>
65
- <Step title="Generate test steps from prompts">
47
+ <Step title="Run your tests in CI/CD">
66
48
 
67
- Run the following command to run the test file. TestDriver will spawn a virtual machine, launch the sandbox test page, and execute the steps defined in the `example.yaml` file.
49
+ Next, use `testdriverai` to run your tests in CI/CD pipelines.
68
50
 
69
51
  ```bash
70
- npx testdriverai@beta run example.yaml --write --heal
52
+ TD_API_KEY=YOUR_KEY npx testdriverai@latest run testdriver/test.yaml
71
53
  ```
72
54
 
73
- The `--write` flag tells TestDriver to save any generated commands to the test file, and the `--heal` flag allows TestDriver to recover from unexpected issues during the test run.
55
+ Note that you'll want to store your API key within secret storeage. [Learn more about running tests in CI/CD pipelines](/action/setup).
74
56
 
75
57
  </Step>
76
- <Step title="Run a regression test">
77
-
78
- ```yaml
79
- version: 5.7.7
80
- session: 682f6071811bd5a322c0e6dd
81
- steps:
82
- - prompt: focus chrome
83
- commands:
84
- - command: focus-application
85
- name: Google Chrome
86
- - prompt: enter a username
87
- commands:
88
- - command: hover-text
89
- text: Username
90
- description: username input field
91
- action: click
92
- - command: type
93
- text: standard_user
94
- - prompt: enter a password
95
- commands:
96
- - command: hover-text
97
- text: Password
98
- description: password input field
99
- action: click
100
- - command: type
101
- text: secret_password
102
- ```
103
-
104
- The `--write` command tells the agent to save the generated commands to the test file, and the `--heal` command gives the agent permission to recover if something goes wrong.
105
58
 
106
- </Step>
107
- </Steps>
59
+ <Step title="Managing your test suite">
60
+
61
+ There's so much more you can do with TestDriver! Here are some popular features to explore:
62
+
63
+ <Columns cols={2}>
64
+ <Card title="Importing Tests" icon="table" href="/importing/csv">
65
+ Generate tests from other formats like CSV, Gherkin, etc.
66
+ </Card>
67
+ <Card title="Self Healing" icon="bandage" href="/features/auto-healing">
68
+ Automatically update tests when the application changes.
69
+ </Card>
70
+ <Card title="Variable Test Data" icon="square-root-variable" href="/guide/variables">
71
+ Use variables run the same test with different data sets.
72
+ </Card>
73
+ <Card title="Reusable Snippets" icon="repeat" href="/features/reusable-snippets">
74
+ Embed reusable snippets to simplify your test scripts.
75
+ </Card>
76
+ <Card title="Running Custom Code" icon="code" href="/guide/code">
77
+ Use custom powershell or NodeJS code to extend the capabilities of your tests.
78
+ </Card>
79
+ <Card title="Setup & Teardown" icon="wrench" href="/guide/lifecycle">
80
+ Systemically prepare the sandbox before running tests and clean up afterward.
81
+ </Card>
82
+ </Columns>
108
83
 
109
- <Comments />
110
- ```
84
+ </Step>
85
+ </Steps>
@@ -1,21 +1,21 @@
1
1
  ---
2
- title: "What's TestDriver?"
3
- sidebarTitle: "What's TestDriver?"
2
+ title: "What Is TestDriver?"
3
+ sidebarTitle: "What Is TestDriver?"
4
4
  description: "TestDriver is a computer-use agent for QA testing of user interfaces."
5
5
  icon: "circle-info"
6
6
  ---
7
7
 
8
- TestDriver uses AI vision and keyboard and mouse control to automate end-to-end testing. TestDriver is `selectorless` meaning it isn't aware of the underlying code structure.
8
+ TestDriver uses AI vision and keyboard and mouse control to automate end-to-end testing. TestDriver is `selectorless`, meaning it doesn't rely on CSS selectors or static analysis to find elements.
9
9
 
10
10
  <CardGroup cols={3}>
11
- <Card title="Easier Setup" icon="wrench">
12
- No need to craft complex selectors.
11
+ <Card title="Cross-Platform" icon="bolt">
12
+ Test web, mobile, desktop and more with a single tool.
13
13
  </Card>
14
- <Card title="More Power" icon="bolt">
15
- TestDriver can test anything a user can do.
14
+ <Card title="Easy Setup" icon="wrench">
15
+ No need to craft or maintain complex selectors.
16
16
  </Card>
17
17
  <Card title="Less Maintenance" icon="bandage">
18
- Tests don't break when code changes.
18
+ Tests won't break when code changes.
19
19
  </Card>
20
20
  </CardGroup>
21
21
 
package/docs/styles.css CHANGED
@@ -4,3 +4,7 @@
4
4
  padding-bottom: 0 !important;
5
5
  text-decoration: none !important;
6
6
  }
7
+
8
+ .card img {
9
+ background-color: transparent !important;
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testdriverai",
3
- "version": "6.0.22",
3
+ "version": "6.0.23",
4
4
  "description": "Next generation autonomous AI agent for end-to-end testing of web & desktop",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -1,125 +0,0 @@
1
- ---
2
- title: "Setting up TestDriver CLI"
3
- sidebarTitle: "CLI Setup"
4
- description: "Follow these steps to install and set up TestDriver CLI."
5
- icon: "square-terminal"
6
- ---
7
-
8
- <Steps>
9
- <Step title="Install Node.js">
10
- Ensure you have Node.js (v16 or higher) installed.
11
-
12
- Check your Node.js version:
13
-
14
- ```bash
15
- node -v
16
- ```
17
-
18
- If not installed, download it from [Node.js Official Website](https://nodejs.org/).
19
-
20
- </Step>
21
- <Step title="Install NPM">
22
- **npm**: Comes with Node.js. Verify `npm` is installed:
23
-
24
- ```bash
25
- npm -v
26
- ```
27
-
28
- </Step>
29
- <Step title="Set Up Your Test Runner" stepNumber={3}>
30
- In your project directory, run the interactive setup process:
31
-
32
- ```sh
33
- npx testdriverai@latest init
34
- ```
35
-
36
- TestDriver requires a runner to execute tests. You can use either a hosted sandbox or your own computer.
37
-
38
- - **TestDriver Sandbox** - Run tests in a ephemeral linux virtual machine. Recommended for ease of use, added privacy, and parallelization. Requires a TestDriver API key.
39
- - **Local Runner** - Run tests on your own computer. Recommended for working with existing user sessions, files, and applications. Requires additional setup.
40
-
41
- <Tabs>
42
- <Tab title="Hosted Sandbox Setup">
43
- Running `init` in your project directory and choose "yes" for the sandbox option. This will prompt you for your API key.
44
-
45
- ```
46
- Beginning setup...
47
- ✔ Use TestDriver Sandbox Runners? (Recommended) … yes
48
- ? API KEY (from https://app.testdriver.ai/team) › ********
49
- ```
50
-
51
- This will write the `TD_API_KEY` values to `.env` file in your project directory.
52
- </Tab>
53
- <Tab title="Local Windows Setup">
54
- #### Install Python & Visual Studio build tools
55
-
56
- ```powershell
57
- choco install python visualstudio2022-workload-vctools -y
58
- ```
59
-
60
- #### Install Node.js
61
-
62
- You will also need Node.js if you don't have it yet.
63
-
64
- ```powershell
65
- choco install nodejs-lts --version="20.17.0"
66
- ```
67
-
68
- #### Set execution policy
69
-
70
- Open a new terminal with admin privileges and execute the following command :
71
-
72
- ```powershell
73
- Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
74
- ```
75
-
76
- This gives TestDriver the right to execute it's scripts and is only valid for the current user.
77
- </Tab>
78
- <Tab title="Local Mac Setup">
79
- #### Enable screen recording permissions
80
-
81
- TestDriver requires screen recording permissions to capture your screen during test execution.
82
-
83
- - Open **System Preferences \> Security & Privacy \> Privacy \> Screen Recording**.
84
- - Check the box next to your terminal application (for example, Terminal, iTerm2) to allow screen recording.
85
-
86
- This is required for TestDriver to capture your screen during test execution.
87
-
88
- #### Enable accessibility permissions
89
-
90
- - Open **System Preferences \> Security & Privacy \> Privacy \> Accessibility**.
91
- - Check the box next to your terminal application (for example, Terminal, iTerm2) to allow accessibility features.
92
-
93
- This is required for TestDriver to interact with your applications during test execution.
94
- </Tab>
95
- </Tabs>
96
-
97
- </Step>
98
- <Step title="Run TestDriver in Interactive Mode" stepNumber={4}>
99
- Start TestDriver in interactive mode.
100
-
101
- ```bash
102
- npx testdriverai@latest
103
- ```
104
-
105
- You should see a prompt like this:
106
-
107
- ```bash
108
- Howdy! I'm TestDriver v4.2.26
109
- ```
110
-
111
- </Step>
112
- </Steps>
113
-
114
- <CardGroup cols={2}>
115
- <Card
116
- title="Self-Driving Tests"
117
- icon="link"
118
- href="/getting-started/generating"
119
- >
120
- TestDriver will come up with it's own ideas for testing.
121
- </Card>
122
- <Card title="Test Copilot" icon="link" href="/getting-started/writing">
123
- Write custom tests
124
- </Card>
125
- </CardGroup>