What is Browser Stack?
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.
- Value Proposition
- Manual testing on Browser Stack
- Automated testing using saucelabs gem
- Execution and results
If you go to browserstack home page, this is what we see
If you login, the landing page is on “live” tab. Click more – responsive
We already talked about responsive web design on this website. Browser stack seems to support this.
Step 1: Select Platform – Click the platform (OS) at the left top corner and you can select the platform. I selected “windows 7”
Step 2: Select browser – Now select the browser available for the previously selected platform. I selected chrome 42
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”
Step 4: Provision the cloud machine – We will see this intermediate screen that provisions a fresh machine for us
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
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.
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.
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
# Input capabilities
caps = Selenium::WebDriver::Remote::Capabilities.new
caps["browser"] = "IE"
caps["browser_version"] = "7.0"
caps["os"] = "Windows"
caps["os_version"] = "XP"
caps["browserstack.debug"] = "true"
caps["name"] = "Testing Selenium 2 with Ruby on BrowserStack"
driver = Selenium::WebDriver.for(:remote,
:url => "http://seleniumframewor1:u1ZpzAhpbvgsU3ySV@hub.browserstack.com/wd/hub",
:desired_capabilities => caps)
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)