kibana/packages/kbn-journeys
Dzmitry Lemechko c48cc24617
[kbn/journeys] fixes to run journeys against ESS cluster (#166923)
## Summary

I had to change `waitForRender` since `page.waitForFunction` tries to
run a script on page and it is not working due to CSP settings on Cloud.
Instead of injecting a script, we use a classical API to find
elements/attributes in the DOM.

Since `PUT /internal/core/_settings` is merged in 8.11.0, journeys run
on Cloud with on-fly labels update is supported starting deployments
8.11.0+. I added error message for 404 code just in case someone runs it
on earlier version.

`many_fields_discover` journey was update since on Cloud the data view
used by scenario is not selected by default.

How it works:

Create a deployment with QAF and re-configure it for journey run:
```
export EC_DEPLOYMENT_NAME=my-run-8.11
qaf elastic-cloud deployments create --stack-version 8.11.0-SNAPSHOT --environment staging --region gcp-us-central1
qaf elastic-cloud deployments configure-for-performance-journeys
```

Run any journey, e.g. many_fields_discover
```
TEST_CLOUD=1 TEST_ES_URL=https://username:pswd@es_url:443 TEST_KIBANA_URL=https://username:pswd@kibana-ur_url node scripts/functional_test_runner --config x-pack/performance/journeys/many_fields_discover.ts
```

You should see a log about labels being updated:

```
Updating telemetry & APM labels: {"testJobId":"local-a3272047-6724-44d1-9a61-5c79781b06a1","testBuildId":"local-d8edbace-f441-4ba9-ac83-5909be3acf2a","journeyName":"many_fields_discover","ftrConfig":"x-pack/performance/journeys/many_fields_discover.ts"}
```

And then able to find APM logs for the journey in
[Ops](https://kibana-ops-e2e-perf.kb.us-central1.gcp.cloud.es.io:9243/app/apm/services?comparisonEnabled=true&environment=ENVIRONMENT_ALL&kuery=labels.testJobId%20%3A%20%22local-d79a878c-cc7a-423b-b884-c9b6b1a8d781%22&latencyAggregationType=avg&offset=1d&rangeFrom=now-24h%2Fh&rangeTo=now&serviceGroup=&transactionType=request)
cluster
2023-09-28 12:06:00 +02:00
..
journey [kbn/journeys] fixes to run journeys against ESS cluster (#166923) 2023-09-28 12:06:00 +02:00
services [kbn/journeys] fixes to run journeys against ESS cluster (#166923) 2023-09-28 12:06:00 +02: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 [codeowners] add appex-qa for ftr-related packages (#155230) 2023-05-24 08:53:09 +02: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 [On-Week] Hot update of APM/EBT labels (#157093) 2023-08-31 14:36:20 +02: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"');
  });
```