> ## Documentation Index
> Fetch the complete documentation index at: https://docs.testorim.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Core capabilities

> Everything a Testorim run can do: authoring, execution, evidence, and the integrations that surround it.

## Authoring

| Capability          | What it means                                                                              |
| ------------------- | ------------------------------------------------------------------------------------------ |
| Plain-English tests | Describe the workflow. Testorim plans the steps.                                           |
| Negative tests      | Mark a test **Should fail** and it passes only when the app correctly refuses.             |
| Test data tokens    | `{{random.email}}`, `{{date.iso}}` and project-defined variables, substituted at run time. |
| Mid-run prompts     | A step can stop and ask you for an OTP, a 2FA code, or a CAPTCHA answer.                   |
| Saved procedures    | Save a passing run and replay it forever without planning it again.                        |
| Playwright export   | Export a saved procedure as a standalone Playwright spec.                                  |

## Execution

| Capability       | What it means                                                              |
| ---------------- | -------------------------------------------------------------------------- |
| Real browser     | Every run drives Chromium through Playwright against your live site.       |
| Live screenshots | Frames stream to the browser panel while the run is in progress.           |
| Environments     | Run the same test against staging, production, or a PR preview.            |
| Schedules        | Cron expressions per procedure, dispatched server-side.                    |
| Time limits      | Per-run cap from 5 to 120 minutes, for scrapers and background jobs.       |
| Cancel           | Stop a run, or a whole batch, and the browser is torn down within seconds. |
| Concurrency      | Runs queue against your plan's concurrent-run limit.                       |

## Checks a step can make

| Check         | Example                                                                       |
| ------------- | ----------------------------------------------------------------------------- |
| Element state | `visible`, `hidden`, `enabled`, `disabled`, `checked`, `selected`, `readonly` |
| Text          | `contains:`, `not contains:`, `text:`, `value:`                               |
| Page load     | `loaded`, checking the document's own status, readiness and content           |
| API call      | After a click, assert the request it fired returned `2xx`                     |
| Download      | Assert the filename, content type or size of a triggered download             |
| Database      | A read-only `SELECT` against a connection you configured                      |
| Visual diff   | Pixel comparison against a saved baseline for that step and viewport          |
| Performance   | LCP / FCP / TTFB against a per-procedure budget                               |

See [Steps and expected outcomes](/test-creation/steps-and-outcomes) for the
full grammar.

## Evidence captured on every run

* A final screenshot, and a screenshot at the moment of each failed step
* Before/after page snapshots per step: URL, title and visible text
* The element state read back off the page for every assertion
* Console messages and network requests recorded during each step
* An accessibility scan of the finished page
* Performance metrics for each page that loaded
* Video and trace artifacts for the run

## Beyond a single run

| Capability          | What it means                                                                                   |
| ------------------- | ----------------------------------------------------------------------------------------------- |
| Flake tracking      | Pass rate over 7/30/90 days, with a composite flakiness score per procedure.                    |
| Visual baselines    | Set a baseline per step and viewport; later runs diff against it.                               |
| Performance budgets | Cap LCP, FCP and TTFB per procedure; a breach alerts like a failure.                            |
| Form fuzzing        | Generate adversarial payloads for every `type` step in a procedure and fire them as a batch.    |
| Role boundary probe | Walk a list of URLs as a privileged and a low-privilege session and report what both can reach. |
| Run sharing         | A revocable public link to one run's report, with credentials stripped.                         |

## Integrations

* [GitHub](/integrations/github): a sticky PR comment with the run results, and a mirror of your own check runs
* [Slack](/integrations/slack): failure alerts to a channel you pick
* [Email](/integrations/email-alerts): failure alerts to a list of recipients
* [CLI](/developers/cli) and the [HTTP API](/api-reference/introduction): trigger runs from CI

<Note>
  Some capabilities are gated by plan. The current limits are on the
  [pricing page](https://testorim.com/pricing).
</Note>


## Related topics

- [What is Testorim](/index.md)
- [Create a project](/getting-started/create-a-project.md)
- [Get one run with all artifacts](/api-reference/runs/get-one-run-with-all-artifacts.md)
