docs/extend/scout.md
Scout is Kibana’s modern UI and API test framework built on Playwright. It focuses on fast test execution, a good developer experience, and reusable test building blocks (e.g., fixtures, page objects and API services).
Import the right Scout package in your Scout tests:
@kbn/scout| Package | Use in tests |
|---|---|
@kbn/scout | Platform (shared baseline) |
@kbn/scout)| Package | Use in tests |
|---|---|
@kbn/scout-oblt | {icon}logo_observability Observability solution |
@kbn/scout-security | {icon}logo_security Security solution |
@kbn/scout-search | {icon}logo_elasticsearch Search solution |
::::::{note}
Fixtures, page objects, and API helpers defined in @kbn/scout can be imported by solution-specific Scout packages. When they are defined in a solution package or a plugin they will only be available to that solution or plugin.
::::::
We welcome contributions to one of the Scout packages.
| If your helper/code… | Put it… | Examples |
|---|---|---|
| Is reusable across many plugins/teams | In @kbn/scout | Generic fixtures, page objects, and API helpers |
| Is reusable but scoped to a solution | In the solution Scout package (for example @kbn/scout-security, @kbn/scout-oblt, @kbn/scout-search) | Solution workflows and domain-specific helpers |
| Is specific to one plugin or package | In your plugin or package’s test/scout directory | Components specific to your plugin or package only |
Internal (Elasticians): reach out to the AppEx QA team in the #kibana-scout Slack channel for guidance.
External contributors: open an issue in the Kibana repository and label it with Team:QA.
No—good test design still matters.
No. Scout supports both UI and API testing with Playwright.
Often, yes—especially with parallel test execution.
It’s easier to iterate and maintain, and it can enable smarter test selection in the future.
esArchiver)? [scout-faq-ftr-services]Not directly—use Scout fixtures instead.
Existing FTR tests continue to run, and teams can migrate them to Scout incrementally over time.
Yes. See Feature flags for details on enabling flags at runtime with apiServices.core.settings() or using custom server configurations.