Trending September 2023 # Selendroid Tutorial For Beginners With Example # Suggested October 2023 # Top 11 Popular | Lifecanntwaitvn.com

Trending September 2023 # Selendroid Tutorial For Beginners With Example # Suggested October 2023 # Top 11 Popular

You are reading the article Selendroid Tutorial For Beginners With Example updated in September 2023 on the website Lifecanntwaitvn.com. We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested October 2023 Selendroid Tutorial For Beginners With Example

Have you ever developed an Android application and publish it to Google Play? What will you do if you get a user review like –

When you publish an app to Google Play, it must be well tested to avoid the potential bugs. There’s a ton of test scenarios that should be executed before publishing an app. To save the Testing effort, you need a testing tool. One of the best testing tools for Android app is Selendroid.

What is Selendroid?

Selendroid is a test automation framework for multi-type of mobile application: native and hybrid Android app and mobile web.

You can write the tests using the Selenium 2 client APIs. Because Selendroid still reuses of the existing Selenium infrastructure for the web

Selendroid is a powerful testing tool. It can be used on emulators and real devices

Why do we need Selendroid?

Selendroid is a great testing tool. But you may still doubt its usefulness.

This section will introduce the important features of the Selendroid to answer the question why you need Selendroid.

You can test the application under test using Selendroid without any modification of the app. You just need the binary file ( APK ) installed on the computer. In order to install the binary file on the device, the test app and mobile app must be signed with same sign key

Selendroid can simulate human-user actions on an app, such as touch, swipe, drag and drop on devices

You can change the hardware devices (Plug and unplug) during the testing without restarting or stopping the test. Selendroid recognizes the new devices automatically

Corresponding to the Android API version up, Selendroid also supports the new Android API (From API 10 to API 19)

Selendroid also has some built-in inspector tool to help you identify the UI element of an application under test. For example the ID button, text field, text view…

Selendroid Architecture

Selendroid is based on the Android instrumentation framework. Selendroid tests are written base on the Selenium Web driver client API, so it supports full integration with current Selenium frameworks.

The following figure describes the architecture of Selendroid

Selendroid contains 4 major components:

Web Driver Client – The Java client library based on Selenium. This library should be installed on the computer (which is used to develop the test cases)

Selendroid-Server – The server which runs be in the app under test on Android device or simulator. This is the main components of a Selendroid architecture

Android Driver-App – A built-in Android driver, Web View app to test the mobile web.

Selendroid-Standalone – This component is used to install the Selendroid server and the application under test (AUT)

Getting started with Selendroid

You already have known the importance of the Selendroid. Now let’s get our hands dirty with Selendroid.

There’re 3 steps should be done before the first test with Selendroid

Setting up a Selendroid environment

Selendroid can work on Window, Linux and Mac OS. In this tutorial, we will setup Selendroid in Window OS.

Before using Selendroid, you need install following package first

Java SDK (minimum 1.6)

You must accept the license agreement and download the java installer (Choose x64 or x86 base on your OS)

Download and install the Java SDK as normal software

Latest version of Android SDK

Your computer must have at least one Android Virtual Device (AVD), or a real Android device plugged into the PC.

Selendroid Standalone with dependencies, Selendroid Client, and Selenium Client

Eclipse software

Set up the JAVA_HOME and ANDROID_HOME

The variable value is the path to android-sdks which you already installed.

Similar to ANDROID_HOME, add new variable JAVA_HOME with value as below

The value is the Path to your Java JDK installation

How to launch Selendroid

Step 1) Getting an application under test

You can use existing Selendroid test app to check that how Selendroid works (Link to sample application under test)

Once a download is complete, copy this APK and the above Selendroid Standalone jar file to a folder with the name “Guru99″

Step 2) Launch the Selendroid

Open the terminal on Windows & navigate to the folder Guru99 created in step 1.

Run the following command

The output will display as following

After running this command, Selendroid-standalone HTTP server starts! The default port number of this server is 4444. All hardware device, as well as Android Virtual Device, will be scanned and recognized automatically. Selendroid will identify the Android target version and device screen size.

Selendroid basic command

This section introduces you some basic Selendroid-Standalone command line. You may use them to set up the Selendroid testing environment

Setting port of Selendroid

The default port of Selendroid is 4444. But you can change to other port by adding a parameter to the command to launch Selendroid

Parameter: -port [port number]

For example:

In above command, 5555 is the new port.

Specify the location of the application under test (Binary APK file). Selendroid often required the absolute path for this file

Parameter: -app [file path]

For example:

In above command, the Selendroid automatically find the binary file base on the “C:Guru99App.apk” to get the information of the application under test.

Change the port the Selendroid uses to communicate with instrumentation server. Selendroid uses the port 8080 as the default

Parameter: -selendroidServerPort [port number]

Example

The port now is changed to 9000

Change the timeout to start emulators. The unit is milliseconds.

Parameter: -timeoutEmulatorStart

By default, Selendroid will wait 300,000 milliseconds until the emulator starts. You can change to new timeout (200,000 ms) by command

After this time our expired, if the emulator cannot start, the Selendroid will throw the exception error (Error occurred while looking for devices/emulators.) then stop running

When you start the Selendroid command on terminal, you will see a log printed out on the screen. You can change the type of log you see by adding the following parameter

Parameter: -logLevel [type of log]

The log level values are ERROR, WARNING, INFO, DEBUG, and VERBOSE. Default: ERROR.

For example, set Selendroid to print the WARNING log only, you can use this command

The Selendroid only print the WARNING log

Start your first test with Selendroid

This section is a step by step guide to creating your first test script using Selendroid

Suppose we have an Android application under test name Guru99App. The application includes a text field and a button name “Show Text”.

DOWNLOAD THE APK HERE

We need to execute following Test Case using Selendroid

Test Cases Condition Expected output

Launch the application

Enter a text “Guru99 Test” to the text field

Press “Show Text” button

The binary of the application under test is available

A device is connected to PC

The text “Text Show here” is changed to the text

which user enter in a text field

Step 1) Create a Java project in Eclipse

Step 2) Add selenium and Selendroid jar file in eclipse environments

Navigate to the folder which stored the jar files

There’re 3 jar files should be added

selendroid-client-0.10.0.jar : Selendroid java client library

selendroid-standalone-0.11.0-with-dependencies : Selendroid standalone server library

selenium-java-2.40.0.jar : Selenium Web Driver library

Step 3) after adding the above library, those libraries will be added to the Reference Libraries of the test project. A tester can use the APIs of those libraries to develop the test program

Create package “com.guru.test” and add java file “Guru99Test.java” like below

Type chúng tôi to the Name field on New Java Package dialog à Finish

The Eclipse will create list folders and subfolders like this in the source code structure

Step 4) Install TestNG for Eclipse

Step 5) Copy the chúng tôi to the folder of Test App

Step 6) Get the ID of an application under test.

Suppose we have an APK file name chúng tôi Follow the step which is described in previous section, execute the command on terminal

The information of the device is displayed, copy the appId value “com.guru99app:1.0”

Step 7) Open the file chúng tôi (in the sample code) and change as following

To create a new test session with Selendroid, you have to provide the app id in the format: com.guru99app:1.0. This app Id can is identified in step 6. If you don’t set the app Id matching the Android device, the test session will throw an error and will not start.

After initializing the found device, Selendroid creates a customized selendroid-server and installs the Selendroid server on it

Selendroid also installs the application under test and starts the selendroid-server on device

After initializing the test session successfully, the test command is started executing on a device. (Such as entering text, press button…). If the test appends the test session, the emulator will stop automatically

Step 8) Start the new test session

Launch the Selendroid server using the following command on terminal like step 6

A test session will start like below

Step 9) Get the Id of GUI element of an application under test

You will see the Application Under Test is launched like below

Use mouse hover to each UI element of AUT (Button, TextField, Text Label), the ID of each element will highlight on the right pane

After this step, you can get the ID of each above UI element

Button Show Text ID: “btnShow“

Text Field ID: “edtText“

Label Text ID: “txtView“

Those IDs will be used in next step

Step 10) Enter the test program like below

A test program using Selendroid includes 3 sections

Setup Test:

Following is the code for setup test, it will set up the condition for a test chúng tôi case of an error, the Selendroid will throw the exception and the test app will stop.

package com.guru.test; import io.selendroid.SelendroidCapabilities; import io.selendroid.SelendroidConfiguration; import io.selendroid.SelendroidDriver; import io.selendroid.SelendroidLauncher; import io.selendroid.device.DeviceTargetPlatform; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.Assert; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; /** * @author Guru99 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp("Guru99App.apk"); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); SelendroidCapabilities capa = new SelendroidCapabilities(); capa.setAut("com.guru99app:1.0"); capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); capa.setEmulator(false); driver = new SelendroidDriver(capa); }

Execute Test

Here are the test steps again

Enter the text “Hello Guru”

Wait a while

Verify that the app displays the text as user enter to a text field (Ex. Display the text “Hello Guru”)

/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { System.out.print("Start executing test"); WebElement inputField = driver.findElement(By.id("edtText")); Assert.assertEquals("true", inputField.getAttribute("enabled")); inputField.sendKeys("Hello Guru"); WebElement button = driver.findElement(By.id("btnShow")); Thread.sleep(5000); WebElement txtView = driver.findElement(By.id("txtView")); String expected = txtView.getText(); Assert.assertEquals(expected, inputField.getText()); }

Finish Test

The following code will complete the test by stopping the Selendroid driver.

/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }

You can see the detail in sample code included in this article.

Step 10) Connect Android device to the PC via USB cable. Points to observe –

Please make sure the device has no screen lock configured.

Devices must be plugged in via USB to the computer that the selendroid-standalone component is running on.

The device should install at least Android Target Version API 10

Step 10) The Script start executed as following

Step 12) After test finishes execution, TestNG auto generates the test report as following

Good Job, you are done the test now.

Summary

Summary

Selendroid is a very powerful tool for testing Android native app, the hybrid app as well as the web app.

It can be used on real devices as well as the simulator.

It also allows you to run tests in parallel by running a test on multi devices.

The entire Selendroid suite is comprised of four components:

Web Driver client,

Selendroid-Server,

Android Driver App

Selendroid-stand alone

To use Selendroid you need Java JDK, Android SDK and Eclipse installed.

You're reading Selendroid Tutorial For Beginners With Example

Update the detailed information about Selendroid Tutorial For Beginners With Example on the Lifecanntwaitvn.com website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!