-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using @elastic/synthetics to run uptime e2e tests #90673
Conversation
Nice work.
I would stay with just using the library from the NPM instead of going through heartbeat as we want it to behave a test runner rather than for monitoring purposes (Uptime UI on top of the existing CLI).
Use the latest published one from NPM, using master from synthetics would be a wrong choice as we might break at some point and that means the PR's in kibana would be blocked. Also it aligns more with how our users would be using the tool instead of staying latest on master. Hope this helps. |
1550a40
to
c26d77b
Compare
@elasticmachine merge upstream |
.ci/end2end.groovy
Outdated
stage('UPTIME-UI') { | ||
agent { label 'linux && immutable' } | ||
options { skipDefaultCheckout() } | ||
when { expression { return env.RUN_UPTIME_E2E != "false" } } | ||
steps { | ||
echo 'TBC' | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the new section after restructuring the CI pipeline to support two parallel stages, one for the existing e2e for the APM-UI and a new stage (this one) for the Uptime e2e.
@elasticmachine merge upstream |
@v1v looking awesome |
always { | ||
dir("${UPTIME_E2E_DIR}"){ | ||
sh 'docker-compose logs > uptime-e2e-docker.log || true' | ||
archiveArtifacts(allowEmptyArchive: true, artifacts: 'uptime-e2e-docker.log') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once L159 produces the junit files, then you can add something like
archiveArtifacts(allowEmptyArchive: true, artifacts: 'uptime-e2e-docker.log') | |
archiveArtifacts(allowEmptyArchive: true, artifacts: 'uptime-e2e-docker.log') | |
junit(allowEmptyResults: true, testResults: '<RELATIVE_PATH_FROM_UPTIME_E2E_DIR>/<FILE_NAME>.xml') |
But please replace '<RELATIVE_PATH_FROM_UPTIME_E2E_DIR>/<FILE_NAME>.xml'
💔 Build Failed
Failed CI Steps
Metrics [docs]
History
To update your PR or re-run it, just comment with: cc @shahzad31 |
Summary
Using https://github.com/elastic/synthetics to run uptime kibana functional tests
This contains a simple journey which runs against live heartbeat data using docker
To Start test server:
This is using standard kibana ftr server, in exception that it doesn't start esCluster and instead uses docker to start heartbeat and elasticsearch. Since it would be a hassle communicating from heartbeat docker to outside escluster.
in uptime dir
do
node scripts/start_e2e_server.js
This will start kibana
to run a test once server is up
node scripts/start_e2e_runner.js
runner will run test and output results: