Automation for mobile apps Presenter: Nikita Mader

Slides:



Advertisements
Similar presentations
Cross Platform UI testing using Sikuli
Advertisements

Get android development environment running. Install – Get and install JDK 5 or 6 (see link in the.
The Android Development Environment.  Getting started on the Android Platform  Installing required libraries  Programming Android using the Eclipse.
Dominik Dary Romanian Testing Conference 2015
LOGO Tech propulsion Labs Android Webdriver Test automation - Selenium 2 Masud Parvez SQA Architect Tech Propulsion Labs
Setting up the Development Environment Copyright © SUPINFO. All rights reserved Preparation.
How to make it work? Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
SET UP COMPUTER ** PLEASE BE AWARE SCREENSHOTS MAY NOT MATCH **
Getting Started with Android Programming Note: if you have already installed android development tools, please check that you have the same version as.
By Ms.A.C.Sumathi AP(SG)/ Dept of CSE SNS College of Engineering, CBE.
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
Android Application Development 2013 PClassic Chris Murphy 1.
Android Introduction Platform Overview.
Using Selenium for Mobile Web Testing Powered by KendoUI Telerik QA Academy Atanas Georgiev Senior QA Engineer KendoUI Team.
Three-tier Mobile Application Testing Framework:
Google Maps Android API v2 吳俊興 國立高雄大學 資訊工程學系 CSF645 – Mobile Computing 行動計算
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Adobe Presentation Brijesh Patel | Working with AIR Native Extensions.
Introduction to Mobile Programming. Slide 2 Overview Fundamentally, it all works the same way You get the SDK for the device (Droid, Windows, Apple) You.
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Introduction to Android. Android as a system, is a java based operating system that runs on the Linux kernel. The system is very lightweight and full.
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
DUE Hello World on the Android Platform.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Presented By: Muhammad Tariq Software Engineer Android Training course.
JAVA Java is a programming language and computing platform first released by Sun Microsystems in It was first developed by James Gosling at Sun Microsystems,
 Installation of Android Development Environment  Creating the App with OpenGL ES API  Running the App on Emulator Android App Development.
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
Mohit Anand, Software Engineer Adobe 1 Selecting GUI Automation Testing Tool for Mobile Domain.
 Automating the process of writing the automation code using Allay Test Tool.  Allay Test Tool generates test files in executable/running form.  Dev/Testers.
Perfecto’s CQ Lab using Selenium RemoteWebDriver & Appium
Appium with Android Configuration.  Download Appium server:  Choose the latest version of appium.
Installation of Visual Studio Android emulator and Android Studio
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
SAFARI TEST AUTOMATION: NAVIGATING THROUGH THE JUNGLE BY KARAN KUMAR AND JAMES CHUONG.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
Build Hybrid Mobile Apps with Ionic, Angular, & Cordova Brian
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
Day 1 Session 2. Setup & Installation
COM594: Mobile Technology Practical – Week 1 Android and Android Studio.
Mobile Device Development
PhoneGap, Processing.
Beginning of Xamarin for iOS development
Appium Studio Appium testing made easy at any scale.
Android Mobile Application Development
React Native Crash Course
Becoming a Pro IN Mobile Applications Testing
Obtaining the Required Tools
Browsers and Web Platforms
Introduction of Selenium Webdriver Using Java
UI Test Automation with Appium
Development-Introduction
3 Things Everyone Knows About Node JS That You Don't
CMPE419 Mobile Application Development
Cross platform automated appium testing - A Primer
Appium Studio for Eclipse
Compile, Build, and Debug
Test Automation For Web-Based Applications
Cordova & Cordova Plugin Installation and Management
How to Improve Releasing Efficiency via i18N/L10n Test Automation.
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Korea Software HRD Center
ENIAC – the first computer
Android Development Introduction to Android Development 2011/01/16
CMPE419 Mobile Application Development
MOBILE PROGRAMMING Meriska Defriani, S.Komp, M.Kom Introduction
How to set UP an Appium automated framework to test mobile apps
Presentation transcript:

Automation for mobile apps Presenter: Nikita Mader

Tools we will learn and utilize today: Plan for the session: What is Appium and how does it work Environment installation (75% of all efforts) Hands on experience in mobile automation Tools we will learn and utilize today: Android SDK including Android AVD Android ADB UI Automator Viewer Appium ;)

There are multiple reasons: Selenium Webdriver is the standard for web automation. It is used daily by thousands of people. Last years Appium became one of the most popular tool for mobile automation. Why? There are multiple reasons: Test native, hybrid, web apps Cross-platform - Support Android and iOS Test mobile web (Safari for iOS and Chrome for Android) Does not require to recompile your app WebDriver API

So, what is Appium? Appium is an open source, cross platform tool for mobile automation. Appium ecosystem has a client-server architecture based on JSON wire protocol. Appium server is written on Node.js Basically, Appium is an HTTP server that creates and handles WebDriver sessions. Appium supports all Webdriver client libraries: Java, Python, Ruby, C#, Javascript

Features & Limitations: Implements Selenium Webdriver interfaces Provides common libraries for all platforms Extends Selenium WebDriver with additional functionality such as: driver.pinch(), driver.zoom(), driver.current_activity(), driver.lock() Limitations: Android version 4.2+ required Requires Mac OSX for iOS automation

Architectur

Environment setup: Download Appium server from http://appium.io/downloads.html Android SDK Copy to C:\android-sdk Install Intel HAXM if running on emulator from C:\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager Download Appium JAR from maven repository search.maven.org - g:io.appium a:java-client 4. Download Selenium JAR from seleniumhq.org

Environment setup: Environment variables Go to properties of computer -> Advanced system settings -> Environment variables -> and add “C:\android-sdk\tools;C:\android-sdk\platform-tools” to Path variable create new JAVA_HOME variable and provide path to JDK. Example: C:\Program Files\Java\jre7 create new ANDROID_HOME and provide path to SDK. Example: C:\android-sdk

Environment setup: Now lets verify we did everything correctly: Open command prompt(CP) (Win+r -> type CMD) If you are going to use emulator type in CP “android avd” and press enter If you are using your phone please turn on USB debugging in developer settings (7 taps) If you see AVD manager opened you are done, if not please check environment variables Create new AVD Check its status(or your Android phone connected) by typing “adb devices” in CP

Appium methods overview Lock the screen: driver.lockScreen(); Send the currently active app to the background: driver.runAppInBackground(); Hide the keyboard: driver.hideKeyboard(); Open the notification shade Android only: driver.openNotifications(); Check if an app is installed: driver.isAppInstalled("com.example.android.apis");

Appium methods overview Install an app to the device: driver.installApp("path/to/my.apk"); Remove an app from the device: driver.removeApp("com.example.android.apis"); Simulate the device shaking: driver.shake(); Close the app: driver.closeApp(); Send a key event to the device: driver.sendKeyEvent(AndroidKeyCode.HOME);

Appium methods overview TOUCHACTION / MULTITOUCHACTION: TouchAction action = new TouchAction(driver) .press(mapview, 10, 10) .release(). perform(); Pinch the screen: driver.pinch(element); Zoom the screen: driver.zoom(element); Pull a file from the device: driver.pullFile("Library/AddressBook/AddressBook.sqlitedb"); Send key code to the device(Android): driver.sendKeyEvent(AndroidKeyCode.HOME); or http://developer.android.com/reference/android/view/KeyEvent.html

Appium methods overview Scroll to an element: WebElement element = driver.findElement(By.name("Element Name")); HashMap<String, String> arguments = new HashMap<String, String>(); arguments.put("element", element.getId()); (JavascriptExecutor)driver.executeScript("mobile: scrollTo", arguments); Adjusting Network Connection: driver.setNetworkConnection(1); driver.getNetworkConnection(1) https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/network_connection.md

Lets move on to the hands on session! File appdir = new File("src"); File app = new File(appdir, "MyNetDiaryCalorieCounter.apk"); DesiredCapabilities cap = new DesiredCapabilities(); cap.setCapability( MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID ); cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator"); cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "100"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); …………… …… … .. .

https://github.com/appium/appium-dot-app Resources https://github.com/appium/appium-dot-app