First, go to HTTP in the top navigation bar and then click Add/Edit.
Fill in the Request/Response fields and click Save to configure a mapping.
You can also select from the scenario dropdown which will populate the Request/Response fields for that scenario.
Clicking the edit button will allow you to edit an existing mapping.
In order to edit the list of elements on the scenarios dropdown on the Add/Edit page please open and edit file trafficparrot-x.y.z/scenarios.js and using the samples provided in the file add your new entries and remove the existing ones.
First, navigate to the recording page by clicking HTTP in the top navigation bar and then click Record.
In order to record traffic to a URL, simply enter the Recording URL and click Start recording.
All traffic received by the Traffic Parrot virtual service will be proxied to the host in the Recording URL and recorded as Mappings.
Clicking the edit button will allow you to edit the recorded mapping.
If the Recording URL includes a path, only traffic to this path will be recorded, however all traffic will still be proxied.
For example, if the Recording URL is set to http://example.com/aSampleResource then only traffic to paths staring with /aSampleResource will be recorded and all other traffic will be proxied to http://example.com.
When using Traffic Parrot to virtualize multiple HTTP services at the same time, you may encounter namespace issues if the services have name clashes in the context path.
For example, you may have two services that both have a GET /api/resources endpoint, and one might be hosted at http://service1/api/resources and the other at http://service2/api/resources.
The Traffic Parrot virtual service http://localhost:8081/api/resources would have two mappings associated with it.
There are a number of ways to deal with this situation, one of which is detailed below.
One solution to having the same name resource URL /api/resources for different services is to make a change the system under tes t and start sending a custom header when communicating with those services. For example, a request to http://service1/api/resources could include a HTTP header Service-Name: service1, and a request to http://service2/api/resources could include a HTTP header Service-Name: service2. That way the HTTP requests are different and Traffic Parrot can map them to different responses.
If you would like to capture those headers during a recording, Traffic Parrot will record the headers that are defined in the property: trafficparrot.virtualservice.recordRequestHeadersForMatching.
For example, if you set the following value of the property, a Service-Name header will be recorded.
Note that trafficparrot.virtualservice.recordRequestHeadersForMatching may contain multiple headers to record, as a comma separated list.
You can also add those headers manually by editing the mapping.