Overview
Test Structure
Field | Required | Description |
---|---|---|
name |
✅ | Name of the test suite |
description |
Description of the test suite | |
vars |
Configuration variables that can be referenced in test steps using {{ vars.key }} syntax | |
tests |
✅ | Array of test cases |
Test Step Structure
Field | Required | Description |
---|---|---|
name |
✅ | Name of the test step |
plugin |
✅ | Plugin to use for this step |
config |
✅ | Configuration for the plugin |
assertions |
Assertions to validate the response | |
save |
Response values to save for use in later steps | |
retry |
Retry policy for the step activity |
Supported Plugins
http
delay
script
sql
log
agent
browser
supabase
Plugin Configurations
Plugin: script
Field | Required | Description | Type / Allowed Values | Notes |
---|---|---|---|---|
language |
✅ | Script language to use | javascript , shell |
- |
script |
(oneOf) | Inline script content | string |
- |
file |
(oneOf) | Path to external script file | string |
- |
timeout |
Script execution timeout | string |
- |
Plugin: sql
Field | Required | Description | Type / Allowed Values | Notes |
---|---|---|---|---|
driver |
✅ | Database driver to use | postgres , mysql , sqlite , sqlserver |
- |
dsn |
✅ | Database connection string (Data Source Name) | string |
- |
commands[] |
(oneOf) | Array of SQL commands to execute | array of string |
- |
file |
(oneOf) | Path to external SQL file | string |
- |
timeout |
Query execution timeout | string |
- |
sql
Assertions
Field | Required | Description | Allowed Values |
---|---|---|---|
type |
✅ | Type of SQL assertion | row_count , query_count , success_count , column_value |
expected |
✅ | Expected value for the assertion | - |
query_index |
(if type is row_count ) (if type is column_value ) |
Index of query to check (for row_count and column_value assertions) | - |
row_index |
(if type is column_value ) |
Index of row to check (for column_value assertion) | - |
column |
(if type is column_value ) |
Column name to check (for column_value assertion) | - |
sql
Save Fields
Field | Required | Description | Notes |
---|---|---|---|
sql_result |
✅ | Path to extract from SQL result (e.g., '.queries[0].rows[0].id') | - |
as |
Variable name to save the extracted value as | - | |
required |
Whether the value is required (defaults to true) | - |
Plugin: log
Field | Required | Description | Type / Allowed Values | Notes |
---|---|---|---|---|
message |
✅ | Message to log (supports template variables) | string |
- |
Plugin: agent
Field | Required | Description | Type / Allowed Values | Notes |
---|---|---|---|---|
agent |
✅ | Type of coding agent to use | claude-code |
- |
prompt |
✅ | Prompt to send to the agent (supports template variables) | string |
- |
mode |
Agent execution mode | single , continue , resume |
- | |
session_id |
Session ID for resume mode (supports template variables) | string |
- | |
max_turns |
Maximum number of conversation turns | integer |
- | |
timeout |
Agent execution timeout | string |
- | |
system_prompt |
System prompt for the agent | string |
- | |
output_format |
Output format from the agent | text , json , streaming-json |
- | |
continue_recent |
Continue the most recent conversation | boolean |
- | |
save_full_response |
Save the complete response to context | boolean |
- |
Plugin: browser
Field | Required | Description | Type / Allowed Values | Notes |
---|---|---|---|---|
task |
✅ | Task description for the browser agent to perform (supports template variables) | string |
- |
llm |
✅ | No description | object |
- |
llm.provider |
✅ | LLM provider to use | openai , anthropic |
- |
llm.model |
✅ | LLM model to use (e.g., gpt-4, claude-3-sonnet) | string |
- |
llm.config |
LLM configuration (API keys, etc.) | object |
- | |
executor_type |
Browser executor type | python |
- | |
timeout |
Browser automation timeout | string |
- | |
max_steps |
Maximum number of browser automation steps | integer |
- | |
browser_type |
Browser type to use | chromium , chrome , edge |
- | |
headless |
Run browser in headless mode | boolean |
- | |
use_vision |
Enable visual processing | boolean |
- | |
session_id |
Browser session ID for session persistence (supports template variables) | string |
- | |
save_screenshots |
Save screenshots during execution | boolean |
- | |
allowed_domains[] |
List of allowed domains for browser navigation | array of string |
- | |
viewport |
Browser viewport configuration | object |
- | |
viewport.width |
Viewport width in pixels | integer |
- | |
viewport.height |
Viewport height in pixels | integer |
- |
Plugin: supabase
Field | Required | Description | Type / Allowed Values | Notes |
---|---|---|---|---|
url |
✅ | Supabase project URL | string |
- |
key |
✅ | Supabase API key (anon or service key) | string |
- |
operation |
✅ | Supabase operation to perform | select , insert , update , delete , rpc , auth_create_user , auth_delete_user , auth_sign_up , auth_sign_in , storage_create_bucket , storage_upload , storage_download , storage_delete |
- |
table |
Table name for database operations | string |
- | |
select |
Configuration for select operation | object |
- | |
select.columns[] |
Columns to select | array of string |
- | |
select.filters[] |
Filters to apply | array of objects |
- | |
select.filters[].column |
✅ | No description | string |
- |
select.filters[].operator |
✅ | No description | eq , neq , gt , gte , lt , lte , like , ilike , is , in , contains , contained_by , range_gt , range_gte , range_lt , range_lte |
- |
select.filters[].value |
✅ | Filter value | any |
- |
select.order[] |
Ordering configuration | array of objects |
- | |
select.order[].column |
✅ | No description | string |
- |
select.order[].ascending |
No description | boolean |
- | |
select.limit |
No description | integer |
- | |
select.offset |
No description | integer |
- | |
select.count |
Count type for query | exact , planned , estimated |
- | |
insert |
Configuration for insert operation | object |
- | |
insert.data |
✅ | Data to insert (object or array of objects) | any |
- |
insert.upsert |
Use upsert (insert or update) | boolean |
- | |
insert.on_conflict |
Column(s) for conflict resolution | string |
- | |
update |
Configuration for update operation | object |
- | |
update.data |
✅ | Data to update | object |
- |
update.filters[] |
Filters to apply for update | array of objects |
- | |
update.filters[].column |
✅ | No description | string |
- |
update.filters[].operator |
✅ | No description | string |
- |
update.filters[].value |
✅ | Filter value | any |
- |
delete |
Configuration for delete operation | object |
- | |
delete.filters[] |
✅ | Filters to apply for delete | array of objects |
- |
delete.filters[].column |
✅ | No description | string |
- |
delete.filters[].operator |
✅ | No description | string |
- |
delete.filters[].value |
✅ | Filter value | any |
- |
rpc |
Configuration for RPC function call | object |
- | |
rpc.function |
✅ | Function name to call | string |
- |
rpc.params |
Function parameters | object |
- | |
auth |
Configuration for auth operations | object |
- | |
auth.email |
No description | string |
- | |
auth.password |
No description | string |
- | |
auth.user_id |
No description | string |
- | |
auth.user_metadata |
No description | object |
- | |
auth.app_metadata |
No description | object |
- | |
storage |
Configuration for storage operations | object |
- | |
storage.bucket |
No description | string |
- | |
storage.path |
No description | string |
- | |
storage.file_content |
No description | string |
- | |
storage.file_path |
No description | string |
- | |
storage.public |
No description | boolean |
- | |
storage.cache_control |
No description | string |
- | |
storage.content_type |
No description | string |
- | |
timeout |
Operation timeout | string |
- |
Assertions
Field | Required | Description | Allowed Values |
---|---|---|---|
type |
✅ | Type of assertion | status_code , json_path , header , row_count , query_count , success_count , column_value , supabase_count , supabase_error |
expected |
✅ | Expected value for the assertion | - |
path |
(if type is json_path ) |
JSON path for json_path assertion type | - |
name |
(if type is header ) |
Header name for header assertion type | - |
query_index |
(if type is row_count ) (if type is column_value ) |
Index of query to check (for SQL assertions) | - |
row_index |
(if type is column_value ) |
Index of row to check (for column_value assertion) | - |
column |
(if type is column_value ) |
Column name to check (for column_value assertion) | - |
Save Fields
Field | Required | Description | Notes |
---|---|---|---|
json_path |
(oneOf) | JSON path to extract from response | - |
header |
(oneOf) | Header name to extract from response | - |
sql_result |
(oneOf) | Path to extract from SQL result (e.g., '.queries[0].rows[0].id') | - |
as |
✅ | Variable name to save the extracted value as | - |
required |
Whether the value is required (defaults to true) | - |