Posts Tagged ‘Sauce Labs’

Announcing Sauce Integration With Siesta

September 16th, 2014 by Amber Kaplan

siesta-logoSauce is thrilled to announce that we’ve integrated with Siesta by Bryntum!

Siesta is a JavaScript unit testing tool that can help you test any JavaScript code and also perform testing of the DOM and simulate user interactions. The tool can be used together with any type of JavaScript codebase – jQuery, Ext JS, NodeJS, Dojo, YUI etc. Using the API, you can choose from many types of assertions ranging from simple logical JS object comparisons to verifying that an HTML element is visible in the DOM. It comes in two versions: Lite and Standard. With Lite you can easily test your JavaScript in the browser, and with Standard you can also automate your tests (highly recommended).

Sauce is a cloud-based tool that enables you to securely test your web and mobile apps across 385+ browser/OS/platform/device combinations.

How does Siesta work with Sauce?

Siesta’s integration with Sauce is super easy since they’ve done most of the work under the hood. The main difference from the usual way you run WebDriver tests in Siesta is the addition of a –saucelabs argument, which will define the necessary credentials for connecting to Sauce and the –cap arguments which will specify the OS and browser combinations on which you want your tests to run. When you run Siesta tests using WebDriver, a standard command might look like this:

__SIESTA_DIR__/bin/webdriver http://localhost/myproject/tests/harness.html

For running the same test on Sauce’s hosted browsers, you’ll need to add your Sauce credentials and desired capabilities, like so:

__SIESTA_DIR__/bin/webdriver http://localhost/myproject/tests/harness.html --saucelabs SL_USERNAME,SL_KEY
--cap browserName=firefox --cap platform=windows

This command will then arrange a few things behind the scenes, like setting up the Sauce Connect tunnel so these tests can run locally and securely, and direct Sauce to execute the test specs on the latest version of Firefox on Windows. Of course, there are many desired capabilities and platforms you can choose to make sure you’re running tests according to the coverage that you need, and you can see all the different options on the Sauce Labs Platforms page.

For more information and the nitty gritty details, go ahead and check out the instructions provided in the Siesta docs: http://bryntum.com/docs/siesta/#!/guide/saucelabs_integration

What does the integration mean?

It’s become more than clear in the last few years that managing all the different browsers and operating systems out there, both desktop and mobile, is a whole lotta hassle and clearly better handled by a cloud-based service like Sauce Labs. But you need to ensure your JavaScript works from everywhere, and since you can now run your Siesta tests on any or all of Sauce’s 385 platform configurations, you can get that assurance with minimal effort and stay focused on the JavaScript code itself without having to invest your time and energy managing infrastructure.

Yep, you read that right: Now you can test your JavaScript code across all of Sauce’s instantly available browsers and platforms without setting up or maintaining your own VMs. Magic!

For more information, check out the Bryntum blog post.

- Michael Sage, Principal Technology Evangelist, Sauce Labs

Michael Sage is a Principal Technology Evangelist at Sauce Labs who helps software teams develop, deliver, and care for great apps. He’s spent over 15 years as a solutions architect and consultant with software companies including Mercury Interactive, Hewlett Packard, and New Relic. He lives in San Francisco, CA.

Appium + Sauce Labs Integration

August 15th, 2014 by Amber Kaplan

appium_logo‘Appy Friday!

Sauce Labs’ Support Team wants to help our customers easily ramp up their mobile automated testing, so we put together this easy guide to Sauce integration with Appium. We hope you find it to be informative.

If you have any remaining questions about Sauce Labs’ integration with Appium, feel free to leave a note in the comments.

- Cheers, the Support Team at Sauce

 

Background info:

What is Appium?  Appium is an open-source tool that you can use to automate tests for mobile native, mobile web, and mobile hybrid applications. Just like Selenium Webdriver – which is an open-source tool that you can use to to automate web app tests – Appium is an automation library that you can use to automate tests for mobile applications. Other details:

  • It is cross-platform. This allows you to write tests against multiple platforms (iOS, Android), using the same API.
  • It is not locked into a specific language or framework for writing and running your tests.
  • It was created by extending the Selenium Webdriver JSON Wire Protocol with extra API methods that are useful for mobile automation.
  • Mobile Native Applications vs Mobile Web Applications vs Mobile Hybrid Applications

Types of mobile applications:

  • Mobile Native Applications:  Native apps can use all the features from your device, such as the camera, audio, microphone, and more. These applications work on a specific platform (i.e iOS or Android). Use the respective platform Software Development Kit (SDK) to develop them. Once they’re released for public use, users install the application on their respective devices through an application store (e.g. Google Play or Apple’s App Store).
  • Mobile Web Applications: These ones are a little tricky; instead of being an application that you download on your device, mobile web applications are a mobile website that you can access through a browser on your mobile device (e.g. Safari or Chrome). The advantage to creating and using these is that they are not platform-specific, which means that you should be able to access this application from any mobile platform (i.e. iOS or Android). Unfortunately, these applications have limitations when it comes to using a device’s internal features.
  • Mobile Hybrid Applications: As the name indicates, mobile hybrid applications are part mobile native app and part mobile web app. Just as with mobile native applications, you can find and download mobile hybrid applications using an application store (e.g. Google Play or Apple’s App Store), you can access them through icons on your device, and the app is be able to use all of a device’s features, such as the camera, audio, microphone, etc. In the same manner as a mobile web app, a mobile hybrid application looks like a mobile website that can be accessed through a browser, but in this case the browser is an embedded webview within the application that would just allow to display some HTML. A good example of a mobile hybrid app is that from Bank of America. It provides a user with the mobile native application perks while simply rendering pages from their website.

Appium with Sauce Labs

In certain cases, Sauce Labs uses Appium as the server for our latest iOS simulators and Android emulators. This means that whenever you run a test in Sauce Labs specifying any of the following mobile platforms, Appium is the automation tool in the background that starts and drives the simulator or emulator for your test.

Sauce Labs platforms that use Appium

Mobile Native Applications

  • all iOS platforms
  • all Android platforms

Mobile Web Applications (currently only available for iOS)

  • iPhone 6.1
  • iPhone 7.0
  • iPhone 7.1
  • iPad 6.1
  • iPhone 7.0
  • iPhone 7.1

Start testing with Appium + Sauce Labs

 

Additional Resources:

Appium Bootcamp: Want to jumpstart automated mobile testing on Sauce with Appium? Check out this bootcamp series by noted Selenium expert Dave Haeffner:

Chapter 1: Get Started
Chapter 2: The Console
Chapter 3: Interrogate Your App
Chapter 4: Your First Test
Chapter 5: Write And Refactor Your Tests
Chapter 6: Run Your Tests
Chapter 7: Automate Your Tests
Chapter 8: Additional Information

 

Appium Bootcamp – Chapter 8: Additional Information + Resources

August 14th, 2014 by Amber Kaplan

appium_logoThis is the eighth and final post in a series called Appium Bootcamp by noted Selenium expert Dave Haeffner. 

Read:  Chapter 1 Chapter 2 | Chapter 3 | Chapter 4 | Chapter 5 | Chapter 6 | Chapter 7

Dave recently immersed himself in the open source Appium project and collaborated with leading Appium contributor Matthew Edwards to bring us this material. Appium Bootcamp is for those who are brand new to mobile test automation with Appium. No familiarity with Selenium is required, although it may be useful. 

Now that you’re up and running with Appium locally, in the cloud, and on a CI solution, it’s best to show you where you can find more information. Below is a collection of some great resources to help you find your way when it comes to mobile testing.

Community Support

These are the official tutorials for the Appium project for Android and iOS. They served as inspiration and a base for this getting started series. They are great follow-on material since they cover various topics in more depth, and include Java examples as well.

If you have an issue or a question, this is a great place to turn to. Before posting an issue, be sure to read through the Appium Troubleshooting docs and search the group to see if your question has already been asked/answered.

In addition to the Google Discussion Group, you can hop on the Appium HipChat chat room and ask questions from others in the Appium community.

This is a follow-up post answering loads of questions from a webinar from just after thet Appium 1.0 release. It’s chocked full of a lot of great information.

In this video, Jonathan Lipps (Appium’s Chief Architect) explains mobile automation with Appium.

This is an open-source book that is a work in progress; authored by Jonathan Lipps. It’s working title is “Appium: Mobile Automation Made Awesome”.

Some Android Specific Resources

These links (a video, Q&A, and a blog post) cover how Google approaches Android testing.

uiautomator is a crucial component of Android test automation. In this video, the engineers behind it talk about it’s future.

This video is a walk through Google’s newest Android testing framework. This isn’t directly related to Appium, but it contains some useful information.

Some iOS Specific Resources

Appium relies on Apple’s UI Automation support, and these are some solid resources for understanding it better.

Professional Support

If you are a Sauce customer and encounter an issue when using their platform with Appium, be sure to open a support ticket.

If you’re using Appium and you think you’ve found a bug specific to either Android or iOS, then let Google and/or Apple know. In either case it’s best to make sure that the bug is not an Appium issue before filing an issue.

For Google, file an issue here.

For Apple, file an issue here. Apple keeps all bugs private, so it’s worth also filing a duplicate issue here.

Straight To The Source

These are great instructions on how to search through the Appium source code to find more information.

Some Other Resources

There are over 600 Appium questions posted on Stack Overflow for you to peruse.

Xamarin has a free cheat sheet comparing popular mobile app controls. Definitely worth a look.

Outro

Now you’re ready, armed with all the information you need to continue your mobile testing journey.

Happy Testing!

Read:  Chapter 1 Chapter 2 | Chapter 3 | Chapter 4 | Chapter 5 | Chapter 6 | Chapter 7

About Dave Haeffner: Dave is a recent Appium convert and the author of Elemental Selenium (a free, once weekly Selenium tip newsletter that is read by thousands of testing professionals) as well as The Selenium Guidebook (a step-by-step guide on how to use Selenium Successfully). He is also the creator and maintainer of ChemistryKit (an open-source Selenium framework). He has helped numerous companies successfully implement automated acceptance testing; including The Motley Fool, ManTech International, Sittercity, and Animoto. He is a founder and co-organizer of the Selenium Hangout and has spoken at numerous conferences and meetups about acceptance testing.

Follow Dave on Twitter - @tourdedave

Re-Blog: Building Markdown-Based Developer Docs

August 13th, 2014 by Amber Kaplan

Sauce Labs developer Chris Wren and his team have been working tirelessly to improve our documentation system, so we thought we’d share what they’ve been up to. Says Chris:

“Recently at Sauce Labs we decided to retool our documentation system. This decision came after accumulating docs in a number of template systems and repos which were difficult to standardize and maintain. The result of this effort was a new markdown-based docs site available at docs.saucelabs.com.”

For all the details, be sure to check out Chris’ post – just click the image below to view.

Building markdown-based developer docs

Want to contribute to Sauce Labs’ documentation? In the spirit of open source, we’ve housed them in GitHub. Submit away.

Announcing CircleCI Integration on Sauce Labs

August 11th, 2014 by Amber Kaplan

Last week our friends at CircleCI showed us how to securely run cross-browser front-end tests on the Sauce Labs cloud using their hosted Continuous Integration service. We’ve long been advocates of good continuous integration practices and have developed a few plugins for some of the more common CI servers out there. We’re super excited to add CircleCI to our list and even more excited about how easy it is to get it going!

Continuous Integration in the Cloud

Continuous Integration, if you don’t already know, is the process of building your app frequently from a shared source code repository and running tests to make sure everything works. If your tests don’t pass and the build is not successful, the code that was checked in since the last good build is where the defects were introduced, and so problems are much easier to find and fix quickly.

Maintaining a local CI server can be a hassle. Anyone who’s spent any considerable time configuring Jenkins jobs with all it’s various plugins and tasks can tell you all about it. CircleCI, on the other hand, integrates directly with GitHub and can actually *infer* necessary settings directly from your code (if you’re following good development practices for that language and environment) and so many projects just magically build themselves on CircleCI without any additional configuration on your part. It’s like three clicks from zero to CI. Pretty sweet! If you do need to tweak or customize any settings, you can easily do so by describing those settings in a circle.yml file placed in your repo.

Running Tests on Sauce Labs Browsers

Sauce Labs is the world’s largest cross-browser client cloud. We host over 375 different configurations of operating systems and browsers so you can ensure that your app works on all the specific platforms and versions you need to support. These days that’s an ever-growing list! So it makes sense to run these tests with your continuous integration process so you know things work across the board and you don’t end up spending a bunch of time and trouble trying to hunt down bugs that were introduced much earlier in the development cycle.

Now, if your build deploys your code to a publicly accessible environment, CircleCI will simply execute your Selenium tests and you probably won’t need to configure anything, since Sauce Labs browsers will be able connect to that environment over the public network. However, if you want CircleCI to execute your tests locally in it’s build containers, you’ll need to use Sauce Connect.

Sauce Connect is a secure tunneling utility which allows you to execute tests behind firewalls via an encrypted connection between Sauce Labs and your testing environment. When you run Sauce Connect yourself, you typically do it from a command line or shell script and supply your Sauce Labs account credentials as parameters. With a CircleCI build, you’ll need to set it up in the circle.yml file so it can be launched as part of the build process and those tests can run inside the local container.

All that’s really involved here is telling the build task where to find Sauce Connect and how to start it up with your account credentials.

The first part is downloading and unpacking the Sauce Connect file, which you add as a custom dependency entry in your circle.yml:

	dependencies:
	  post:
		   - wget https://saucelabs.com/downloads/sc-latest-linux.tar.gz
		   - tar -xzf sc-latest-linux.tar.gz

The second part is to add your credentials, launch the tunnel, and check that it’s running before kicking off the tests. You’ll put these lines in the `test` section of circle.yml:

test:
     override:
        - ./bin/sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY -f ~/sc_ready:
            background: true
            pwd: sc-*-linux
        # Wait for tunnel to be ready
        - while [ ! -e ~/sc_ready ]; do sleep 1; done

That’s all there is to it. You can find out the details here and see a full example on GitHub. And CircleCI has a nice little utility to help you add your credentials as environment variables so that they are not visible as plain text in the repo.

With CircleCI tackling all the necessary work involved in supporting your continuous integration process and Sauce Labs hosting the world’s most extensive cross-browser client cloud, you can be free of the costs and hassles of managing all these systems and grids and get back to focusing on the business of making great software.

- Michael Sage, Principal Technology Evanglist, Sauce Labs

Michael Sage is a Principal Technology Evangelist at Sauce Labs. He helps software teams develop, deliver, and care for great apps. He’s lived through two or three technology revolutions and expects a few more to come, and finds the prospect incredibly exciting. A native of Philadelphia, he’s made San Francisco his home for over 25 years, but still can’t find a good hoagie there.

Cloud9 + Sauce Labs Integration: Learn How It Works [WEBINAR]

August 6th, 2014 by Amber Kaplan

Sauce + C9 IntegrationEver wanted to develop and test applications directly from your browser? Cloud9 enables users to do just this using their powerful cloud-based development environment. With their recent release and new integration with Sauce Labs, users can now instantly test mobile and web apps across any browser that Sauce Labs supports – without ever leaving the Cloud9 interface.

Join us for our latest webinar showcasing the integration on Friday, August 29, at 11am PST.

Ruben Daniels, Cloud9′s founder and CEO, and Jonathan Lipps, Sauce Labs’ Director of Ecosystems and Integrations, will walk you through Cloud9′s setup and how to test and debug across multiple browsers and platforms with Sauce Labs.

This 30 minute webinar includes a Q&A. Click here to sign up today!

All registrants will receive a link to the recording and other assets following the webinar, regardless of attendance.

Updates Coming to Default Selenium and Chrome Versions on Sauce (August 2)

July 28th, 2014 by Santiago Suarez Ordoñez

On Saturday, August 2nd, we will update our Selenium and Chrome default versions to meet current, stable implementations. This update affects users that run automated Selenium tests on Sauce.

Default versions of Selenium and Chrome are used only for tests that don’t have a specified browser version. Users who choose to assign Selenium and Chrome versions to their tests will remain unaffected.

Below you’ll find more details about the updates.

Selenium

Currently the default Selenium version is 2.30.0. Following the update on August 2, the new default Selenium version will be 2.42.2. We advise you to test the new version (2.42.2) in advance using the following desired capability:

"selenium-version": "2.42.2"



If you run into any issues with the new default, note you can continue using the previous version (2.30.0) after Saturday by making the test request the selenium-version desired capability referred to below:

"selenium-version": "2.30.0"


Chrome

Currently the default Chrome versions are Chrome 27 and Chromedriver 1. Following the update on August 2, the new default Chrome versions will be Chrome 35 and Chromedriver 2.10. We advise you to test the new versions (Chrome 35, Chromedriver 2) in advance using the following desired capabilities:

"browserName": "chrome"
"version": "35"



By requesting Chrome 35, Chromedriver 2.10 will be used automatically.


If you run into any issues with the new default, you can continue using the previous versions (Chrome 27, Chromedriver 1) after Saturday by making the test request the “version” desired capabilities referred to below:

"browserName": "chrome"
"version": "27"


Troubleshooting Issues

If you see any issues after moving your tests to these new versions, we suggest checking for known issues on https://code.google.com/p/selenium/issues/list or contacting the Chromedriver and Selenium user groups.

Happy testing!

[Re-Blog] Dev Chat: Vlad Filippov of Mozilla

July 28th, 2014 by Amber Kaplan

Last week Sauce Labs’ Chris Wren took a moment to chat with Vlad Filippov of Mozilla on his blog. Topics covered all things open source and front-end web development, so we thought we’d share. Click the image below to read the full interview, or just click here.

Dev Chat: Vlad Filippov of Mozilla

 

Campus Explorer Reduces Testing Time From 72 Hours to 72 Minutes Using Sauce Labs

July 18th, 2014 by Amber Kaplan

We sat down with Senior QA Manager Sage Rimal to hear how they use Sauce Labs at Campus Explorer.  Sage shared how they’ve automated their tests on Sauce, and have since reduced their testing time from 72 hours to 72 minutes.

Watch the video below to get the latest!

Want to share your story? We want to hear from you! Submit a request here.

Microsoft Launches IE Developer Channel; Win For WebDriver

June 20th, 2014 by Amber Kaplan

In light of the recent news about Microsoft  launching an IE Developer Channel that features WebDriver support, we asked our own VP of Engineering to comment on the story. His post is below – enjoy!

I think all web developers can identify with that fateful moment when you think your front-end project is finished, and then it dawns on you: time to start the painful process of cross browser testing and debugging. You may get up and walk around the office, procrastinate, look for conversations to start — but eventually you sit down and dive in. Historically Firebug was your main crutch; over time Chrome dev tools started to take hold - but eventually you find yourself waiting for your Windows VM to boot, so you can dive into IE’s latest and wait for the fateful popup stating something like, line 66, “Error: Object expected” – let the games begin.

The moment I saw Selenium IDE zooming through functional tests, I was more excited than I had ever been about development tools. The debug loop required to squash JavaScript bugs in IE from a Mac was so painful, and finally there was some automated hope in sight. I think we can all agree that Selenium RC left something to be desired — but trying to drive a browser against its will (and protective security measures) using JS was ultimately a losing battle for anything reliability.

However, reading the recent news from Microsoft announcing the IE developer channel made the DOM hacker inside me from 5 years ago breathe a sigh of relief. I think it’s fair to say that it’s better late than never — and the tools they are starting to ship look pretty cool. But what’s more — the new process and way they are looking at shipping features through a dev channel shows some promising potential for a better future relationship between dev’s and IE. On the Sauce Labs cloud we are still seeing ~19 percent of our jobs running against IE, and we don’t expect that to disappear anytime soon – as the IE market share still makes up for a pretty substantial amount of users, especially in regards to enterprise customers.

What’s even more exciting is the inclusion of the ability to enable built in WebDriver. At this point ~86 percent of Sauce Cloud usage is WebDriver instead of Selenium RC. The browser vendor support of for the WebDriver JSONWireProtocol specification, has driven the continued and significant growth of the community around client libraries and tools. The acknowledgement and delivery of a clean implementation of this spec for IE and inferred ongoing maintenance is a step in the right direction in order to make functional testing for IE straight forward and reliable. The ultimate stated goal of the Selenium project, is to move the entire implementation of the specification into the browsers – and this, in combination with the W3C working draft, are exciting steps in that direction.

At the moment, to take advantage of all this new goodness, you must be running a consumer grade version of Windows (not a server version), but they are aware of that and understandably wanted to get some progress out the door. We are looking forward to deploying this to the Sauce Cloud, so that our users can quickly get access to the latest and greatest.

I think the Selenium and developer communities should see this as a great sign that we are being heard, and supported, and to continue pushing hard to make development and testing tools first class citizens.

-Adam Christian, VP Engineering, Sauce Labs

You can read the announcement and detail breakdown here. Get directions on how to enable and play with the new functionality in their documentation here. Sauce Labs is working to support this upon availability on server windows versions; stay tuned for updates upon release.