Under the hood: Architecture

Tips & Tricks

Under the hood: Architecture

In this series of blog posts, we will take a closer look at the Boozang technology. We will start with the architecture that explains how Boozang is built and how it interacts with the web browser.

Introduction

Boozang runs in the Cloud and is deployed in two different hosting centers.

  • Americas: http(s)://ai.boozang.com, hosted in Montreal, Canada
  • Europe/Asia: http(s)://eu.boozang.com, hosted in Frankfurt, Germany

Both the sites run on independent databases, and there is currently no replication between the sites, meaning teams need to pick the hosting center to use and stick to it. To change between sites, teams will need to export the current project and import it to the new site, ensuring all team members work from this site only.

Technology

Boozang is built using full-stack Javascript and implements the MEBN stack. The MEBN abbreviation stands for

  • Mongo: Boozang runs NoSQL database
  • Express: NodeJS web application framework
  • Boozang-fm: Our JSON-based Javascript framework built in-house
  • NodeJS: Open source server environment based on Javascript

In this stack, the only non-standard component is the Javascript framework. We have built this framework in-house to create extremely lightweight web-based applications. The framework is Open Source, and the source is located here.

The hybrid Cloud model

Boozang is using a hybrid-Cloud model, where all test data is stored in the Cloud, while tests are executed locally in the browser. Boozang is built for Enterprise use and doesn’t provide a Cloud testing service. Instead, our customers are expected to use its existing infrastructure to run tests.

The advantage of this approach is that users can continue using their existing infrastructure and applications. There is no need for invasive changes to firewalls or secret tunnels to our Cloud. As long as there is an internet connection available, all data needed for test execution is loaded into the browser.

Minimalistic approach

Under normal circumstances, having to load all the data locally in the browser would have been inefficient due to the amount of data to transfer. We have made this possible by building every piece of code from scratch.

  • Total client application size: 4.0 MB
  • Chrome Extension size: 30 KB
  • Typical project data: 2.0 MB

For comparison, this is a factor 10 to 100 smaller than other test tools. As you can see, the extension doesn’t contain any real functionality but acts as a mediator (bridge) between the Boozang server and the browser client.

It’s actually possible to run Boozang completely without an extension by placing an html-fragment in the application root. We have found this option to be less popular than the Chrome extension option as it limits “cross-domain” testing (browser CORS limitation), and prevents end-2-end testing over several different applications.

An example setup

Below is an example setup for a customer running End-to-end tests across several applications in the corporate network.

Below is an example setup for a customer running End-to-end tests across several applications in the corporate network.

The Boozang platform runs all tests utilizing the browser client, meaning it can test inside your corporate network without custom tunnels or Firewall changes.

  • Client 1: A team member responsible for creating and maintaining tests is using a Chrome browser on a Mac. Any changes done are instantly replicated to other client projects via a web sockets connection.
  • PC client 2: Another team member works on the same project, using his unique feature branch. He is using an Edge browser on a PC.
  • App1: This application server runs Salesforce, which is not accessible outside the corporate network.
  • App2: This application server runs another application that was built in-house that needs to be cross-checked with Salesforce data.
  • App3: The developer has just started developing a new application, running on localhost.
  • CI server: The CI server runs tests nightly. The tests are end-to-end tests across App1 and App2,

As you can see, in the Boozang hybrid model, it’s enough that all clients can access the applications under test (App 1 and App 2). The tests will be fully loaded in the client and run from your company infrastructure, not the Cloud. Tests are stored in the Cloud for maximum re-use and collaboration but executed locally for maximum security and convenience.

You can also see that it’s even possible to execute tests on an application running on localhost, granted that the browser client is running on the same machine.

Conclusion

I hope that this brief blog post has shed some light on how Boozang was built and why we built it in this particular way. Also, hopefully, this can help to establish if this is a good fit for your company. To summarize, if you are a company where you want an all-in-one solution, where test management, CI, project management is all done in the same system, then maybe Boozang is not for you.

On the other hand, if you want to maintain your other tool in place and get the test automation done with as little as possible impact on your current setup, Boozang is probably a good fit.

Create your account for free!

No credit card required.