Overall Satisfaction with Sauce Labs
As we began architecting a CI/CD pipeline in our SDLC, a need quickly arose for left-shifted, continuous testing of our web applications in real browsers. Specifically, a service that could integrate seamlessly with our Jenkins CI servers and executing tests continuously against our Dockerized applications and firewalled environments. Furthermore, our company does not have the resources to implement and maintain a proprietary Selenium Grid for test distribution. Sauce Labs addresses all of these concerns, and furthermore offers a platform for manually debugging applications in any combination of platforms, browsers, and devices needed, either from an automated test script or from a manual test session. The largest selling point for our needs is its relatively seamless integration with our Jenkins CI servers, including detailed playback and test reports per build job, as well as easy configuration of the proxy tunnel used to access our firewalled environments and desired browsers-under-test, right from the Jenkins UI via their Sauce OnDemand Jenkins plugin.
- Sauce Labs offers the single best solution for integrating deep automated browser testing in a CI/CD pipeline, and integrates best with Jenkins over their competition.
- The Sauce Connect Proxy is a necessary technology for companies who have firewalled testing environments, as well as localhost testing.
- The Jenkins UI plugin offers a way to easily configure browser settings for tests being executed continuously.
- Browser support is quick to be updated as new versions of browsers are released.
- The custom capabilities that can be provided to Sauce Labs VMs during automated testing sessions are a valuable option for experimental or niche testing.
- The Jenkins Sauce OnDemand plugin could have more options available to tap into more of the custom capabilities Sauce Labs actually supports. Currently, in order to tap into these capabilities, a programatic solution is required from test code, rather than being able to configure them via the Jenkins plugin UI. For example, things like desktop resolution, browser automation binary versions, remote Selenium version, and browser console logs.
- Some issues with the Sauce Connect Proxy on our Jenkins servers failing to start, which makes the optimal CI/CD pipeline come to a halt. Better documentation, logging, and more intuitive configuration around the Sauce Connect Proxy would take what is already an industry leading feature to the next level.
- User account management needs an overhauls, allowing for user groups, rather than just a hierarchy structure.
- Test job queuing is first-come-first-serve, meaning there is no in-built way to queue batches of jobs from, say, different Jenkins servers/accounts.
BrowserStack captures more market share than Sauce Labs does as of this writing, and thus has a much larger support network. During testing, it was also a little faster to spin-up virtual machines, and substantially quicker spinning-up mobile simulators and emulators. Pricing models were very similar in the enterprise tier. However, while BrowserStack may have been a better choice for manual testing or manually-executed automated tests, Sauce Labs offered a better product and better vision for tests that were left-shifted in a continuous delivery pipeline, which is the architectural direction or company has gone. Their service was proven to better integrate with this pipeline than BrowserStack.
Evaluating Sauce Labs and Competitors
- Price
- Product Features
- Product Usability
- Positive Sales Experience with the Vendor
- Third-party Reviews
The features of Sauce Labs over its primary competition are ultimately what drove the purchase decision. Sauce Labs offers a far-better solution for integrating deep user interface testing into a continuous delivery pipeline, that takes care to allow for testing of firewalled environments. The Jenkins support, specifically, informed our decision quite a bit, since we use Jenkins CI servers for our CI/CD model.
Reaching out to Sauce Labs representatives to get a timeline estimate on development of new features might have been an addition to the process we considered. Furthermore, a lengthier trial implementation to better determine some of the shortcoming of features we liked might have been beneficial, such as relatively restrictive user account management.
Using Sauce Labs
30 - Software Architects, Software Development Engineers, Business Analysts, and Software Test Engineers all leverage the Sauce Labs service in some way.
2 - Most support required for Sauce Labs involves coding test automation solutions that interface with Sauce Labs and Jenkins in the ways that are expected of our CI/CD model, and evolve along with it. There are also the administrative tasks surround user account, including creation of new users in the Sauce Labs service, as well as managing their privileges.
- Functional and Regression testing of our web applications via the user interface
- A VM grid supporting all necessary platforms, devices, and browsers that tests can be executed in from our CI servers that is maintenance-free
- Ability to debug browsers, platforms, or devices that are not readily available in-office
- Integration with our continuous delivery pipeline
- Detailed test reports and playback
- The ability to test the responsiveness of our user interfaces against smaller resolutions (either desktop or mobile)
- The ability to test multiple independent browser sessions within the execution of a single test, such as for testing session independence for Single Sign-On cases, or for testing concurrent usage of an application across multiple browser sessions
- The ability to execute automated or manual tests in Sauce Labs against localhost
- Continuous and left-shifted performance testing of the User Experience
- Real Device testing, rather than mobile simulators or emulators
- More extensive mobile testing
Sauce Labs Implementation
- Implemented in-house
Change management was minimal - N/A
- Ensuring that implemented automated test scrips could interface with Sauce Labs from either a local workstation or a Jenkins CI server
- Determining a solution for test job queuing. Sauce Labs does not support batch job queuing, but rather test jobs are queuing by first-come-first-server. What this means is that if your organization has multiple CI servers, each with their own Sauce Labs account and each wanting to execute a batch of test jobs, your organization must internally implement a solution to ensure that those concurrent batches of tests do not collide with each other.
Sauce Labs Training
- Self-taught
Product is extremely easy to learn on one's own, and requires little technical knowledge unless you are attempting to interface with the service from an in-house test automation framework. The documentation is well done, and updated with an acceptable frequency. Furthermore, they have a knowledge base and community that can be used to research more niche issues or questions.
Configuring Sauce Labs
Ensure that automated test source code and leverage all of Sauce Labs features from either a local workstation or a CI server, and that (if applicable) the Jenkins Sauce OnDemand plugin's configurations take priority over source code configurations, unless source code configs explicitly override the Jenkins plugin configs. This is the best way to ensure that specific test cases can have specific configurations without blanketing them with a configuration for the entire suite, as well as ensure that capabilities Sauce supports that aren't reflected in the Jenkins plugin can be leveraged.
No - there is no facility to customize the interface
No - the product does not support adding custom code
An internal solution needs to be implemented that organized batches of automated tests from multiple CI servers, such that if batches are executing concurrently, their individual tests do not collide with one another in the Sauce Labs service and unexpectedly subtract from the available concurrency pool. Sauce Labs does not support such batch queuing natively.
Sauce Labs Support
Pros | Cons |
---|---|
Good followup Knowledgeable team Problems get solved Kept well informed No escalation required Immediate help available Support understands my problem Quick Initial Response | None |
Yes - Premium support comes with entry into the enterprise license tier, which our company is a part of for legal reasons.
Our trial period before we decided to purchase Sauce Labs was extensive. At this time, we were still entertaining the idea of their main competitor as well. We mostly needed to vet what service would best work with our continuous delivery pipeline, and we needed time to prove this out. The Sauce Labs representative we were working with at the time was more than helpful and went above and beyond to ensure that our trial period was extended to as long as we needed to make an informed decision.
Using Sauce Labs
Pros | Cons |
---|---|
Like to use Relatively simple Easy to use Technical support not required Well integrated Quick to learn Convenient Feel confident using Familiar | None |
- Manual test sessions are very easy to spin up, and customize your platform, device, and browser and its version
- Test playback and metadata viewing is incredibly intuitive, for both manual and automated testing sessions
- Sometimes the Sauce Connect Proxy on a Jenkins server can be inexplicable flaky and fail to start during a build job. When this occurs, debugging the cause is difficult, and it breaks the intention of the CI/CD model.
- To execute a test in Sauce Labs from a local workstation against an application/environment that is firewalled requires starting the Sauce Connect Proxy utility on the local machine. This is a command line utility that may be unwieldy for non-technical people.
- The Jenkins Sauce OnDemand plugin is, as of this writing, relatively restrictive in what capabilities it can set for test execution. If your automated tests wish to tap into more granular capabilities that Sauce Labs supports (such as desktop resolutions, Selenium version in remote VM, automated driver binary version, etc), then a programatic solution is required, as these capabilities cannot be configured from the Jenkins plugin user interface.
Yes, but I don't use it
Sauce Labs Reliability
Integrating Sauce Labs
- API (e.g. SOAP or REST)
Relationship with Sauce Labs
Know that the enterprise pricing is flexible and can be negotiated.
Upgrading Sauce Labs
- N/A, cloud-based
- Hopefully more configurations for user account administration
- More features implemented for the Jenkins Sauce OnDemand plugin
- More fleshed-out Sauce Connect Proxy utility