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