Ultrafast Grid: Streamlining Cross Browser Testing
Running application tests across all potential browsers is crucial in detecting visual bugs. With Applitools' Ultrafast Grid (UFG), cross browser testing is revolutionized. This guide will:
- Outline the UFG and its functions
- Show you how to set up and run a test with the UFG
- Compare the UFG with traditional cross browser testing methods
Previously, cross browser testing involved setting up drivers for each browser or using a third party provider, and running your test suite individually on each browser. Whenever new browsers or viewport sizes are added, you must run the tests again, which increases workload. To make this efficient, parallel test runs would be required, resulting in increased test complexity and maintenance.
The UFG simplifies this by running the test suite once on a single selected local driver. When executing
eyes.check() with the UFG enabled, a "DOM Snapshot" is captured instead of a screenshot. This snapshot, which includes all webpage resources such as HTML, CSS, etc., is uploaded to UFG servers along with the list of specified browsers/environments and rendered across them in parallel.
The key advantage of UFG is its asynchronous operation. The only step that temporarily blocks other actions is the short DOM snapshot capture process. After uploading, the test continues locally while UFG asynchronously renders the snapshot across all of the specified browsers.
Additionally, if you decide to scale up the environments you test on, it's as easy as adding more browsers in the SDK configuration. No need to worry about setting up another parallel test or a new browser environment.
Running a UFG Test
Below is a simple test case that performs a test with the Ultrafast Grid:
- Selenium JS
The key things to note are:
- At the beginning of the test, we see the list of browsers/environments that we want to render on. This is where we can tell the UFG how many environments we need. In this case, we're executing on 14 different environments and no set up of these environments was required on our end.
- Some of the other SDKs, like Cypress, don't have a runner object at all. This is because these SDKs run with the UFG by default.
- At the end of the test suite, a call to
runner.getAllTestResults()(or the equivalent based on the SDK in use) is made. This call tells the test suite to wait for any UFG renders that have not completed yet and will capture the results of all tests in the suite. You can then use the return object to analyze how many tests passed or failed.
Let's take a look at how the UFG performs when compared to traditional cross browser tests. I've set up a test suite that runs across 3 browser environments (Chrome, Firefox and Safari), uses 3 parallel threads and runs 195 tests. below are the results:
|Traditional CBT Method
As we can see, the UFG outperforms the traditional method by 17.8%. Not to mention, it took me much longer to set up the traditional test suite since I had to download and configure all of the drivers needed in the test.
Applitools' Ultrafast Grid (UFG) revolutionizes cross-browser testing for web applications. This tool vastly simplifies the process by running test suites on a single local driver, allowing for asynchronous operations, and easily scaling the test environments as needed. With its efficient and straightforward implementation process, the UFG outperforms traditional cross-browser testing methods, marking a significant advancement in the field of web application testing.