LinkedIn has created and announced a new internet mocking tool called Flashback. The Microsoft-owned company has now released the tool as an open source. It is based on Betamax and allows users to replay HTTP connections to test web applications.
However, LinkedIn believes Flashback improves on some of the limitations of Betamax. The company says it allows for more seamless testing and adds more capabilities.
It's probably safe to say that some may not even know what internet mocking is. Web app developers typically need to test their creations on active third-party websites LinkedIn says it needs to do this for its apps, and some of the frustrations led to the creation of Flashback.
Testing apps on a website can be problematical. Because the third-party site is not in control of the app developer, the site may change. These changes could be caused by downtimes, poor internet connection, or other factors.
The point is, some failures are hard to diagnose because of the disconnect between developer and website. Internet mocking tools were created to navigate this problem. They can intercept HTTP connections initiated by the web app and replay it.
Building Flashback from Betamax
LinkedIn says it has been using one of the most popular internet mocking tools, Betamax. However, due to security, the company does not want to test apps with an active internet connection. Betamax needs a connection to function. Also, the service does not support authentication protocols like OpenId and OAuth.
To overcome these limitations, LinkedIn used Betamax as a based and developed Flashback from it. The company points to the following abilities that the new mocking tool has:
- Flashback is designed to mock HTTP and HTTPS resources, like web services and REST APIs, for testing purposes. It records HTTP/HTTPS requests and plays back a previously recorded HTTP transaction—which we call a “scene”—so that no external connection to the internet is required in order to complete testing.
- Flashback can also replay scenes based on partial matching of requests. It does so using “match rules.” A match rule associates an incoming request with a previously-recorded request, which is then used to generate a response.