This topic explains the general procedure for creating message proxies.
In this section:
Right-click on a server in the
Virtualize or SOAtest Server view
and choose Add Message Proxy.To delete a proxy or folder, right-click on the node and choose Delete.
If you delete a folder that contains proxies, the proxies will be un-deployed and removed from the server.
You can also create proxies directly in the Message Proxies folder or in a subfolder by right-clicking a node in the server view and choosing Add Message Proxy.
You can create subfolders in the Message Proxies folder on the server and organize its contents.
Right-click on the folder and Rename. You cannot rename the default folders (e.g., Virtual Assets, Message Proxies, etc.) in the server view.
You can copy and paste a folder or proxy into another folder within the Message Proxies folder from the right-click menu.
You can also drag subfolders and proxies into other subfolders.
Double-click the added node to open its configuration panel and configure the proxy on the following tabs. When you are done, you can enable the proxy as described in Enabling and Disabling Proxies then start recording as described in Recording Traffic from Message Proxies.
On the General tab, rename the proxy and enter a description (optional).
On the Connections tab you can specify the endpoints where the proxy should listen for messages and where the received messages should be directed. For each endpoint you want to use the proxy, do the following:
Complete the proxy settings as follows:
%n_%d_%t.txt
(<proxy_name>_<current_date>_<current_time>.txt). It will be stored within the recorded_traffic folder (this will be created if it does not exist). You can modify the file name, but not the folder. The folder is always located within the VirtualAssets project.%d
(current date) %t
(current time), %n
(proxy name), and %u
(unique time-based id). Wildcards can be used together and mixed in with the name. For example, you could use %nProxyTraffic%d
or %u_%d%nTraffic.
On the Http Listeners tab you can configure the ports on which your HTTP(S) listeners should listen. HTTP listeners simplify the connection configuration for recording HTTP traffic. There are two types available:
Reverse Proxy
This type of listener starts a port that listens for traffic and can be used to forward to either a live service or a virtual assets. This is best used when the application under test has configuration options that allow the user to configure the host and port used to connect to the backend service.
To add an HTTP Listener:
0
as the port number. When the proxy is enabled, the assigned port number will appear in the console. The port is randomly assigned every time the message proxy is changed/enabled. You can also send a GET request to the messageProxies
API endpoint to return the automatically-assigned port number. See Testing through the REST API for additional information. Forward Proxy
Starts up an HTTP Proxy that can route traffic based on the “Host” header. This is best used with Mobile applications where the backend service endpoint is not configurable or in applications under test when there is no configuration option available to change the host and port used to connect to a backend service.
To add a system listener:
The decision whether to use a reverse proxy or a forward proxy often depends on whether you want to record application traffic or mobile traffic. Examples of how you would record both are shown below:
Configuring an HTTP Message Proxy Video TutorialThis video describes how to set up a message proxy that can capture live traffic. |
The following table explains how traffic data is recorded with different combinations of traffic file name values and recording session options:
Traffic file name | Recording session option | Result |
---|---|---|
Default / parameterized | Append new session data | Creates one new file that includes all request/response pairs in the recording session. |
Static | Append new session data | Adds new traffic data to the specified traffic file (if it exists). Otherwise, creates one new file that includes all request/response pairs in the recording session. |
Default / parameterized | Overwrite session data | Creates one new file that includes all request/response pairs in the recording session. |
Static | Overwrite session data | Overwrites existing traffic data in the specified traffic file (if it exists). Otherwise, creates one new file that includes all request/response pairs in the recording session. |
Default / parameterized | New session file for each message pair | Creates one new file for each request/response pair in the recording session. If multiple request/response pairs are detected, multiple files are created. |
Static | New session file for each message pair | If the specified file exists, overwrites existing traffic data every time an additional request/response pair is detected. If the specified file does not exist, creates one new file for the first request/response pair, then overwrites existing traffic data every time an additional request/response pair is detected. In both cases, the resulting file contains only the most recent request/response pair. |
If a proxy uses the internal protocol and receives MQ traffic while recording, the New session file for each message pair option is not supported. If this option is selected, the default Overwrite session data behavior will be used.
You can drag a proxy from one server to another to move it. Alternatively, you can copy from one server and paste it to another server.
Proxies can connect to an MQ manager using a global configuration or a local configuration. Global configurations are defined per Virtualizer Server and can be used by proxies or virtual assets deployed to the server (see Connections Tab). Local configurations are defined for individual proxies or assets.
You can not deploy a proxy or asset connected to a global MQ manager if the MQ manager connection configuration does not exist on the destination Virtualize Server. If you need to move or copy a proxy/asset to another Virtualize Server, you can manually define the MQ manager connection or use the copy function to add the connection settings to the destination server (see Copying an MQ Manager Connection).
If your proxies and/or Message Forward tools inadvertently set up a forwarding cycle like A> B> C> A, this could result in an infinite loop. To prevent such loops,Virtualize and SOAtest are configured to stop forwarding after 10 hops. You can change this by setting the system property parasoft.proxy.loop.max.limit
(e.g., parasoft.proxy.loop.max.limit=5
).
The built-in loop detection only applies to internally-routed forwarding (e.g., routing to localhost, not routing to a host name).