﻿---
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/2755/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/2755/extend/kibana/scout/fixtures), [page objects](https://www.elastic.co/elastic/docs-builder/docs/2755/extend/kibana/scout/page-objects) and [API services](https://www.elastic.co/elastic/docs-builder/docs/2755/extend/kibana/scout/api-services)).

## Start here

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


## Why Scout?

- **Parallel execution**: run UI suites in [parallel](https://www.elastic.co/elastic/docs-builder/docs/2755/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/2755/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/2755/extend/kibana/scout/deployment-tags) to declare where they should run (stateful/serverless).
- **Fixture-based**: [fixtures](https://www.elastic.co/elastic/docs-builder/docs/2755/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/2755/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`     | Observability solution |
| `@kbn/scout-security` | Security solution      |
| `@kbn/scout-search`   | 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/2755/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/2755/extend/kibana/scout/fixtures) instead.

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

If your feature is behind a feature flag, you can use the `coreApi` [fixture](https://github.com/elastic/kibana/blob/e4f12d39154fe286ce92217e00a7d8bd758ee02d/src/platform/packages/shared/kbn-scout/src/playwright/fixtures/scope/worker/apis/core/index.ts#L17-L30) to enable it during test execution (recommended). Alternatively, you can create a [custom config directory](https://github.com/elastic/kibana/pull/244306) and link your Scout tests (reach out for more info).