Capabilities

Does Traffic Parrot accommodate SOAP requests?

Yes!

Does Traffic Parrot run on a server?

Yes!

We pride ourselves that you can run our software almost anywhere. It can be a server, laptop, docker or VM. The tool is very lightweight, so it can be run on existing hardware or VMs as well, no need to order new server VMs. You do need to install or use any thick-client software (workstation) on your laptops; you use a web browser instead.

Can I simulate error messages?

Yes!

We focus on providing a tool for in-depth exploratory testing. We simulate common error messages as well as very specialized ones like slow dripping connections that can take down your application (depending on your environment). As far as we know, no other tool can simulate some of the error scenarios we simulate.

Can I create conditional response behavior?

Yes!

Do you have an example scenario you would like to test? It would help us understand better how to answer your question. Please, send the details to help@trafficparrot.com.

How can I record only specific content types or file types?

Have a look at filtering recording.

Can the automated tests run on a schedule specified from within Traffic Parrot?

No, but we work with tools in your existing environment that schedule tests.

Traffic Parrot does not run tests. We integrate with open source solutions like Selenium, Cucumber, JMeter, Postman and similar that do that. They are usually run in Jenkins or Team City, which is the industry standard. Those tools would run on a schedule with no issues. We would need to know more about your environment to understand better what problem you are trying to solve when asking this question. Please, send the details to help@trafficparrot.com.

Where is the full list of things Traffic Parrot can do?

Have a look at the Capabilities.

Does Traffic Parrot have the ability to "parameterize" the commands? Such as if a request contains today's date, I could put in a parameter to insert today’s date in that place?

Have a look at the extensions.

Does Traffic Parrot have a repository of data that I can use to make the responses "smart"?

Have a look at the loading CSV file data.

What is your the roadmap for the future? Where do you intend to take the tool in the future?

We listen to our customers wherever possible. Where do you think we should go?

If you would like more details, please email us at help@trafficparrot.com.

How much of an approximation the virtual services/environments might be?

We provide many advanced service virtualization features. Have a look at the User guide and Extensions.

Just remember, the general rule is: keep them as simple as possible, whenever possible. For more details read Focus on keeping it simple.

Installation

What are the key tasks required to install/set up/configure the tool?

Have a look at the User guide and the Quick start

What are the pre-requisites for using the tool – environment requirements etc.?

Have look at the Supported platforms and the Proof of concept guide

Team

How strong technically do our consultants need to be to exploit the tool for testing?

We recently had a remote WebEx engagement with a Fortune 300 company where they had tools running tests on-site in 30 minutes.

One of our main differentiators to our competition is we make our tool as easy to use as possible requiring no to minimal amounts of training.

How do we run a POC (proof of concept project)?

Licensing and price

How does your licensing work?

Similar to other commercial offerings. You can find the details on the home page. Please email us for more details help@trafficparrot.com.

What is your enterprise pricing?

Enterprise licensing is based on a particular configuration. We would need to come to a much better understanding of your needs before we could offer a price that would be accurate. Other people who have compared a quote from us with quotes from other commercial offerings have found us to be at least half the price. To get more details, please email help@trafficparrot.com

HTTPS

How do I enable client certificate authentication?

You need to add your private key to Traffic Parrot JKS, for example:

$ cd trafficparrot-x.y.z/certificates
$ keytool -importkeystore -srckeystore /path/authclient.jks -srcalias authclient -destkeystore trafficparrot-keystore-and-truststore.jks -destalias authclient
$ keytool -keypasswd -alias authclient -keystore trafficparrot-keystore-and-truststore.jks

How do I test a certificate before importing it to Traffic Parrot?

If running on Windows download and install OpenSSL. You will also need Java 8 JDK (JDK 7 keytool will not work).

You will need the server public key (to verify the server identity) and the client private key (to authenticate on the server). Then you can test the connection with OpenSSL.

Notice: if running on Windows you get messages like “unknown option ¡key” or similar, the copy and paste from this PDF might not have worked. Retype the commands instead of copying and pasting them.

Get server public key in PEM format
To download the certificate from the server by connecting to the https port you can do the following:
$ openssl s_client -servername localhost -connect localhost:3000 2>errors.txt | openssl x509 -text > server.pem

Get client private key in PEM format
If you want are starting with a JKS not a P12 file, convert your jks to p12:
$ keytool -importkeystore -srckeystore authclient_key.jks -destkeystore authclient_key.p12 -deststoretype pkcs12
Convert p12 to pem:
$ openssl pkcs12 -in authclient_key.p12 -out authclient.key.pem -nocerts -nodes
$ openssl pkcs12 -in authclient_key.p12 -out authclient.crt.pem -clcerts -nokeys

Test the connection
Connect to the server with the key, certificate and CA file:
$ openssl s_client -key authclient.key.pem -keyform PEM -cert authclient.crt.pem -certform PEM -CAfile server.pem -connect localhost:3000

GET HTTP/1.1

Other

What file editor should I use to edit files?

If you do not have a favourite editor we recommend using Notepad++ on Windows, Vim on Linux or Textmate on a Mac.

How do I define custom mappings?

If you would like to define custom mappings see how to use extensions.

Why do I have to edit the extensions properties every time?

Currently, whenever you add a new custom Java or Handlebars extension, you need to update trafficparrot.properties and specify the class name. We know this is inconvenient. We have a task on the roadmap to eliminate the need to define those properties, and search for extensions automatically.

I have an issue. How do I get help?

If you have any issues or suggestions email us at help@trafficparrot.com.

How do I run more than one instance in parallel/simultaneously?

Why do I get "Caused by: java.lang.ClassNotFoundException: com.ibm.msg.client.jms.JmsFactoryFactory"?

If you see the following error in the logs you need to put MQ libs on Traffic Parrot classpath.
2017-08-12 23:48:44 WARN  qtp1995250556-40 Error for /jmsManagement/start
java.lang.NoClassDefFoundError: com/ibm/msg/client/jms/JmsFactoryFactory
	at com.trafficparrot.jms.IbmMq75ConnectionFactory.create(IbmMq75ConnectionFactory.java:25)
	at com.trafficparrot.jms.ProducerConsumerFactory.createConsumer(ProducerConsumerFactory.java:46)
	at com.trafficparrot.jms.QueueTrafficRecordService.startMessageConsumerAndProducer(QueueTrafficRecordService.java:57)
	at com.trafficparrot.jms.QueueTrafficRecordService.start(QueueTrafficRecordService.java:44)
	at com.trafficparrot.jms.JmsQueueVirtualService.startRecordingServices(JmsQueueVirtualService.java:80)
	at com.trafficparrot.jms.JmsQueueVirtualService.startRecording(JmsQueueVirtualService.java:50)
	at com.trafficparrot.jms.JmsManagementServlet.queue(JmsManagementServlet.java:388)
	at com.trafficparrot.jms.JmsManagementServlet.start(JmsManagementServlet.java:297)
	at com.trafficparrot.jms.JmsManagementServlet.post(JmsManagementServlet.java:92)
	at com.trafficparrot.jms.JmsManagementServlet.doPost(JmsManagementServlet.java:74)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
	at org.eclipse.jetty.server.Server.handle(Server.java:499)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.ibm.msg.client.jms.JmsFactoryFactory
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 28 more

See running simultaneously.