Skip to content
axxbetadocs
nextv0.2.26
GitHub
These are the docs of main, not released yet. See the docs of v0.2.26, the latest release.

Network

View .mdOpen in Claude

See and change what a web app’s pages fetch, from the browser: requests that fail, answer with an error or a file, or take their time, a slow connection, a recording of the pages’ traffic to answer from, and the messages of their websockets. It builds on the web-core pack.

A request is named by its address, a path below the web app’s url (/api/prices) or a whole URL (https://maps.example.com/tiles/**): * stands for any part of a path, ** for any parts; the query does not count unless the address has one. What a step sets holds for every web app of the scenario, from the pages they open next: set it before the page opens.

The pages’ own requests only: for the services your app calls from its server, mock them instead (the mock pack). record: true in axx.yaml records what each web app’s pages fetch, for a scenario to answer from later.

Add it to a project with axx pack add web-network; it builds on web-core, which comes with it.

In axx.yaml, under packs.web-network:

Setting Takes Values Default
record Record what each scenario’s pages fetch, a HAR file for each web app in .axx/web/recordings, for scenarios to answer from. true, false false
Given the page's requests to {string} fail

Make the pages’ requests to an address fail, as when a service is down or out of reach: a path below the web app’s url, or a whole URL, with * and **.

Parameter Takes For example
{string} text in double or single quotes, which the step leaves out "Get a quote", 'Express'

Example:

Given the page's requests to "https://maps.example.com/**" fail

Since 0.1.1.

Given the page's requests to {string} answer with status {int}

Answer the pages’ requests to an address with a status and nothing else, like 503.

Parameter Takes For example
{string} text in double or single quotes, which the step leaves out "Get a quote", 'Express'
{int} a whole number 200, 3

Example:

Given the page's requests to "/api/prices" answer with status 503

Since 0.1.1.

Given the page's requests to {string} answer with the {filepath} file

Answer the pages’ requests to an address with a file of the project, with the type of its extension.

Parameter Takes For example
{string} text in double or single quotes, which the step leaves out "Get a quote", 'Express'
{filepath} a file of the project: a path relative to the feature file’s directory, the resources directories or axx.yaml’s directory (looked for in that order), or an absolute path, quoted when it has a space seeds/parcels.yaml, kafka/scan-delivered.json

Example:

Given the page's requests to "/api/prices" answer with the network/prices-berlin.json file

Since 0.1.1.

Given the page's requests to {string} take {duration}

Make the pages’ requests to an address take that long before they go out, as a busy service does.

Parameter Takes For example
{string} text in double or single quotes, which the step leaves out "Get a quote", 'Express'
{duration} a duration in seconds (s) or minutes (m) 5s, 2m

Example:

Given the page's requests to "/api/prices" take 3s

Since 0.1.1.

Given the browser's connection is slow

Make the browser’s connection slow, as a phone’s in a bad spot: 400 ms of latency and 500 kbit/s each way. Chromium, Chrome and Edge only.

Example:

Given the browser's connection is slow

Since 0.1.1.

Given the page's requests are answered from the {filepath} recording

Answer the pages’ requests from a recording of what they fetched, a HAR file (record: true makes them): the requests it has, it answers; the others go out, and so do websockets.

Parameter Takes For example
{filepath} a file of the project: a path relative to the feature file’s directory, the resources directories or axx.yaml’s directory (looked for in that order), or an absolute path, quoted when it has a space seeds/parcels.yaml, kafka/scan-delivered.json

Example:

Given the page's requests are answered from the network/quote.har recording

Since 0.1.1.

Then [[within {duration} ]]the page sent a websocket message containing {string}

Check that a page of the scenario sent a websocket message with that text in it. The check waits: 10 seconds, or within {duration}.

Parameter Takes For example
{duration} a duration in seconds (s) or minutes (m) 5s, 2m
{string} text in double or single quotes, which the step leaves out "Get a quote", 'Express'

Variants, the parts in [[...]] said or left out:

  • the page sent a websocket message containing {string}
  • within {duration} the page sent a websocket message containing {string}

Example:

Then the page sent a websocket message containing "subscribe:PX-4101"

Since 0.1.1.

Then [[within {duration} ]]the page received a websocket message containing {string}

Check that a page of the scenario received a websocket message with that text in it. The check waits: 10 seconds, or within {duration}.

Parameter Takes For example
{duration} a duration in seconds (s) or minutes (m) 5s, 2m
{string} text in double or single quotes, which the step leaves out "Get a quote", 'Express'

Variants, the parts in [[...]] said or left out:

  • the page received a websocket message containing {string}
  • within {duration} the page received a websocket message containing {string}

Example:

Then the page received a websocket message containing "IN_TRANSIT"

Since 0.1.1.