﻿---
title: Scout
description: 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...
url: https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout
products:
  - Kibana
---

# Scout
Scout is Kibana’s **modern UI and API test framework** built on [Playwright](https://playwright.dev). It focuses on **fast test execution**, a good **developer experience**, and **reusable** test building blocks (e.g., [fixtures](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/fixtures), [page objects](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/page-objects) and [API services](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/api-services)).

## Start here

- [Getting started](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/getting-started)
- [Best practices](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/best-practices)
- [UI testing](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/ui-testing)
- [API testing](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/api-testing)


## Scout benefits

- **Parallel execution**: run UI suites in [parallel](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/parallelism) against the same deployment.
- **Co-located tests**: keep tests close to [plugin code](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/setup-plugin) for easier iteration and maintenance.
- **Deployment-agnostic**: write tests once, then use [tags](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/deployment-tags) to declare where they should run (stateful/serverless).
- **Fixture-based**: [fixtures](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/fixtures) cover auth, data setup, clients, and common workflows.
- **Better debugging**: use Playwright [UI Mode](https://playwright.dev/docs/test-ui-mode).
- **Reporting**: we capture test events that power our dashboards (for example, skipped tests, flaky tests, and more).
- **Reusability**: reuse or write reusable fixtures, page objects and API helpers to reduce duplication.
- **Follows modern best practices**: check out our [Scout best practices](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/best-practices).


## Scout packages

**Import the right Scout package in your Scout tests:**
- **Platform-owned tests** → `@kbn/scout`


| Package      | Use in tests               |
|--------------|----------------------------|
| `@kbn/scout` | Platform (shared baseline) |

- **Solution-owned tests** → your solution Scout package (it builds on `@kbn/scout`)


| Package               | Use in tests                                |
|-----------------------|---------------------------------------------|
| `@kbn/scout-oblt`     | `logo_observability` Observability solution |
| `@kbn/scout-security` | `logo_security` Security solution           |
| `@kbn/scout-search`   | `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.
</note>


## Contribute to Scout when possible

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 |


## Need help?

- **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`.


## FAQ


#### Q: Does Scout prevent flaky tests?

No—good test design still matters.

#### Q: Is Scout designed to be _just_ a Playwright UI test runner?

No. Scout supports both UI and API testing with Playwright.

#### Q: Are test runs going to be faster?

Often, yes—especially with [parallel test execution](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/parallelism).

#### Q: Why is it a good idea for tests to be close to the plugin code?

It’s easier to iterate and maintain, and it can enable smarter test selection in the future.

#### Q: Can I use FTR services in Scout (for example, `esArchiver`)?

Not directly—use Scout [fixtures](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/fixtures) instead.

#### Q: What happens to FTR tests?

Existing FTR tests continue to run, and teams can migrate them to Scout incrementally over time.

#### Q: Does Scout support feature flags?

Yes. See [Feature flags](https://www.elastic.co/elastic/docs-builder/docs/3028/extend/kibana/scout/feature-flags) for details on enabling flags at runtime with `apiServices.core.settings()` or using custom server configurations.