Appium 1.5.3 Released on Sauce

June 8th, 2016 by Isaac Murchie

We are pleased to announce the release of Appium 1.5.3 through npm and on Sauce Labs!

Appium 1.5.3 is primarily a bug-fix release. However, it also adds functionality to support for iOS WKWebViews and for automating the iOS Calendar app, as well as adding a capability to use abd for screenshots in Android web/hybrid sessions, and providing a list of Android activities to wait for on session startup.

General

  • Fix handling of statuses from proxied drivers (Chrome, Selendroid, etc.).
  • Fix intermittent bug where creating a directory might crash the server.

iOS

  • Add support for WKWebView-based webviews.
  • Add support for automating the built-in Calandar app.
  • Fix bug where scrolling in Safari would crash.
  • Fix handling of Safari in “new window” state.
  • Fix handling of arguments for keys method so that clients that send an array do not fail.
  • Clean up handling of ipa files for real device tests.
  • Make sure processArguments parsing works.

Android

  • Add nativeWebScreenshot capability, to use adb screenshots instead of ChromeDriver if necessary.
  • Add support to auto-select device based on platformVersion rather than using first available device.
  • Allow appWaitActivity to be a list of activities.
  • Fix setting wifi and data state.
  • Implement initAutoWebView capability.
  • Report appPackage, appActivity, and deviceUDID when requesting session details, so tests have more information about running state.
  • Make sure unlock app is closed at the end of a session so that the device works again.
  • Fix handling of unlock to make less flakey.
  • Make sure unicode encoding works correctly when strings are long.
  • Fix handling of disableAndroidWatchers capability.
  • Fix bug where early ChromeDriver failure crashed Appium.

Sauce Labs Named a Contender Among Mobile Test Automation Tools

April 28th, 2016 by Bill McGee

We are happy to announce a new industry citation for Sauce Labs: our inclusion in “The Forrester Wave™: Mobile Front-End Test Automation Tools, Q2, 2016.” The Wave is an influential report by leading research firm Forrester Research, and Sauce Labs was one of 10 companies selected for inclusion.

This Wave is based on an evaluation of 40 criteria across 10 vendors that considers how each provider measures up to help application development and delivery. Sauce Labs was among vendors cited as a “Contender” in the report. On describing Sauce, the report states:

Sauce Labs is the open source champion, offering comprehensive target app types … Sauce Labs successfully embraces the bring-your-own-tools (BYOT) and pick-your-favorite-language approaches to mobile app testing, which should make most developers happy. Focusing on automation and CI, it offers a robust, cloud-only testing solution that includes virtual machines for testing web and mobile applications as well as real devices. It satisfies security-conscious environments through a secure connection back into the data center using Sauce Connect.

More than anything, we are beyond excited that our Real Device Cloud (RDC) was included in such a significant report. Especially as we know Forrester went through an exhaustive evaluation of Sauce Labs that looked at factors including product fit, customer success, and Forrester client demand.

We believe this report provides Sauce Labs with huge visibility to potential new users, as many North America Fortune 1000 companies are Forrester clients. We are excited to be a part of the growing Mobile testing market, we are encouraged by the recognition of our strategy and roadmap, and we are thrilled with the momentum the Sauce Labs Real Device Cloud has gained in a short amount of time.

Want to learn more about automated mobile testing? Download our free report, “Automated Mobile Testing Requires Both Real Devices and Emulators“. 

The Importance of Mobile Testing

November 12th, 2015 by Greg Sypolt

It is a digital world, and all Generations have embraced the mobile revolution. It’s no surprise that millennials are leading the way. I saw a statistic recently that 85% of Millennials owns a smartphone. Next time you are waiting in line, take a look around.  Statistics don’t lie.

Source: http://www.statista.com/chart/3760/mobile-etiquette/

Source: http://www.statista.com/chart/3760/mobile-etiquette/

The mobile revolution has only just begun. The importance of having a mobile testing strategy is critical to our app releases.

What makes a great mobile app?

There are multiple elements that can influence a great (or bad) mobile app. The team works so hard developing an app (from idea, planning, writing code, and testing), the last thing you want to hear is negative feedback instantly after releasing the app. As long as the focus is on simplicity, understanding your users (audience), and the performance of your app, you are heading in the right direction. (more…)

Assessing Risk for a QA Mobile Project

October 22nd, 2015 by Joe Nolan

My niece and her kids were visiting from out of town last week. Somehow I ended up in charge of the two boys, six and eight years old. It all started nice and quiet, everyone playing on their devices. Next thing I know they are wrestling. Heads are just missing table corners and I’m freaking out! Don’t they know the risks?

As a lead on a QA team developing mobile apps, I am constantly evaluating risk. What is the risk to the schedule? To the end users? While nobody (hopefully) will be bloodied like two boys playing, risks need to be accounted for.

Identify the Risks

Risks are evaluated differently by different people, and one person cannot identify all of the risks. So, how does risk identification happen? (more…)

iOS 9.1 Beta Support and Speed Improvements

October 16th, 2015 by Ken Drachnik

With a number of reported problems on iOS 9.01 and 9.02, Apple is in beta with a 9.1 version that is supposed to fix issues and become the stable release.  We have iOS 9.1 beta ready now, so you can start testing and be ready for the general release predicted for late October or November.  Check out all our browser / OS combinations at our platform configurator.

At Sauce we are constantly improving our service by making it easier to integrate with CI systems, upgrading our UI and, lately, improving reliability and speed.   We’ve just finished part one of a project to speed up the generation of VMs so you can test even faster.  Our Windows VMs are now faster than ever, so check ’em out.

Advanced Locator Strategies

September 28th, 2015 by Isaac Murchie

Appium is built to implement the Selenium WebDriver JSON Wire Protocol specification, extended to enable the automation of mobile devices. By and large, the extensions to the WebDriver spec are encoded within the draft Mobile JSON Wire Protocol spec.

In order to find elements in a mobile environment, Appium implements a number of locator strategies that are specific to, or adaptations for, the particulars of a mobile device. Three are available for both Android and iOS:

class name

The class name strategy is a string representing a UI element on the current view.

  • For iOS it is the full name of a UIAutomation class, and will begin with UIA-, such as UIATextField for a text field. A full reference can be found here.
  • For Android it is the fully qualified name of a UI Automator class, such android.widget.EditText for a text field. A full reference can be found here.

The client libraries for Appium support getting a single element, or multiple elements, based on the class name. This functionality is in the Selenium clients (e.g., Python).

[code language=”python”]
# python
driver.find_element_by_class_name(‘android.widget.DatePicker’)
[/code]

(more…)

Automated Mobile Testing with Real Devices

September 8th, 2015 by Ken Drachnik

Mobile testing has long been a manual process – limited by the devices you have close at hand or at best, a painfully slow process in the cloud.  Sauce has long had emulators and simulators to let you speed your tests by automating them in the cloud. Sometimes, however, emulators are not enough and you need to test on real devices.  We are happy to announce the public beta of our Real Device Cloud. That’s right, we’ve put hundreds of Android and iOS devices up in our cloud so you can automate your tests across emulators and real devices with massive parallelism. That means you can now test fast – just break your tests up into manageable bits and run them in parallel. There’s no waiting, there’s no reservation system – they are available and ready to test whenever you are.

We anticipate opening The Real Device Cloud by the end of the month so you can start testing all your mobile apps.  Download the datasheet.

The Real Device Cloud

  • Instant Availability – Get access to the most popular* iOS or Android devices with no waiting
  • Over 80 mobile emulators and simulators
  • Massive Concurrency – Run your tests in parallel to reduce your total test time
  • Integrate with your CI tool of choice – automate all your tests using the top CI tools like Jenkins, Bamboo, Travis, Team City or Circle CI
  • Test Native, Mobile Web and Hybrid apps
  • Access back end databases – that’s right, you can test your app in our cloud and have secure access to your backend data and websites for a true end-to-end test.
  • Full reporting – instant access to videos, screenshots and all the data for your tests so you can analyse your results quickly
  • Enterprise features – account and team management lets you provision test resources as needed and SSO integration means you don’t have to go to IT to add another tester to your account
  • Professional Services and Training – we have people and partners to help you get started with Appium or if you’re already proficient, our experts can help your team become super users

* The Real Device Cloud will open with Apple iPhone 6 and Samsung Galaxy S4 and S5 phones.  We will be adding more device types in the near future.

Appium + Sauce Labs Bootcamp: Chapter 4, Advanced Desired Capabilities

August 18th, 2015 by Jonathan Lipps

This is the fourth in a series of posts that discuss using Appium with Sauce Labs. Chapter 1 covered Language Bindings; Chapter 2 discusses Touch Actions; Chapter 3 reviews Testing Hybrid Apps & Mobile Web; and this installment is about Advanced Desired Capabilities.

Appium, by and large, supports the desired capabilities you’re familiar with from Selenium. However, given that it also exposes mobile-specific functionality, we have some mobile-specific desired capabilities. We even have capabilities that are specific to one mobile platform: iOS or Android. For the full list of capabilities Appium supports, please see the capabilities doc.

Environment-specifying Capabilities

The main differences you’ll recognize will have to do with selecting which type of mobile environment you want to automate. Appium has adopted the “Selenium 4″ style of session capabilities, which means that, instead of capabilities like this, for example:

[code language=”javascript”]
{
browserName: ‘safari’,
version: ‘6.0’
}
[/code]

You would specify the following, for Mobile Safari on iOS 7.1:

[code language=”javascript”]
{
platformName: ‘iOS’,
platformVersion: ‘7.1’,
deviceName: ‘iPhone Simulator’,
browserName: ‘safari’
}
[/code]

The new capabilities platformName, platformVersion, and deviceName are _required_ for every session. Valid platforms are iOS and Android.

To automate a native or hybrid app instead of a mobile browser, you omit the browserName capability and include the app capability, which is a fully-resolved local path or URL to your application (.app, .ipa, or .apk). For example:

[code language=”javascript”]
{
platformName: ‘Android’,
platformVersion: ‘5.0’,
deviceName: ‘Android Emulator’,
app: ‘/path/to/my/android_app.apk’
}
[/code]

Sometimes we might want to run an Android test on an older device, and so we need to use Appium’s built-in Selendroid support for older devices. To specify that you want to use the Selendroid backend, keep everything else the same, but specify the automationName capability, as follows:

[code language=”javascript”]
{
automationName: ‘Selendroid’,
platformName: ‘Android’,
platformVersion: ‘5.0’,
deviceName: ‘Android Emulator’,
app: ‘/path/to/my/android_app.apk’
}
[/code]

And of course, if you’re running any tests on Sauce Labs, make sure to specify the version of Appium you’d like to use with the appiumVersion capability:

[code language=”javascript”]
{
platformName: ‘Android’,
platformVersion: ‘5.0’,
deviceName: ‘Android Emulator’,
browserName: ‘Browser’,
appiumVersion: ‘1.3.4’
}
[/code]

(more…)

[Webinar] Managing Continuous Delivery of Mobile Apps – for the Enterprise

July 23rd, 2015 by Bill McGee

Today, almost all organizations have mobile apps and for some, the mobile app is their only way of interacting with customers. With this increasing emphasis on mobile, the pressure to routinely update mobile apps means embracing Continuous Integration (CI) and Continuous Delivery (CD) methodologies.

Enabling CI / CD in your mobile development process means understanding the different solutions, overcoming unique challenges and ensuring the right ownership of the processes. In this webinar, join Harshal Vora from InfoStretch and Abhijit Pendyal from Sauce Labs to learn the steps required to enable Continuous Delivery of Mobile Application Platforms.

This webinar will cover:

  • Value of CI/CD in Mobile Development
  • CI/CD Architecture for Mobile Application Platforms
  • CI/CD Case Study – Requirements, Challenges and End Results
  • Demo – Jenkins / Code Update / Build Mobile App / Run automated tests using Sauce Labs

Join us for this presentation next Wednesday, July 29 at 11am PDT/2pm EDT. There will be a Q&A with Harshal and Abhijit afterwards.

Click HERE to register today.

Want to learn more about making Continuous Integration (CI) a part of your mobile development process? Download this free white paper, “Why Continuous Integration Should be Part of Your Mobile Development Process“.

Recap: Best Practices in Mobile CI [Webinar]

April 29th, 2015 by Bill McGee

Thanks to those of you who joined us for our last webinar, Best Practices in Mobile Continuous Integration, with Kevin Rohling. The webinar covered topics like:

  • What makes mobile CI so different
  • Best ways to use emulators and simulators in testing
  • Suggestions for CI tools and mobile testing frameworks

Missed the presentation, want to hear it again, or share with a colleague?

Listen to the recording HERE and view the slides below.

(more…)