In today’s fast-paced digital landscape, ensuring the functionality and compatibility of web applications across various browsers and devices is paramount. To achieve this, developers and QA professionals rely on comprehensive testing solutions. BrowserStack, a widely recognized name in the realm of web and mobile testing, offers two essential tools: BrowserStack Automate and BrowserStack Live. Both services cater to the testing needs of web developers and QA professionals, but they serve different purposes and have distinct features. In this article, we’ll analyze BrowserStack Automate and BrowserStack Live to help you make an informed choice for your testing needs.
BrowserStack Automate
BrowserStack Automate is a robust tool designed to simplify and enhance the efficiency of automated testing, allowing developers and QA teams to scale their tests and deliver features faster.
You can write your automated test cases and trigger them from your machine. These tests execute on your highly reliable cloud infrastructure. You can then view and debug results on the BrowserStack Automate dashboard.
Thousands of tests can be run in parallel, reducing test execution time from hours to minutes. BrowserStack Automate manages the test infrastructure for you so that you can focus on scaling the tests and shipping the features faster.
It has over a hundred browser and OS combinations, which you can pick from the list mentioned here.
Features of BrowserStack Automate:
BrowserStack Automate offers a multitude of features that empower teams to conduct extensive and efficient testing:
Parallel Testing: One of the standout features of Automate is its ability to run thousands of tests in parallel. This capability dramatically reduces test execution time from hours to minutes, enabling faster development cycles.
Cross-Browser Testing: With over 100 browser-OS combinations available, Automate allows you to test your application across a wide range of real browsers and mobile devices. This extensive coverage ensures that your web application is compatible with various user environments.
Integration with CI/CD: Seamlessly integrate BrowserStack Automate into your continuous integration and continuous deployment (CI/CD) pipelines. This integration automates testing as part of your development workflow, providing rapid feedback on code changes.
Automated Screenshot Comparison: Detect visual regressions easily by leveraging automated screenshot comparisons. This feature ensures that your application’s visual elements remain consistent across different browsers and platforms.
Real User Conditions: Test your application under real-world conditions by simulating various network connections, GPS locations, and more. This capability helps you identify performance bottlenecks and optimize user experiences.
Test Analytics: It offers detailed test analytics, helping you identify issues and bottlenecks in your test suite. You can access test reports, logs, and screenshots to pinpoint problems quickly.
Getting Started with BrowserStack Automate
Test execution on desktop browsers:
Let’s walk through the steps to set up and run tests using BrowserStack Automate.
In this example, we will be using Playwright with NodeJS as Playwright is one of the leading testing automation tools in the market right now. We will be running the tests using NodeJS SDK on BrowserStack’s Playwright Grid of 100+ browser-OS combinations.
1. Create Your Account: Begin by creating a BrowserStack account and obtain your username and access key from BrowserStack’s profile page.
2. Install Node.js:
Ensure that you have Node.js version 14 or higher installed on your machine. You can download it from the official Node.js website.
3. Clone the Test Project:
Clone the test project from here which contains example test files for demonstration (originally forked from BrowserStack official repo).
This is a simple project with 3 test files: a. test_pl_table_topper.js : opens this link and find the team that is on top of the table. b. test_mobile_fpl_deadline.js : same as above but for mobile device testing. c. test_fpl_deadline.js that opens the webpage , checks the deadline date, and alerts the user if today is deadline day.
4. Install Dependencies:
Navigate to the project directory in your terminal and run the command npm i to install the required dependencies.
5. Configure browserstack.yml:
Edit the browserstack.yml file, replacing [Add your username here] and [Add your access key here] with the credentials obtained in step 1. Configure the test environments to specify the browsers and operating systems you want to target. Then configure the test environments to specify the browsers and operating systems you want to target.
In this case, we have set up the tests to run on two operating systems (Windows 11 and OS X) and three browsers (Chrome, Safari, and Firefox).
6. Run Tests:
Execute the tests using the command npm run pl-test. The tests will run on BrowserStack’s infrastructure, with logs showing the progress and a link to view the test report on the BrowserStack platform.
On your console logs, you can see both the tests running on three different browsers parallelly using three workers on BrowserStack infrastructure.
7. View Test Results:
The test report displayed on the dashboard provides details on the number of tests executed, passed, and failed, along with information about the test framework, browsers, and operating systems used. You can also access additional information such as test video recordings, network logs, console logs, and device details.
At the end of the logs, it provides the URL to view the test report on the BrowserStack platform. Open this URL on a browser to see the full test report.
The test report is now displayed on the dashboard with the number of tests executed, passed and failed details, test framework used, browser, OS used for each test, etc.
You can clearly see my tests were run across Firefox, Safari, and Chrome between Windows and Mac operating systems. That is how easy it is to scale your tests on BrowserStack Automate. All the hassle of setting up a test infrastructure is taken away from you and you get to spend time on building the tests rather than worrying about the infrastructure.
Clicking on any test shows the full details of the test run including the test video recording, network logs, console logs, device information, etc.
Another really good feature is that you can share your test results using a public link with which anyone can view the interactive test results while keeping your private information hidden.
Here is the link to my test execution if you would like to check it out.
Test execution on mobile browsers
Now let’s execute one of the above tests (b) test_mobile_fpl_deadline.js on an Android mobile device on the browser stack platform. At the time of writing this article, BrowserStack only supports Android testing for Playwright.
1. Configure Device and Browser combination
You can set the Android Browser-OS combination in the playwright.config.js as shown below:
I have set deviceName: “Samsung Galaxy S22” for this test as I wish to test it on a Galaxy S23 device. Similarly, we can test for other devices by setting this value to “Samsung Galaxy S22 Ultra”, “Google Pixel 7 Pro”, “OnePlus 9”, etc.
2. Configure fixture.js
In the fixture.js file, add your username and access key under [Add your username here] and [Add your access key here] fields. The patchMobileCaps function within the fixture.js file facilitates dynamic patching of the capabilities according to the project name.
3. Run Tests:
Now you can run the test using the command npm run mobile-test
BrowserStack will spin up a Samsung Galaxy S22 device on your account and run the test. Just like the previous test, you can see the test results and other details on the dashboard.
Clicking on any test shows the full details of the test run including the test video recording, network logs, console logs, device information, etc.
Here is the link to my test execution if you would like to check it out.
Conclusion
BrowserStack Automate offers a comprehensive solution for automated web application testing. Beyond the features covered in this article, it provides advanced capabilities like testing Chrome Extensions, file uploads, and integration with tools like Lighthouse. Moreover, Automate seamlessly integrates with popular CI/CD platforms like GitHub Actions and Jenkins, enabling you to automate and streamline your testing process. By harnessing the power of BrowserStack Automate, you can enhance the quality of your web applications and accelerate their delivery to users.
BrowserStack Live
BrowserStack Live is designed to provide developers and QA professionals with the ability to conduct real-time, manual testing on a wide range of browsers and devices. This tool empowers you to interact with your web applications remotely, mimicking user behaviors and scenarios, and ensures that your software meets the highest standards of quality and user experience.
Features of BrowserStack Live
Live Interactive Testing: BrowserStack Live allows you to access real browsers and devices remotely. With this feature, you can manually explore and interact with your web application as if you were using it on your local machine.
Instant Bug Reproduction: Debugging and issue resolution become more efficient with BrowserStack Live. You can easily reproduce reported issues on different browsers and devices, allowing for swift identification and resolution of bugs.
Responsive Testing: Test the responsiveness of your web application effortlessly. Resize browser windows, switch between devices, different browser versions, and emulate various screen resolutions to ensure your application adapts seamlessly to different screen sizes.
Developer Collaboration: Collaboration between developers and QA professionals is simplified through BrowserStack Live. You can share live test sessions, making it easier to communicate, troubleshoot, and address issues in real-time.
Geolocation Testing: Verify location-based features by simulating GPS coordinates. Ensure that your application behaves correctly in different regions, providing consistent functionality for users worldwide.
Getting Started with BrowserStack Live:
Let’s walk through the steps to start using BrowserStack Live for your testing needs.
1. Create Your Account: You can begin by creating a BrowserStack account to gain access to the BrowserStack Live tool. Access the tool. Enter the URL of the web app you would like to test and click on Start Test button. We will use the same Premier League app URL we did for BrowserStack Automate.
2. Select Your Testing Environment:
You can choose from a wide array of real browsers and devices, including different versions and operating systems, to create your ideal testing environment.
You can run your tests across new and old versions of Edge, Safari, Chrome, IE and Firefox on Windows and macOS. This helps in the seamless reproduction of bugs your users might have reported on specific devices with specific browser versions.
Windows options:
Mac options:
You can also run your tests across a range of real Android and iOS devices.
Android options:
iOS options:
3. Begin Manual Testing:
After you pick the OS and browser combination, BrowserStack will dedicate a live device for you and spin up the browser you selected. You can then navigate to different URLs and begin your testing.
Windows:
MacOS:
Android:
iOS:
4. Debug and Optimize:
BrowserStack Live has powerful embedded debugging tools to identify and debug issues instantly. Using these tools you can reproduce bugs, test different scenarios, and optimize your application’s performance and user experience.
You can use the live browser’s developer tools to view console logs or network requests.
You can also throttle network requests to see how your web app behaves on different network speeds.
When you find a bug, you can share the details of it with your team along with custom annotations and session details, including OS, resolution, browser, tested URL, and more as attachments via different apps like Jira, GitHub, Slack, etc.
5. Collaborate and Share Results:
Collaborate seamlessly with your team by sharing live test sessions. BrowserStack Live also allows you to share test results and sessions with stakeholders, ensuring transparency and efficient communication. You can do this by inviting team members to your test sessions.
6. Geo Location tagging:
BrowserStack Live ensures global compatibility. You might have a pricing page on your app that shows different pricing in different currencies for different regions. How do you test that efficiently? Using a VPN? Well, you do not need one when you have Live. You can simulate geolocations and test your app in various regions.
7. Upload/Download files to/from live devices:
You can seamlessly transfer your files to and from live devices with BrowserStack Live’s file upload feature. This allows testers and developers to directly transfer and utilize their local assets, such as files, scripts, or test data, on real devices in the testing environment. This feature streamlines the testing process by enabling users to work with their preferred resources without the need for additional setup or manual transfers. It promotes efficiency, accuracy, and the ability to conduct comprehensive testing with ease.
Conclusion
BrowserStack Live is a game-changer in the world of real-time, interactive testing. With its extensive browser and device coverage, instant bug reproduction, and seamless collaboration features, it empowers development and QA teams to ensure the highest quality and user experience for their web applications. Embrace the power of BrowserStack Live to bring your testing efforts to the next level, delivering reliable and optimized web applications in today’s competitive digital landscape.
Key Takeaways
In summary, BrowserStack Automate and BrowserStack Live are two distinct offerings from BrowserStack, each catering to specific testing needs.
BrowserStack Automate is ideal for teams that require automated testing, CI/CD integration, and parallel test execution. It’s a powerful solution for regression testing, test automation, and maintaining application quality at scale.
BrowserStack Live is perfect for manual testing, debugging, and real-time issue resolution. It is an excellent choice for situations where testers need to interact with the application directly and collaboratively.
Ultimately, the choice between the two depends on your project’s requirements. Many organizations use both BrowserStack Automate and BrowserStack Live in tandem to cover all aspects of their web application testing needs, ensuring a seamless user experience across various platforms.
Afsal Backer is a test automation engineer with experience in building UI and API test automation frameworks, implementing CI pipelines for QA, and test execution in AWS. He has certifications from Test Automation University. Afsal often shares on his LinkedIn and blog.