A proxy server acts as a gateway between end users and the internet. It routes requests through an intermediary before reaching the destination website or application, often providing additional functionality, security, or privacy.
In testing scenarios, proxies are critical when:
- Access to the Application Under Test (AUT) is restricted behind a firewall.
- A whitelisted or tunnel proxy is required to reach specific environments.
- Company policy requires routing all traffic through approved proxy endpoints.
In Functionize, you can configure proxies at the Team, Project, or Test level, depending on the scope of your needs. The IP address and port information for whitelisted or tunnel proxies can be obtained from the Functionize Support Team.
General Notes
- Not all applications require a proxy, but many enterprise environments do.
- Different projects may require different proxies.
- Functionize Support can assist with setup and troubleshooting to ensure your AUT is accessible from Functionize’s execution servers.
Setting a Proxy at the Team Level (Optional)
Team-level proxies are optional but recommended for consistency across projects. When a proxy is configured at the Team level, a dropdown option becomes available in the Project settings or Test settings to select the proxy. Until the proxy is selected at either the Project level or the Test level, it will not be reflected in the test case.
Steps:
- Navigate to Team → Settings (requires Team Admin access).
- In the Proxy Setting field, enter the proxy details.
- Add your proxy using the format:: IP:Port
- You can add multiple proxies by hitting enter after each.
- Click Save to apply.
Setting a Proxy at the Project Level (Recommended)
Project-level proxies ensure that front-end requests reach the correct runtime environment.
Steps:
- Click the Project Actions icon → select Project Settings.
- Open the Proxy Settings dropdown.
- Select or input the proxy IP and port.
- Click Save.
Setting a Proxy at the Test Level (Granular Control)
Use test-level proxies when specific tests require different proxy settings than the default Project or Team configuration.
Steps:
- From the test, click the Settings icon → select Test Settings.
- In the Test Settings window, go to the Advanced tab.
- Locate the Proxy Settings section.
- Select or enter the proxy IP and port.
- Click Save.
Dynamic Proxy Management within a Single Test Case
In complex testing environments, a single end-to-end test case may need to interact with multiple domains or applications, some of which require an external proxy server and some that do not. Manually changing test settings for each URL is not scalable or reliable.
Functionize addresses this challenge using the Configuration Action, which allows you to dynamically enable or disable proxy settings at any point during test execution.
How to Implement the Configuration Action
To manage changing proxy needs within a single test, follow these steps:
- Start without a proxy: If the initial URL in your test does not require a proxy, begin the test with no proxy configured.
- Add a Configuration Action: When you reach a step that requires access through a proxy, use the Quick Add functionality to insert a Configuration action.
- Enter Proxy Details: In the configuration settings, enter the proxy information, and the standard port using this Format:: IP:Port
- Update as Needed: If you later navigate to a URL that does not require a proxy, or requires a different one, simply add another Configuration action at that point in the test to update or remove the proxy settings.
Limitations
This method is specifically for tests that require dynamic changes to proxy settings during execution. If an entire test or project consistently uses the same proxy, it is more efficient to configure the proxy at the Test or Project level rather than within individual test steps.
Summary
- Team-level proxies = optional best practice, managed by Admins.
- Project-level proxies = required for consistent front-end to runtime communication.
- Test-level proxies = used for granular overrides on specific test cases.
- Action level proxy = used when tests require dynamic changes to proxy settings during execution.
By properly configuring proxy settings, you ensure that Functionize tests can securely and efficiently access applications under test, even when they sit behind enterprise firewalls.