Refactor code to k6

[MAILPOET-4957]
This commit is contained in:
Veljko
2023-03-08 11:43:23 +01:00
committed by Veljko V
parent 262df3444d
commit 19ae4ea2ac

View File

@@ -3,7 +3,7 @@
/** /**
* External dependencies * External dependencies
*/ */
import { sleep, check, group } from 'k6'; import { sleep, check } from 'k6';
import { chromium } from 'k6/experimental/browser'; import { chromium } from 'k6/experimental/browser';
import { randomIntBetween } from 'https://jslib.k6.io/k6-utils/1.1.0/index.js'; import { randomIntBetween } from 'https://jslib.k6.io/k6-utils/1.1.0/index.js';
@@ -21,49 +21,45 @@ import {
import { authenticate } from '../utils/helpers.js'; import { authenticate } from '../utils/helpers.js';
/* global Promise */ /* global Promise */
export function listsViewSubscribers() { export async function listsViewSubscribers() {
const browser = chromium.launch({ const browser = chromium.launch({
headless: headlessSet, headless: headlessSet,
timeout: timeoutSet, timeout: timeoutSet,
}); });
const page = browser.newPage(); const page = browser.newPage();
group('Lists - View subscribers of a list', () => { try {
page // Go to the page
.goto(`${baseURL}/wp-admin/admin.php?page=mailpoet-segments#/lists`, { await page.goto(
`${baseURL}/wp-admin/admin.php?page=mailpoet-segments#/lists`,
{
waitUntil: 'networkidle', waitUntil: 'networkidle',
}) },
);
.then(() => { // Log in to WP Admin
authenticate(page); authenticate(page);
})
.then(() => { // Wait for async actions
return Promise.all([ await Promise.all([page.waitForNavigation({ waitUntil: 'networkidle' })]);
page.waitForNavigation({ waitUntil: 'networkidle' }),
]);
})
.then(() => { // Click to view subscribers of the default list "Newsletter mailing list"
page.waitForSelector('[data-automation-id="dynamic-segments-tab"]'); page.waitForSelector('[data-automation-id="dynamic-segments-tab"]');
check(page, { check(page, {
'segments tab is visible': page 'segments tab is visible': page
.locator('[data-automation-id="dynamic-segments-tab"]') .locator('[data-automation-id="dynamic-segments-tab"]')
.isVisible(), .isVisible(),
}); });
})
.then(() => {
page page
.locator( .locator('[data-automation-id="segment_name_' + defaultListName + '"]')
'[data-automation-id="segment_name_' + defaultListName + '"]',
)
.hover(); .hover();
page page
.locator( .locator(
'[data-automation-id="view_subscribers_' + defaultListName + '"]', '[data-automation-id="view_subscribers_' + defaultListName + '"]',
) )
.click(); .click();
// Wait for the page to load
page.waitForSelector('.mailpoet-listing-no-items'); page.waitForSelector('.mailpoet-listing-no-items');
page.waitForSelector('[data-automation-id="filters_subscribed"]'); page.waitForSelector('[data-automation-id="filters_subscribed"]');
check(page, { check(page, {
@@ -72,13 +68,10 @@ export function listsViewSubscribers() {
.isVisible(), .isVisible(),
}); });
page.waitForLoadState('networkidle'); page.waitForLoadState('networkidle');
}) } finally {
.finally(() => {
page.close(); page.close();
browser.close(); browser.close();
}); }
});
sleep(randomIntBetween(thinkTimeMin, thinkTimeMax)); sleep(randomIntBetween(thinkTimeMin, thinkTimeMax));
} }