Synthetic Monitoring with Real Browsers
MIT License
Bot releases are visible (Hide)
Published by github-actions[bot] 9 months ago
.only
and .skip
in Journey and Step functions which would allow only the particular journey and step to run and get skipped when running them locally #880journey.only('test journey', ({}) => {
step.skip('step 1', async () => {
console.log('step 1');
});
step.only('step 2', async () => {
console.log('step 2');
});
});
.soft
. Failure of soft step will not skip rest of the steps in the journey.journey('test journey', ({}) => {
step.soft('step 1', async () => {
// errored step
expect('').toEqual('hello');
});
// step 2 will still run
step('step 2', async () => {
// errored step
expect('').toEqual('hello');
});
});
npx @elastic/synthetics push
command which is then used for bundling all project monitors, previously this was set to 800Kb
#882Published by github-actions[bot] 10 months ago
npx @elastic/synthetics journeys --reporter=buildkite-cli
Full Changelog: https://github.com/elastic/synthetics/compare/v1.5.3...v1.6.0
Published by github-actions[bot] 12 months ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.5.2...v1.5.3
Published by github-actions[bot] 12 months ago
pageerror
events #862Full Changelog: https://github.com/elastic/synthetics/compare/v1.5.1...v1.5.2
Published by github-actions[bot] 12 months ago
Published by github-actions[bot] about 1 year ago
expect
assertions are supported natively in the Synthetics tests. Users can start using all of the official Playwright assertions except for the unsupported ones Snapshot Assertions toHaveScreenshot
and toMatchSnapshot
#812
import { journey, step, expect } from '@elastic/synthetics';
journey('testing example.com', ({ page }) => {
step('load homepage', async () => {
await page.goto('https://example.com/');
await expect(page).toHaveTitle('Example Domain');
});
});
Journey: testing stack trace
✖ Step: 'load homepage' failed (183 ms)
Error: Asdas
15 | step("load homepage", async () => {
16 | await page.goto("https://example.com/");
> 17 | throw new Timeout("Asdas");
| ^
18 | });
19 | });
20 |
at (/synthetics-project/journeys/errors.journey.ts:17:11)
// synthetics.config.ts
export default async env => {
const params = await loadParams();
const config: SyntheticsConfig = {
params,
monitors: {schedule: 10}
}
return config;
};
monitor.use({ retestOnFailure: false });
console.error
messages being preferred over other types #8171.38.1
, this means the Chrome version used for the tests would be the latest Chromium 117.0.5938.62
Published by vigneshshanmugam about 1 year ago
devices
directly from the @elastic/synthetics
inside their journeys instead of importing from @playwright-core
which might not work as expected when running project monitors #810
// synthetics.config.ts
import { devices } from "@elastic/synthetics"
export default {
playwrightOptions: {
...devices['Galaxy S9+'],
},
}
--no-headless
flag options #813116.0.5845.82
- #816journey
files which will update the monitors correctly #802Url
and Auth
flags has been made optional for locations
command, Its only required if users are interested in listing their privateLocations #814Full Changelog: https://github.com/elastic/synthetics/compare/v1.3.0...v1.4.0
Published by vigneshshanmugam over 1 year ago
Tags
and Match
CLI flags have been removed when using the npx @elastic/synthetics push
command since we never intended project monitors to have support for filtering when pushed to Synthetics Kibana app.The main intention of Push command
at any synthetics project was to deploy the current state of the monitors to our globally managed infrastructure. Any time we detect a change, whether its an Create or update/delete, the monitor status will get updated based on those changes. Having the ability to allow filtering during the deploy works against the model and brings in more problems. With that said, there are other ways to manage the synthetics monitors.
project-a/synthetics.config.ts
and project-b/synthetics.config.ts
would have their own Kibana settings. npx @elastic/synthetics push --space <name>
NOTE: Tags and Match for filtering are still supported when running the tests locally as we want the Synthetics runner to have the ability to grep and run any journey/tests.
Monitor tags can be configured for all project based lightweight and browser monitors either via the synthetics.config.ts
file or using the monitor.use
API.
{
monitor: {
tags: ["global1", "global2"]
},
};
For Individual browser monitors we can use monitor.use(tags: ["local"])
or for lightweight monitors on the yml file.
heartbeat.monitors:
- type: http
tags:
- tag1
- tag2
Users can enable TLS and Status alerts for Project based lightweight and browser monitors. Alerts can be configured both globally via synthetics.config.ts
file or on individual monitors #785 #795
{
monitor: {
alert: {
status: {
enabled: true,
}
},
},
};
For lightweight monitors, it can be configured via the yml syntax.
alert.status.enabled: true
alert.tls.enabled: false
Full Changelog: https://github.com/elastic/synthetics/compare/v1.2.0...v1.3.0
Published by vigneshshanmugam over 1 year ago
1.35.0
which updates the Chromium browser to 115.0.5790.13
warn and errors
are captured automatically for all iframes, popups etc which was missing previously. Console events in general are reported only reported when the synthetic tests fail #784Full Changelog: https://github.com/elastic/synthetics/compare/v1.1.0...v1.2.0
Published by vigneshshanmugam over 1 year ago
kibana version >= 8.8.0
#725init
command #771Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0...v1.1.0