Vikash
Vikash

Reputation: 3561

How to capture network log from browserstack

I want to capture network logs from browserstack.

When I am writing drive.quit(), then after that i am able to capture the network logs via https://api.browserstack.com/automate/builds/{build_id}/sessions/{session_id}/networklogs, but when I am calling network logs API before driver.quit(), I am getting an empty array as response and timeout for browserstack test.

This doesn't work:

let capabilities = {
        'browserName' : 'Chrome',
        'browser_version' : '79.0',
        'os' : 'OS X',
        'os_version' : 'Sierra',
        'resolution' : '1024x768',
        'browserstack.user' : bs.user,
        'browserstack.key' : bs.key,
        'browserstack.networkLogs': 'true',
        'name' : 'Bstack-[Node] Sample Test'
    };

    driver = new webdriver.Builder()
        .usingServer(bs.server)
        .withCapabilities(capabilities)
        .build();

    try {
        console.log("FINAL URL", URL + testConfig[urlToOpen].url + bidexchangeUrl);
        while (!await pageLoad()) {
            if (count > 2) {
                console.log("Timeout occurred, driver.quit called");
                await driver.quit();
                // await harCapturer.deletePortCapturing();
                process.exit(0);
            }
        }

        let sessionId = await getSession(driver);

        testConfig[urlToOpen].driver = driver;


        // this method is calling har api
        harCapturer =  new HarCapturer(sessionId);
        
        // after some test quit the driver
        driver.quit(); 

This works:

let capabilities = {
        'browserName' : 'Chrome',
        'browser_version' : '79.0',
        'os' : 'OS X',
        'os_version' : 'Sierra',
        'resolution' : '1024x768',
        'browserstack.user' : bs.user,
        'browserstack.key' : bs.key,
        'browserstack.networkLogs': 'true',
        'name' : 'Bstack-[Node] Sample Test'
    };

    driver = new webdriver.Builder()
        .usingServer(bs.server)
        .withCapabilities(capabilities)
        .build();

    try {
        console.log("FINAL URL", URL + testConfig[urlToOpen].url + bidexchangeUrl);
        while (!await pageLoad()) {
            if (count > 2) {
                console.log("Timeout occurred, driver.quit called");
                await driver.quit();
                // await harCapturer.deletePortCapturing();
                process.exit(0);
            }
        }

        let sessionId = await getSession(driver);

          driver.quit();

        // this method is calling har api
        harCapturer =  new HarCapturer(sessionId);

Please suggest a solution

Upvotes: 1

Views: 2138

Answers (1)

ANM1996
ANM1996

Reputation: 161

I have checked this from my end as well and want to share that the different Debugging Logs on BrowserStack such as Network/ Console are captured only after a session is terminated.

Upvotes: 2

Related Questions