Friday, 6 November 2020

Data integrity when using API mocks or service virtualization in shared environments

Our customers find that using API mocking or service virtualization in a shared test environment comes with a task of managing potential data integrity issues between the System Under Test and backend or third party databases. Please find below a set of diagrams highlighting different categories of approaches along with their tradeoffs. 

These diagrams highlight categories of solutions. The details will be heavily dependent on customer's use case.

Tuesday, 3 November 2020

Four categories of deployment options when using API mocking or service virtualization

Our customers typically see four categories of deployments when developing or testing software in shared test environments.

Please find below a high-level introduction to the example of a roadmap to removing back-end and third-party dependencies - these diagrams highlight categories of solutions. The details will be heavily dependent on customer's use case. Please contact, and we can advise on a recommended architecture for your specific needs based on our other customers' experience.

No mocking or service virtualizartion

Friday, 23 October 2020

Can I use Traffic Parrot over VPN?

"Our offshore developers will be using Traffic Parrot. Can you please clarify how that will impact the number of parallel licenses used? If a VPN connection is terminated, the license should stop being used?" - Software Developer working for a global financial institution.

We understand you wanted to know if a Traffic Parrot (TP) license will be checked back into the licensing server pool if the connection is dropped (for example when a VPN connection is closed).

The answer is yes. If the person was running TP outside via VPN connection and the discontinued VPN connection results in the lack of connectivity to the licensing server, the TP license server will recognise a timeout and will check back the license into the pool after the configurable timeout passes. The TP instance without the connection will shut down and the developer will not be able to use it.

If however, the developer was using VPN to access a development machine inside the organization then the connection would not be terminated, and the TP license would be still checked out by the TP instance running on the VM.

Please find the sample diagrams below. 

Monday, 19 October 2020

Traffic Parrot 5.22.0 released, what's new?

We have just released version 5.22.0. Here is a list of the changes that came with the release:


  • Made mapping name editable in the UI for all mapping types


  • Ensure internal server errors log the full stack trace


  • Native IBM® MQ connections will now warn once in the logs the first time that a connection is shared between multiple threads, which can degrade performance. The mapping fields receiveThreads and sendThreads control the number of threads per queue. The ibm-mq-connections.json configuration controls the total readConnectionsToOpen and writeConnectionsToOpen per queue manager.

Sunday, 11 October 2020

Traffic Parrot 5.21.6 released, what's new?

We have just released version 5.21.6. Here is a list of the changes that came with the release:


  • New property trafficparrot.virtualservice.http.monitorPerformance can be used to enable HTTP response timings in the logs:
    2020-10-07 20:09:32,330 INFO  Request to 'GET /test123' was received on '2020-10-07T19:09:32.326Z' from ''. Response was sent on '2020-10-07T19:09:32.397Z' to ''. Total processing time 71ms
  • Added new PassthroughMessage MQ proxy example to the SDK workspace


  • Fixed support for OpenAPI array examples specified as a comma separated string
  • Ensure startup error causes are recorded in the logs


  • Upgraded bundled JRE from 8u262 to 8u265
  • Display system tray in a background thread to improve startup times on some systems
  • Valid JSON bodies in mapping files will be persisted as inline JSON rather than an escaped string

Friday, 25 September 2020

Traffic Parrot 5.20.2 released, what's new?

We have just released version 5.20.2. Here is a list of the changes that came with the release:


  • Mappings list user interface improvements for all protocols:
    • Added support for customizing which columns are displayed in the mappings list in the UI. The selected settings are stored in the browser to allow different Traffic Parrot users to set different preferences.
    • Edit mapping tags that can be used to organize and search mappings
    • Added new tags column which is hidden by default
    • Display mapping file name when editing a mapping
  • Added mapping file name to the logs when reporting request match status for MQ/JMS/Files mappings


  • Switching scenario with mappings caches enabled now resets the caches
  • Traffic Parrot now shuts down gracefully on Windows when the stop script is run
  • Fixed an issue where the HTTP virtual service would not respond if a mapping file was deleted while the request was being served

Monday, 21 September 2020

A global retail bank has migrated one of their departments off CA Lisa and now saves 51% on tool costs per year

In September 2020, after a thorough evaluation, a global retail bank selected Traffic Parrot for their application testing needs. They have used WireMock for HTTP service virtualization needs and Traffic Parrot for IBM® MQ in both their performance testing and system testing environments.

"We have migrated our department off CA Lisa to reduce our operational costs in performance and system testing environments. We used Wiremock for HTTP stubbing and mocking and Traffic Parrot for IBM MQ. Neither Wiremock nor Traffic Parrot provides all the features available in CA Lisa. Still, after initial proof of concept assessment, we have decided those tools feature sets will be sufficient for our needs and significantly cut costs. It took our team six months to migrate HTTP to Wiremock and another three months working closely with the Traffic Parrot team to improve their offering to meet our load testing and mainframe integration requirements. With this investment, we cut our tooling costs in half."

​ Executive working for a  global retail bank.

Next steps

Please contact or call +44 20 3239 7753 (available 9am to 5pm United Kingdom time) for more details on how we can help your team save on service virtualization costs.

Monday, 14 September 2020

Traffic Parrot 5.19.4 released, what's new?

  We have just released version 5.19.4. Here is a list of the changes that came with the release:


  • Added support for configuring gRPC delays via fixedDelayMilliseconds or distributionDelay in the mapping files
  • Exposed new properties for tuning gRPC performance:
    • trafficparrot.virtualservice.grpc.server.receiveThreads=DOUBLE_NUMBER_OF_PROCESSORS
    • trafficparrot.virtualservice.grpc.server.sendThreads=DOUBLE_NUMBER_OF_PROCESSORS
    • trafficparrot.virtualservice.grpc.server.replay.maxMessagesWaitingToBeSent=1000


  • Traffic Parrot now shuts down gracefully when the launcher process is killed (e.g. during a docker stop)


  • Only consider TCP ports when printing diagnostic information when there is a port clash on startup

Saturday, 5 September 2020

Traffic Parrot 5.18.0 released, whats new?

  We have just released version 5.18.0. Here is a list of the changes that came with the release:



  • Fixes to the gRPC mappings list editing and search mechanism
  • Fixed a bug where the edit modal would incorrectly close automatically if closed and reopened too quickly
  • Fixed a bug where the edit modal would show the previous flash message if closed and reopened too quickly
  • Fixes for JMS object support
  • Fixes for port in use diagnostic message when multiple PIDs are involved


  • The property has been replaced by
  • Logging properties file names indicate which type of logging configuration to use:
    • Names like *.log4j.* are assumed to be Log4j version 1 configuration
    • Names like *.log4j2.* are assumed to be Log4j version 2 configuration
  • The MQ message putDateTime log line now has a millisecond (instead of second) resolution to help investigate performance issues when working with Native IBM MQ
  • Upgraded commons-codec to 1.13 from 1.11
  • Upgraded commons-lang3 from 3.8.1 to 3.11
  • Upgraded commons-io from 2.6 to 2.7
  • Upgraded gson from 2.8.6 to 2.8.7

Wednesday, 26 August 2020

How many licenses do I need to purchase for 10 users in a shared QA environment?

"At the beginning, we would have about 10 users that would use Traffic Parrot in a shared QA environment, possibly all at the same time. Can they all use the same instance over the web application user interface of Traffic Parrot? How many licenses would I need to purchase in this case?" - Software Architect working for an E-commerce company.

Please have a look at a definition of how Traffic Parrot (TP) licensing works: What is the "concurrent floating license"?

An instance is a process that may run on a server or a laptop. Every instance you need to run in parallel (at the same time) needs a license.

As teams and test environments scale in size, our customers find that using multiple licenses reduces risk and increases testing throughput (test turnaround time).

Our customers have found that teams that are working on different subsystems or projects or a collection of related features are best served by having their own license per environment. If multiple teams or initiatives are working on the same shared environment then we recommend using one TP instance per third party and backend service in each environment.

In addition, if your developers are using TP on a laptop you can start to run into contention issues after three or four developers using it to debug virtual services at the same time before commits, two developers intensive use can benefit from their own licenses.

These guidelines will minimize the complexity of your virtual services, both for initial use and during their subsequent maintenance while running TP in shared environments such as QA or SIT. 

Performance testing may require high core count machines or multiple load-balanced instances.

We would be happy to schedule a call at your convenience to discuss this, please contact to schedule a call to discuss your requirements.

Wednesday, 19 August 2020

Why would I need multiple floating licenses?

 "Why would I need multiple floating licenses?" - Software Developer working for an E-commerce company.

Here is how TP (Traffic Parrot) licensing works: 

If you want to run more than one TP process in parallel in different places you will need more than one license, one for each process.

Monday, 10 August 2020

Traffic Parrot 5.16.0 released, whats new?

 We have just released version 5.16.0. Here is a list of the changes that came with the release:


  • Select handlebars helper CSV file caching. When you set
    the CSV file loading performance will be significantly improved.
  • Supporting large number of CPU cores. When you run Traffic Parrot on many cores (40 or more) it would fail to start and report an error
    javax.servlet.ServletException: java.lang.IllegalStateException: Insufficient configured threads: required=212 < max=200 for QueuedThreadPool[qtp318353283]@12f9af83{STARTED,8<=168<=200,i=0,r=20,q=0}[ReservedThreadExecutor@71b3bc45{s=0/20,p=0}]
    The fix is to increase the number of threads Jetty can spin up. This was done by exposing two properties to configure HTTP Jetty server thread queues:


  • Performance improvements to dynamic responses
  • Jetty HTTP Server upgrade from 9.4.20.v20190813 to 9.4.30.v20200611
  • Upgraded Wiremock from 2.25.1 to 2.27.1
  • Upgraded Http client from 2.6.2 to 2.7.0
  • Several other library version upgrades

Loading data from a CSV file to create dynamic responses?

"How can I load data from a CSV file and create a dynamic response based on XML request body?" - Software Consultant at a global software consultancy

You can nest the "xPath" helper in the "select" helper, for example: 

{{select 'Age from UserData.csv where Username equals' (xPath request.body '//User/Username/text()')}}

Friday, 17 July 2020

Traffic Parrot 5.15.0 released, whats new?

We have just released version 5.15.0. Here is a list of the changes that came with the release:


  • Traffic Parrot can now connect to IBM MQ queue managers via SSL channels. You can do this via Native IBM MQ. We have added two new ibm-mq-connections.json properties to support Native IBM MQ SSL connections:
    "sslCipherSuite": "TLS_RSA_WITH_AES_128_CBC_SHA",
    "sslPeerName": "OU=TP IBM MQ"
    To provide the server and client certificates you can add the following config to jvm.args:

Friday, 10 July 2020

Traffic Parrot 5.14.1 released, whats new?

We have just released version 5.14.1. Here is a list of the changes that came with the release:


  • A new property that allows to force logging Native IBM MQ message bodys as printable characters instead of UTF8


  • The Native IBM MQ messages can now contain UTF-8 characters, for example Arabic text
  • The Native IBM MQ logs are now correctly displaying UTF-8 characters, for example Arabic text
  • The JMS IBM MQ tutorial example fruit ordering system now supports UTF8 characters, for example Arabic text