Skip to content

Commit 22a50df

Browse files
authored
PMM-13573 fix settings tests (#901)
* PMM-13573 fix settings tests * PMM-13573 fix settings tests * PMM-13573 mongo 8 ssl for testing * PMM-13573 fix externalClickhouse_test.js * PMM-13573 fix disconnect test * PMM-13573 fix rdsadmin test * PMM-13573 fix rdsadmin test * PMM-13573 update disconnect test * PMM-13573 update skip azure node metric check
1 parent 6069c91 commit 22a50df

9 files changed

+34
-42
lines changed

docker-compose-clickhouse.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,16 @@ services:
4444
restart: on-failure
4545

4646
mysql5.7:
47+
platform: linux/x86_64
4748
container_name: mysql5.7
48-
image: mysql:5.7
49+
image: percona:5.7.30
4950
command: --default-authentication-plugin=mysql_native_password
5051
restart: always
5152
environment:
5253
MYSQL_ROOT_PASSWORD: 7B*53@lCdflR
5354

5455
external-clickhouse:
56+
platform: linux/x86_64
5557
image: clickhouse/clickhouse-server:22.5.2
5658
container_name: external-clickhouse
5759
healthcheck:

docker-compose-disconnect.yml

+3-6
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ services:
2626
- PMM_DEBUG=1
2727
- PERCONA_TEST_SAAS_HOST=check-dev.percona.com:443
2828
- PERCONA_TEST_CHECKS_PUBLIC_KEY=RWTg+ZmCCjt7O8eWeAmTLAqW+1ozUbpRSKSwNTmO+exlS5KEIPYWuYdX
29-
- PERCONA_TEST_VERSION_SERVICE_URL=https://check-dev.percona.com/versions/v1
30-
- PERCONA_TEST_TELEMETRY_INTERVAL=10s
31-
- PERCONA_TEST_TELEMETRY_RETRY_BACKOFF=10s
3229
networks:
3330
- server-network
3431

@@ -55,9 +52,9 @@ services:
5552
- server-network
5653
- mysql-network
5754

58-
mysql5.7:
59-
container_name: mysql-disconnect-5.7
60-
image: mysql:5.7
55+
ps8:
56+
container_name: ps8
57+
image: percona:8.0
6158
command: --default-authentication-plugin=mysql_native_password
6259
restart: always
6360
environment:

tests/QAN/externalClickhouse_test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const basePmmUrl = `http://127.0.0.1:${pmmServerPort}/`;
88
const dockerVersion = process.env.DOCKER_VERSION || 'perconalab/pmm-server:dev-latest';
99

1010
BeforeSuite(async ({ I }) => {
11-
await I.verifyCommand(`PMM_SERVER_IMAGE=${dockerVersion} docker-compose -f docker-compose-clickhouse.yml up -d`);
11+
await I.verifyCommand(`PMM_SERVER_IMAGE=${dockerVersion} docker compose -f docker-compose-clickhouse.yml up -d`);
1212
await I.wait(30);
1313
await I.verifyCommand('docker exec pmm-client-clickhouse pmm-admin add mysql --username=root --password=7B*53@lCdflR --query-source=perfschema mysql5.7 mysql5.7:3306');
1414
await I.wait(60);

tests/configuration/verifyPMMServerDisconnect_test.js

+5-7
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ Feature('Pmm Server stability');
44
const pmmServerPort = '8180';
55
const basePmmUrl = `http://127.0.0.1:${pmmServerPort}/`;
66
let clientServerNetwork = 'pmm-ui-tests_server-network';
7+
const serverImage = process.env.DOCKER_VERSION || 'perconalab/pmm-server:dev-latest';
78

89
BeforeSuite(async ({ I }) => {
9-
await I.verifyCommand(`PMM_SERVER_IMAGE=${process.env.DOCKER_VERSION} docker-compose -f docker-compose-disconnect.yml up -d pmm-server-disconnect`);
10-
await I.asyncWaitFor(async () => await I.verifyCommand(`echo $(curl -s -o /dev/null -w '%{http_code}' 127.0.0.1:${pmmServerPort}/ping)`) === '200', 100);
11-
await I.verifyCommand('docker-compose -f docker-compose-disconnect.yml up -d pmm-client');
12-
await I.verifyCommand('docker-compose -f docker-compose-disconnect.yml up -d mysql5.7');
10+
await I.verifyCommand(`PMM_SERVER_IMAGE=${serverImage} docker compose -f docker-compose-disconnect.yml up -d`);
1311
clientServerNetwork = await I.verifyCommand('docker inspect pmm-client-disconnect -f \'{{range $k, $v := .NetworkSettings.Networks}}{{printf "%s\\n" $k}}{{end}}\' | grep -o \'.*server-network\'');
14-
await I.asyncWaitFor(async () => await I.verifyCommand('echo $(docker container logs mysql-disconnect-5.7 2>&1 | grep "Server hostname (bind-address)")') !== '', 100);
15-
await I.verifyCommand('docker exec pmm-client-disconnect pmm-admin add mysql --username=root --password=7B*53@lCdflR --host=mysql-disconnect-5.7 --port=3306 --query-source=perfschema mysql-disconnect-5.7');
12+
I.wait(20);
13+
await I.verifyCommand('docker exec pmm-client-disconnect pmm-admin add mysql --username=root --password=7B*53@lCdflR --host=ps8 --port=3306 --query-source=perfschema ps8');
1614
// wait for the data to be scraped from db
1715
I.wait(60);
1816
});
@@ -50,7 +48,7 @@ Scenario(
5048

5149
Scenario(
5250
'@PMM-T1443 Verify metrics are saved if pmm-agent is stopped @disconnect',
53-
async ({ I, dashboardPage, qanPage }) => {
51+
async ({ I, dashboardPage }) => {
5452
await I.amOnPage(withCustomBaseUrl(dashboardPage.mySQLInstanceOverview.url));
5553
await dashboardPage.waitForDashboardOpened();
5654
await dashboardPage.expandEachDashboardRow();

tests/serverLogs_test.js

+13-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { codeceptjsConfig } = inject();
1+
const { codeceptjsConfig, I } = inject();
22
const assert = require('assert');
33

44
Feature('Logs tests');
@@ -7,13 +7,21 @@ const filename = 'logs.zip';
77
const fileNameToCheck = 'pmm-managed.log';
88
const baseUrl = codeceptjsConfig.config.helpers.Playwright.url;
99

10+
const getLineCount = async () => Number(await I.verifyCommand('docker exec pmm-server cat /srv/logs/pmm-managed.log | wc -l'));
11+
1012
BeforeSuite(async ({ I, locationsAPI }) => {
13+
let actualLineCount = await getLineCount();
1114
// Simple request to generate > 50k lines in logs
12-
for (let i = 0; i < 13000; i++) {
13-
await locationsAPI.getLocationsList();
14-
}
1515

16-
I.wait(15);
16+
while (actualLineCount < 50001) {
17+
for (let i = 0; i < 1000; i++) {
18+
await locationsAPI.getLocationsList();
19+
}
20+
21+
I.wait(5);
22+
23+
actualLineCount = await getLineCount();
24+
}
1725
});
1826

1927
// @settings-fb tag added in order to execute these tests on FB

tests/verifyAWSRDSPostgreSQLInstance_test.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -71,23 +71,23 @@ Scenario(
7171
I.amOnPage(remoteInstancesPage.url);
7272
remoteInstancesPage.waitUntilRemoteInstancesPageLoaded().openAddAWSRDSMySQLPage();
7373
remoteInstancesPage.discoverRDS();
74-
remoteInstancesPage.verifyInstanceIsDiscovered(serviceName);
74+
await remoteInstancesPage.verifyInstanceIsDiscovered(serviceName);
7575
remoteInstancesPage.startMonitoringOfInstance(serviceName);
7676
remoteInstancesPage.verifyAddInstancePageOpened();
7777
const grabbedHostname = await I.grabValueFrom(remoteInstancesPage.fields.hostName);
7878

7979
assert.ok(grabbedHostname.startsWith(serviceName), `Hostname is incorrect: ${grabbedHostname}`);
8080
I.seeInField(remoteInstancesPage.fields.serviceName, serviceName);
81-
remoteInstancesPage.fillRemoteRDSFields(serviceName);
81+
await remoteInstancesPage.fillRemoteRDSFields(serviceName);
8282
remoteInstancesPage.createRemoteInstance(serviceName);
8383
pmmInventoryPage.verifyRemoteServiceIsDisplayed(serviceName);
8484
// Skipping due to QAN Setup part on AWS
8585
// await pmmInventoryPage.verifyAgentHasStatusRunning(serviceName);
8686

8787
// await pmmInventoryPage.verifyMetricsFlags(serviceName);
88-
const logs = await I.verifyCommand('docker exec pmm-server cat /srv/logs/pmm-agent.log | awk \'/ERRO/ && /rdsadmin/\'');
88+
const logs = await I.verifyCommand('docker exec pmm-server cat /srv/logs/pmm-agent.log | awk \'/postgres_exporter/ && /ERRO/ && /opening connection/ && /rdsadmin/\'');
8989

90-
assert.ok(logs, `Logs contains errors about rdsadmin database being used! \n The lines are: \n ${logs}`);
90+
assert.ok(!logs, `Logs contains errors about rdsadmin database being used! \n The lines are: \n ${logs}`);
9191
},
9292
);
9393

tests/verifyAzureMySQLPostgreSQLRemoteInstance_test.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ if (remoteInstancesHelper.getInstanceStatus('azure').azure_postgresql.enabled) {
1717

1818
const metrics = new DataTable(['metricName']);
1919

20-
metrics.add(['azure_memory_percent_average']);
20+
// TODO: bring back once PMM-13585 is fixed
21+
// metrics.add(['azure_memory_percent_average']);
2122
metrics.add(['mysql_global_status_max_used_connections']);
2223
// Removing to avoid failures due to missing metric, seems to be some changes on Azure deployments.
2324
// metrics.add(['mysql_global_variables_azure_ia_enabled']);

tests/verifyMongodbSharding_test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ Scenario(
88
async ({
99
I,
1010
}) => {
11-
const version = '6.0';
11+
const version = '7.0';
1212
const edition = 'Community';
1313

14-
const containerName = await I.verifyCommand(`docker ps --format "table {{.ID}}\\t{{.Image}}\\t{{.Names}}" | grep 'psmdb.*${version}_sharded' | awk -F " " '{print $3}'`);
14+
const containerName = `psmdb_pmm_${version}_sharded`;
1515
const agentId = await I.verifyCommand(`docker exec ${containerName} pmm-admin list | grep "42002" | awk -F " " '{print $4}'`);
1616
const serviceId = await I.verifyCommand(`docker exec ${containerName} pmm-admin list | grep "mongodb_shraded" | awk -F " " '{print $4}'`);
1717
const port = await I.verifyCommand(`docker exec ${containerName} pmm-admin list | grep "mongodb_exporter.*${serviceId}" | awk -F " " '{print $6}'`);

tests/verifyTLSMongoDBRemoteInstance_test.js

+1-15
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,7 @@ Feature('Monitoring SSL/TLS MongoDB instances');
88

99
const instances = new DataTable(['serviceName', 'version', 'container', 'serviceType', 'metric', 'maxQueryLength']);
1010

11-
instances.add(['mongodb_4.4_ssl_service', '4.4', 'mongodb_4.4', 'mongodb_ssl', 'mongodb_connections', '7']);
12-
// instances.add(['mongodb_4.2_ssl_service', '4.2', 'mongodb_4.2', 'mongodb_ssl', 'mongodb_connections']);
13-
instances.add(['mongodb_5.0_ssl_service', '5.0', 'mongodb_5.0', 'mongodb_ssl', 'mongodb_connections', '7']);
14-
15-
BeforeSuite(async ({ I, codeceptjsConfig }) => {
16-
// await I.verifyCommand(`${pmmFrameworkLoader} --mo-version=4.2 --setup-mongodb-ssl --pmm2`);
17-
await I.verifyCommand(`${pmmFrameworkLoader} --mo-version=4.4 --setup-mongodb-ssl --pmm2`);
18-
await I.verifyCommand(`${pmmFrameworkLoader} --mo-version=5.0 --setup-mongodb-ssl --pmm2`);
19-
});
20-
21-
AfterSuite(async ({ I }) => {
22-
await I.verifyCommand('docker stop mongodb_4.4 || docker rm mongodb_4.4');
23-
// await I.verifyCommand('docker stop mongodb_4.2 || docker rm mongodb_4.2');
24-
await I.verifyCommand('docker stop mongodb_5.0 || docker rm mongodb_5.0');
25-
});
11+
instances.add(['mongodb_8.0_ssl_service', '8.0', 'mongodb_8.0', 'mongodb_ssl', 'mongodb_connections', '7']);
2612

2713
Before(async ({ I, settingsAPI }) => {
2814
await I.Authorize();

0 commit comments

Comments
 (0)