kibana/packages/kbn-journeys
Dzmitry Lemechko e1933c5e71
[journeys] Change page screeshots on steps (#188332)
## Summary

We have seen some random browser crashes during screenshot taken on CI
and hopefully these changes will help to minimize it:

- no screenshots on step success by default: we don't use the artifact
at the moment, so we don't need screenshots for all steps
- catch errors on screenshot take and log error, but don't throw error;
it will be thrown for step failure explicitly
2024-07-17 10:04:14 +02:00
..
journey [journeys] Change page screeshots on steps (#188332) 2024-07-17 10:04:14 +02:00
services [APM] Fix condition to use serviceTransactionMetric documents (#180903) 2024-05-07 10:54:03 -03:00
index.ts Enable APM for ES when running performance journeys (#155195) 2023-04-20 16:26:48 +02:00
jest.config.js [ftr] add first-class support for playwrite journeys (#140680) 2022-09-22 01:06:46 -07:00
kibana.jsonc [kbn-journeys] add synthtrace support (#178599) 2024-03-18 16:42:45 -07:00
package.json Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
README.mdx [ftr] add first-class support for playwrite journeys (#140680) 2022-09-22 01:06:46 -07:00
tsconfig.json [kbn-journeys] add synthtrace support (#178599) 2024-03-18 16:42:45 -07:00

---
id: kibDevDocsOpsJourneys
slug: /kibana-dev-docs/ops/journeys
title: Journeys
description: A new style of functional test, focused on performance testing for now
tags: ['kibana', 'dev', 'contributor', 'operations', 'performance', 'functional', 'testing']
---

Journeys are a slightly newer take on Functional Tests, currently powered by [playwright](https://playwright.dev/docs).

A Journey is a single pathway through Kibana and looks something like this:

```ts
import { Journey } from '@kbn/journeys';
import { subj } from '@kbn/test-subj-selector';

export const journey = new Journey({
  esArchives: [ ... ],
  kbnArchives: [ ... ],
  scalabilitySetup: { ... },
})
  .step('Go to Discover Page', async ({ page, kbnUrl }) => {
    await page.goto(kbnUrl.get(`/app/discover`));
    await page.waitForSelector(subj('discoverDocTable'));
  })

  .step('Expand the first document', async ({ page }) => {
    const expandButtons = page.locator(subj('docTableExpandToggleColumn'));
    await expandButtons.first().click();
    await page.locator('text="Expanded document"');
  });
```