What is Browser Stack?

Background

We already talked about Cross Browser Testing and Test Automation in the previous post and we looked at some competitive analysis of the cloud infrastructure services (hardware and platform) that help us. In this post, let’s talk about Browser Stack.

Agenda

  1. Value Proposition
  2. Manual testing on Browser Stack
  3. Automated testing using saucelabs gem
  4. Execution and results

Value Proposition

If you go to browserstack home page, this is what we see

browserstack_homepage

If you login, the landing page is on “live” tab. Click more – responsive

browserstack_features

We already talked about responsive web design on this website. Browser stack seems to support this.

browserstack_rwd

Manual Testing 

Step 1: Select Platform – Click the platform (OS) at the left top corner and you can select the platform. I selected “windows 7”

bs_select_platform

Step 2: Select browser –  Now select the browser available for the previously selected platform. I selected chrome 42

bs_select_browser

Step 3: Select resolution and enter url – Now select the available resolutions and enter the test URL in the “public url” tab and click “start test”

bs_select_res_enter_url

Step 4: Provision the cloud machine – We will see this intermediate screen that provisions a fresh machine for us

bs_provisioning

Step 5: Interacting with Screen – Now we can interact with the machine through browser. We can see a couple of options as highlighted. At the top right corner, you can fit to screen, which is what I did

bs_interacting_screen

Step 6: Update – You can change the settings in the upper left corner and click “update”. I liked this feature very much. For example, I changed the resolution to 1366 x 768 and hit update. The page got refreshed and it came back almost instantly. You can click the orange arrow to bring the settings from left menu anytime. Obviously, if you update the settings to go on a different platform, then the current session will be terminated and a new session that can provision a fresh instance will be launched.

bs_session_update

Step 7: Capture a bug – I hit capture a bug and instantly the current screenshot was taken and I got into a editor mode. I like the inline edit options for the image modification, highlighting etc. If you click “save”, the screenshot will be saved and it appears in lower left corner. You can pass the link to anyone who wants to see the bug screenshot.

bs_capture_bug

Automated Testing

So if we click “Automate” at the top of the window, we get pretty much many options , similar to sauce labs. you can see that it supports almost all programming languages like Sauce labs. So far, I actually like the usability aspect of interacting with the machine on Browser Stack more than Sauce Labs. Sauce Labs seemed a little clunkier than BrowserStack. Anyways, both of them are actually workable completely and automated testing is where the most ROI is derived from. So I went ahead and clicked “Ruby” and below is the code that is specific to my userid.

Below is the code

Execution and Results

  • Execute the above script
  • Go to browser stack home page – Automate – Click Go to dashboard
  • You can see a row created in left bottom corner and that is the session created by our script above
  • you can see text logs, visual logs and raw logs
  • The screenshots are embedded inline in the logs
  • If you click “Browser capabilities” – you get a tooltip with the information
  • If you click “input capabilities” – tooltip with input caps information
  • At this point, I think local testing = testing on private sites or behind firewall (This is similar to Sauce labs sauceconnect executable utility, browser stack has BrowserStackLocal.exe)

bs_execution