https://github.com/percona/pmm-ui-tests
PMM UI end-to-end tests
https://github.com/percona/pmm-ui-tests
Last synced: 3 months ago
JSON representation
PMM UI end-to-end tests
- Host: GitHub
- URL: https://github.com/percona/pmm-ui-tests
- Owner: percona
- License: apache-2.0
- Created: 2021-04-15T10:08:46.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2026-03-20T09:01:25.000Z (4 months ago)
- Last Synced: 2026-03-21T01:41:49.606Z (4 months ago)
- Language: JavaScript
- Size: 4.05 MB
- Stars: 4
- Watchers: 16
- Forks: 4
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# PMM UI end-to-end tests
Percona Monitoring and Management UI automated tests. Designed to cover "End to End" scenarios.
## Getting Started
* Install Node.js 12+ version and make sure npx is included
* Install project dependencies: `npm ci`
* Install "playwright" browser driver, ex: `sudo npx playwright install-deps`
* build TS definitions: `npx codeceptjs def pr.codecept.js`
this is it! tests are good to go on specified PMM server.
### Getting PMM server ready
* **Run tests upon local PMM server:**
execute command in the Project Root folder to start default PMM server: `docker-compose up -d`
Or one of the offered configurations:
* `docker-compose -f docker-compose-ami-db-setup.yml up -d`
* `docker-compose -f docker-compose-mongodb-ssl.yml up -d`
* `docker-compose -f docker-compose-mongo-replica.yml up -d`
* `docker-compose -f docker-compose-mysql-ssl.yml up -d`
* `docker-compose -f docker-compose-postgresql-ssl.yml up -d`
* **Setup environment for backup management tests:**
run `bash -x testdata/backup-management/mongodb/setup-replica-and-pbm-local.sh`.
This will launch docker compose with PMM Server, PMM Client, and set up replica set with 3 Percona MongoDB instance
* **Run tests upon remote PMM server:**
set desired instance URL in _**"PMM_UI_URL"**_ local environment variable
ex: create `.env` file with the following line `PMM_UI_URL=http://myPmmServer.com`
### Running tests:
Execute command in the Project Root folder
* **run all in single thread tests:** `npx codeceptjs run -c pr.codecept.js`
* **run all tests in parallel threads:** `npx codeceptjs run-multiple parallel -c pr.codecept.js`
* **run desired "classes":** `npx codeceptjs run -c pr.codecept.js tests/verifyMysqlDashboards_test.js`
* **run desired groups/tags:** `npx codeceptjs run -c pr.codecept.js --steps --grep @settings`
### Test report
* Allure report in docker(no additional requirements)
1. run allure server: `docker-compose -f docker-compose-allure.yml up -d`
2. open test report in browser: http://localhost:5252/
* Allure report by **allure-commandline** tool
1. Allure requires Java 8 or higher
2. install allure-commandline: `npm install -g allure-commandline --save-dev`
3. aggregate report: `allure serve tests/output/allure`
* HTML report Local(mochawesome):
1. run tests with `-R mocha-multi` flag
ex: `npx codeceptjs run -c pr.codecept.js --grep @backup -R mocha-multi`
2. open report file: `/tests/output/result.html`
or reports for each parallel thread `/tests/output/parallel_chunk1_..._1/result.html`
## **Available Command Line Arguments:**
`--steps` enables the step-by-step output of running tests to the console, ex:
`npx codeceptjs run-multiple parallel -c pr.codecept.js --steps`
`--debug` enables a more detailed output to the console, ex:
`npx codeceptjs run-multiple parallel -c pr.codecept.js --debug`
`--verbose` enables the very detailed output information to the console, ex:
`npx codeceptjs run-multiple parallel -c pr.codecept.js --verbose`
`--grep "@tag"` runs only tests marked by specified tags. The following tags are available:
@ami-upgrade Groups tests for the "pmm-ami-upgrade" Job
@backup Backup Management functionality tests
@bm-mongo Backup Management functionality tests for MongoDB
@bm-mongo Backup Management functionality tests for MySQL
@dashboards Dashboards functionality, check that graphs are not empty
(e.g. Data from exporters is displayed at those dashboards)
@grafana-pr Executed in Github Actions for PRs in percona-platform/grafana repository
@fb-alerting Integrated Alerting functionality tests
@instances Remote Instances addition functionality
and checking that data appears from exporters
@inventory Inventory functionality, removing nodes, services, etc.
@not-ovf Tests with this tag are excluded from execution for OVF image tests
@nightly executed on a nightly Job, mostly related to Dashboards. Includes tests
to verify Metrics, Custom Filters and Navigation between Dashboards.
@pmm-demo Performs basic Sanity on PMM-Demo, ensures all expected Services are still running
@pmm-upgrade upgrade testing Scenarios to verify UI Upgrade for docker based PMM Server
@pre-upgrade upgrade testing Scenarios to verify Docker way Upgrade. Executed BEFORE the upgrade
@post-upgrade upgrade testing Scenarios to verify Docker way Upgrade. Executed AFTER the upgrade
@post-client-upgrade executed in the "pmm-upgrade" Job after"pmm-client" has been updated
@qan Query Analytics(QAN) functionality tests
@settings PMM Settings functionality tests
@stt Security Checks (STT) functionality tests
@perf-testing UI performance tests for PMM
@docker-configuration Tests containing different docker configuration (env variables, ports, volumes etc.)
@pmm-ami legacy/deprecated
@not-ui-pipeline legacy/deprecated
@not-pr-pipeline legacy/deprecated
@cli cli related tests
@fb-alerting alerting related tests executed on FB
@advisors-fb advisors related tests executed on FB
@bm-fb backup management related tests executed on FB
@fb-instances remote instances related tests executed on FB
@fb-settings settings related tests executed on FB
## Contributing
For the specific contributions guidelines, please see [CONTRIBUTING.md](CONTRIBUTING.md) in the project root directory.