Getting Started with Appium 2.0 Beta

This article was written by Srinivasan Sekar and Sai Krishna.

======================================

Appium released its first major version almost 7 years ago. Since then, Appium has rolled out a lot of new features and its automation backend architecture has evolved quite a lot.

Appium 2.0, the next major release, has been in talks for a couple of years now, as Jonathan Lipps and the team have been brainstorming and implementing new features.

Installing Appium 2.0 Server

Appium team has released 2.0.0-beta.10 recently with the official Appium image plugin and some minor bug fixes and improvements over its earlier beta versions. Appium 2.0 beta versions can be installed using the below command:

Appium server can take up several optional arguments. In addition to the server arguments, Appium 2.0 introduces new arguments:

  • -ah to specify a directory to install Appium drivers
  • -ka or –keep-alive-timeout to specify the number of seconds the Appium server should apply as both the keep-alive timeout and the connection timeout for all requests. Defaults to 600 seconds.

Decoupled Drivers

Appium drivers (UIAutomator2 driver, XCUITest driver, Espresso Driver, etc) are tightly coupled with Appium Server but from Appium 2.0 these drivers are separated from Appium Server and can be installed separately based on users’ needs. Creating custom drivers for any new platform or special use cases are going to be easy from Appium 2.0.

For example, in the future, we might have an Appium Wear driver to automate WearOS Apps or an Appium KaiOS driver to automate smart feature apps in kaiOS.

To list all the available drivers in appium, enter the following command:

To install a driver for say uiautomator2 driver, Appium now has subcommands to install, update, etc

To view the list of installed appium drivers, type the following command:

There are many other options offered by the Drivers CLI to install drivers from a specific source, update all the installed drivers, etc. This simplifies the overall installation process and users have the flexibility to choose to upgrade drivers without updating the server itself.

Plugins

Appium plugins will be here to help with the various use cases that require a change to Appium’s default behavior. These changes provide users an opportunity to build new plugins in the future, for example, Jonathan Lipps is currently working on a driver for Roku smart TV!

The Appium team continues to maintain some plugins which can be found here.

Plugins help add arbitrary functionality before or after actual Appium commands. Also, the plugin can modify the Appium Server itself to introduce new commands and distribute them. For example, the current “image” plugin from Appium helps find an element by an image and also helps in image comparison too.

To list all available Appium Plugins:

To install an Appium plugin, use this command and replace “images” with the name of the plugin you’d like to install:

To activate a plugin when starting the Appium server, use the following command (replace “images” with the name of the plugin you’d like to activate):

No code changes are required at this time in the client script to execute using the latest Appium server.

Other Breaking Changes

The minimum node version required for the Appium server to run is node 12.

Summary

A lot of new plugins are expected to come soon. The ability to easily create new drivers and plugins in Appium 2.0 will help solve many interesting use cases and problems that were hard to solve before. Watch this space as we share more details related to the same as it happens.

Credits to Jonathan Lipps, Mykola Mokhnach, kazucocoa, and other contributors for their wonderful contributions to the Appium community.

Originally published at https://applitools.com on February 9, 2021.

Deliver visually perfect web and mobile apps with AI-powered end-to-end visual testing & monitoring. Get started, free: http://bit.ly/ApplitoolsFree