Testing localhost with mabl Link

Browser restrictions on localhost proxying

The mabl Link feature was designed to enable testing against any URL that could be accessed from the host on which the Link Agent is running. Fundamentally, mabl Link works by proxying traffic from the browser running in the mabl cloud through the Link Agent to your test environment. Unfortunately, most browsers restrict the URLs that may be used with this type of proxy configuration for security reasons.


New restrictions in Chrome and Firefox

You may have noticed that mabl Link tests that used to work against localhost URLs in Chrome and Firefox no longer work. The reason for this is that Chrome and Firefox added restrictions that prevent connections to all link-local addresses (e.g. localhost and from being proxied via mabl Link.

The same restrictions that Chrome and Firefox recently added were already present in Safari.

Currently there are no mabl-supported browsers that allow localhost URLs to be proxied via mabl Link without applying the hosts file workaround described below.


Testing against localhost when the Link Agent is running in Docker

See the separate documentation on localhost testing in Docker here: Link with Docker

Suggested work-around for testing services running on localhost

Fortunately there is a work-around that will allow you to run tests against services that are listening on localhost. The required change is to add an alias for localhost in the hosts file of the system where the Link Agent is running (which should also be the host where the service you want to test is running). The alias should point to the same IP as localhost, but it should have a unique name, such as link-host.

On Linux and MacOS the file to edit is /etc/hosts. You should add your alias to the same line as localhost, for example:	localhost link-host

On Windows systems the file is located in C:\Windows\System32\Drivers\etc\hosts, and the change is the same.

Once the alias has been added, you can then update your tests to use this new hostname. For example, if your test had previously been pointing at http://localhost:8080, and your new alias is called link-host, update your test to point to http://link-host:8080.