Menu

This is documentation for the next version of K6. For the latest stable release, go to the latest version.

Documentationbreadcrumb arrow Grafana k6breadcrumb arrow JavaScript APIbreadcrumb arrow k6/browserbreadcrumb arrow Pagebreadcrumb arrow throttleNetwork(networkProfile)
Open source

throttleNetwork(networkProfile)

Throttles the network in Chrome/Chromium to slow it down by the specified fields in the networkProfile object.

ParameterTypeDefaultDescription
networkProfileNetworkProfilenullThis is a mandatory parameter.
networkProfile.latencynumber0Minimum latency from request sent to response headers received (ms).
networkProfile.downloadnumber-1Maximal aggregated download throughput (bytes/sec). -1 disables download throttling.
networkProfile.uploadnumber-1Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.

To work with the most commonly tested network profiles, import networkProfiles from the browser module. There are three profiles available:

NameNotes
'No Throttling'No throttling, which is the default before applying any network throttling. This can be used to remove the network throttling.
'Fast 3G'Emulates a typical fast 3G connection
'Slow 3G'Emulates a typical slow 3G connection

Returns

TypeDescription
Promise<void>A Promise that fulfills when the network has been throttled to the specified rate.

Example

JavaScript
import { browser, networkProfiles } from 'k6/browser';

export const options = {
  scenarios: {
    browser: {
      executor: 'shared-iterations',
      options: {
        browser: {
          type: 'chromium',
        },
      },
    },
  },
};

export default async function () {
  const context = await browser.newContext();
  const page = await context.newPage();

  try {
    await page.throttleNetwork(networkProfiles['Slow 3G']);

    await page.goto('https://test.k6.io/', { waitUntil: 'networkidle' });
  } finally {
    await page.close();
  }
}