This repository was archived by the owner on Jan 30, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 44
This repository was archived by the owner on Jan 30, 2025. It is now read-only.
Metric emitted with empty URL #381
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
xk6-browser version: 20002a4
Browser version: Chromium 102.0.5005.61
OS: Linux
Description
As reported on the forum, sometimes we emit a browser_dom_content_loaded
metric that has an empty URL tag.
This might be because of a navigation in progress, so likely some race condition, but it seems that Frame.URL()
is empty here:
Lines 356 to 360 in 20002a4
state := f.vu.State() | |
tags := state.CloneTags() | |
if state.Options.SystemTags.Has(k6metrics.TagURL) { | |
tags["url"] = f.URL() | |
} |
Steps to reproduce
I wasn't able to reproduce this with the fillform.js
example, but I did run into it with the following script:
vistaprint.js
import { sleep, group } from 'k6';
import launcher from 'k6/x/browser';
import { randomIntBetween } from 'https://jslib.k6.io/k6-utils/1.1.0/index.js';
export const options = {};
let browser, context, page;
const pauseMin = 0;
const pauseMax = 1;
export default function() {
initialize();
navigateToHomepage();
clickBusinessCards();
clickBrowseDesigns();
clickDesign();
clickCustomizeDesign();
clickNext();
continueWithoutBack();
customerReviewed();
addToCart();
continuePastRecommendations();
continueToCart();
goToCheckout();
}
function initialize() {
browser = launcher.launch('chromium', {
args: [],
debug: false,
devtools: false,
env: {},
// executablePath: null,
headless: __ENV.XK6_HEADLESS ? true : false,
ignoreDefaultArgs: [],
proxy: {},
slowMo: '500ms',
timeout: '30s',
});
context = browser.newContext({
ignoreHTTPSErrors: true,
screen: {width: 1920, height: 1080},
viewport: {width: 1920, height: 1080},
});
page = context.newPage();
}
function navigateToHomepage() {
console.log('Starting navigateToHomepage...');
group("Navigate to Homepage", () => {
page.goto('https://vistaprint.ca', { waitUntil: 'networkidle' });
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function clickBusinessCards() {
console.log('Starting clickBusinessCards...');
group("Click Business Cards", () => {
page.click("//span[text()='Business Cards']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function clickBrowseDesigns() {
console.log('Starting clickBrowseDesigns...');
group("Click Browse Designs", () => {
page.waitForSelector("//a[text()='Browse designs']");
page.click("//a[text()='Browse designs']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function clickDesign() {
console.log('Starting clickDesign...');
const designOption = page.waitForSelector(`li.design-tile >> nth=0`);
console.log(designOption.textContent());
group("Select Design Option", () => {
page.click(`li.design-tile >> nth=0`)
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function clickCustomizeDesign() {
console.log('Starting clickCustomizeDesign...');
group("Click Customize Design", () => {
page.click("//a[text()='Customize this design']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function clickNext() {
console.log('Starting clickNext...');
group("Click Next", () => {
page.click("//button[text()='Next']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function continueWithoutBack() {
console.log('Starting continueWithoutBack...');
group("Click Continue Without Back", () => {
page.click("//button[text()='Continue without back']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function customerReviewed() {
console.log('Starting customerReviewed...');
page.click("//input[@value='customerReviewed']");
sleep(5);
group("Click Customer Reviewed", () => {
page.click("//button[text()='Continue']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function addToCart() {
console.log('Starting addToCart...');
group("Click Add to Cart", () => {
page.click("//button[text()='Add to cart']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function continuePastRecommendations() {
console.log('Starting continuePastRecommendations...');
group("Click Continue (Recommendations)", () => {
page.waitForSelector("//a[text()='Continue']");
page.click("//a[text()='Continue']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function continueToCart() {
console.log('Starting continueToCart...');
group("Click Continue to Cart", () => {
page.click("//a[text()='Continue to cart']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
function goToCheckout() {
console.log('Starting goToCheckout...');
group("Click Checkout", () => {
page.click("//a[text()='Checkout']");
});
sleep(randomIntBetween(pauseMin, pauseMax));
}
Running XK6_BROWSER_LOG=info XK6_HEADLESS=1 xk6 run -q -o json=vistaprint.json vistaprint.js
, and inspecting the generated vistaprint.json
file, shows 4 occurrences:
{"type":"Point","data":{"time":"2022-06-07T17:58:37.852273965+02:00","value":0.287,"tags":{"group":"::Click Next","scenario":"default","url":""}},"metric":"browser_dom_content_loaded"}
{"type":"Point","data":{"time":"2022-06-07T17:58:37.857086815+02:00","value":0.243,"tags":{"scenario":"default","group":"::Click Next","url":""}},"metric":"browser_dom_content_loaded"}
{"type":"Point","data":{"time":"2022-06-07T17:58:40.71552549+02:00","value":0.294,"tags":{"group":"::Click Next","scenario":"default","url":""}},"metric":"browser_dom_content_loaded"}
{"type":"Point","data":{"time":"2022-06-07T17:58:40.72405662+02:00","value":0.249,"tags":{"group":"::Click Next","scenario":"default","url":""}},"metric":"browser_dom_content_loaded"}
inancgumus
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working