Executing Your Local Appium Code
Overview
Appium is an open-source tool for automating mobile web, native, and hybrid applications on Android mobile, iOS mobile, and Windows desktops.
Appium is “cross-platform,” which means you can write tests for multiple platforms (iOS, Android, and Windows) using the same API. This allows for code reuse across iOS, Android, and Windows test suites.
With TestGrid, you can easily set up and test your mobile apps using your local Appium code for quicker results.
Prerequisites
- TestGrid login credentials.
- Java Development Environment Set Up.
- There are client libraries in Java that support Appium’s WebDriver protocol extensions. You should use these client libraries instead of your regular WebDriver client when using Appium.
Steps to execute local Appium code
#01 Obtain Run URL and Device capabilities from TestGrid-Device Cloud.
//Obtain Run URL from Link Provided for Organization static String TG_DEVICE_URL="https://demo.testgrid.devicecloud/wd/hub"; //Obtain Capabilities from Link Provided for Organization static String TG_DEVICE_NAME="Pixel 3"; static String TG_DEVICE_UDID="TGDC0001"; static String TG_DEVICE_PLATFORMNAME="Android"; static String TG_DEVICE_PLATFORMVERSION="10";
The following variables need to be changed as provided for organization & as per devices:
- TG_DEVICE_URL
- TG_DEVICE_NAME
- TG_DEVICE_UDID
- TG_DEVICE_PLATFORMNAME
- TG_DEVICE_PLATFORMVERSION
#02 Set TestGrid URL and Device capabilities in local Java code.
//Set Package Name & Activity - For App You want to automate static String APP_PACKAGE="com.android.calculator2"; static String APP_ACTIVITY="com.android.calculator2.Calculator"; public static void main(String[] args) throws MalformedURLException, InterruptedException { DesiredCapabilities cap = new DesiredCapabilities(); cap.setCapability("deviceName",TG_DEVICE_NAME ); cap.setCapability("udid", TG_DEVICE_UDID); cap.setCapability("platformName", TG_DEVICE_PLATFORMNAME); cap.setCapability("platformVersion",TG_DEVICE_PLATFORMVERSION); cap.setCapability("appPackage",APP_PACKAGE); cap.setCapability("appActivity", APP_ACTIVITY); URL url = new URL(TG_DEVICE_URL); AppiumDriver<MobileElement> driver = new AppiumDriver<MobileElement>(url,cap);
#03 Add your automation steps as required.
//Write Automation Steps MobileElement no7 = driver.findElement(By.id("com.android.calculator2:id/digit_7")); MobileElement no3 = driver.findElement(By.id("com.android.calculator2:id/digit_3")); MobileElement plusop = driver.findElement(By.id("com.android.calculator2:id/op_add")); MobileElement eqop = driver.findElement(By.id("com.android.calculator2:id/eq")); no7.click(); plusop.click(); no3.click(); eqop.click(); driver.quit();
#04 Execute your local Appium code.
#05 View live results on TestGrid Device cloud.
Additionally, Remote Execution of Code can also be viewed live on TestGrid Device Cloud.
Here is a snippet of the java class of sample Appium code demonstrating each step.
package test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileElement; public class MobileDemo{ //Obtain Run URL from Link Provided for Organization static String TG_DEVICE_URL="https://demo.testgrid.devicecloud/wd/hub"; //Obtain Capabilities from Link Provided for Organization static String TG_DEVICE_NAME="Pixel 3"; static String TG_DEVICE_UDID="TGDC0001"; static String TG_DEVICE_PLATFORMNAME="Android"; static String TG_DEVICE_PLATFORMVERSION="10"; //Set Package Name & Activity - For App You want to automate static String APP_PACKAGE="com.android.calculator2"; static String APP_ACTIVITY="com.android.calculator2.Calculator"; public static void main(String[] args) throws MalformedURLException, InterruptedException { DesiredCapabilities cap = new DesiredCapabilities(); cap.setCapability("deviceName",TG_DEVICE_NAME ); cap.setCapability("udid", TG_DEVICE_UDID); cap.setCapability("platformName", TG_DEVICE_PLATFORMNAME); cap.setCapability("platformVersion",TG_DEVICE_PLATFORMVERSION); cap.setCapability("appPackage",APP_PACKAGE); cap.setCapability("appActivity", APP_ACTIVITY); URL url = new URL(TG_DEVICE_URL); AppiumDriver<MobileElement> driver = new AppiumDriver<MobileElement>(url,cap); //Write Automation Steps MobileElement no7 = driver.findElement(By.id("com.android.calculator2:id/digit_7")); MobileElement no3 = driver.findElement(By.id("com.android.calculator2:id/digit_3")); MobileElement plusop = driver.findElement(By.id("com.android.calculator2:id/op_add")); MobileElement eqop = driver.findElement(By.id("com.android.calculator2:id/eq")); no7.click(); plusop.click(); no3.click(); eqop.click(); driver.quit(); } }
As simple as that! Happy Testing 🙂
Additional Links
You can also do these with the TestGrid Platform: TestGrid