PiratProxies

Automation and testing

How to use a proxy with Cypress

Cypress runs end-to-end tests in a browser. It reads its proxy from environment variables, set before Cypress starts.

Why Cypress needs a proxy

Running your tests through a proxy shows how your site behaves for a visitor in another country: prices, language, consent banners and blocked content.

Which proxy to use

Any plan with the country you want to test from. Use a sticky session so one run is one visitor.

What to enter

A PiratProxies plan gives you four things: a host, a port, a username and a password. These are the values for Residential; the username and password are on your plan page.

Hostresi.piratproxies.com
HTTP port8080
SOCKS5 port1080
UsernameUSERNAME
Passwordfrom your plan page

As one address:

http://USERNAME:PASSWORD@resi.piratproxies.com:8080

The country and the session are chosen in the username, not in a separate setting. The generator on your plan page writes the username for you, and Targeting and sessions explains each part.

Steps

  1. Set HTTP_PROXY and HTTPS_PROXY to the proxy address in the shell.
  2. Start Cypress from that same shell.

Example

macOS and Linux

export HTTP_PROXY=http://USERNAME:PASSWORD@resi.piratproxies.com:8080
export HTTPS_PROXY=http://USERNAME:PASSWORD@resi.piratproxies.com:8080
npx cypress run

Windows PowerShell

$env:HTTP_PROXY = "http://USERNAME:PASSWORD@resi.piratproxies.com:8080"
$env:HTTPS_PROXY = "http://USERNAME:PASSWORD@resi.piratproxies.com:8080"
npx cypress run

Replace USERNAME and PASSWORD with the login from your plan page. The example asks an IP-check address, so the output is the address your request left from.

Rotating or sticky

If Cypress is acting as one visitor through several steps, use a sticky session so the IP address stays the same throughout. If each run is independent, leave the session out and every run starts from a new address.

A sticky username looks like this:

USERNAME-country-us-time-600-session-a1b2c3d4

If it does not work

  • Set NO_PROXY=localhost,127.0.0.1 as well if your tests also talk to a server on your own machine.
  • Use a sticky username, so every request of one test run comes from the same visitor.
  • A 407 error means the username or password was not accepted. Copy both again from your plan page, and check that nothing added a space or cut the username short.
  • If the IP address is in the wrong country, look at the username: the country code is part of it. More fixes.

Questions

Which PiratProxies proxy should I use with Cypress?

Any plan with the country you want to test from. Use a sticky session so one run is one visitor.

Cypress is a product of its own makers. PiratProxies is not affiliated with it; the name is used here only to say what this guide is about. Use it within the rules of the sites you work with and our acceptable use policy.