What is APPIUM?
It is a widely used tool for Mobile Testing.
Appium is mobile web,native and hybrid software application test automation tool developed and suppoorted by sauce lab
It is open-source software automation tool which is useful to automate android and IOS platform apps.
Why we need Mobile?
Importance of Moblie:-
I want to pay my electricity bill.
I need to communicate with my manager and submit my reports urgently.
If you want to buy grocerys, clothes, book all tickets can do with mobile.
Now answer yourself. What do you need to perform these activities in a fraction of seconds
with ->A smartphone,
->Internet connectivity
->A mobile app to do the job.
Various Mobile OS(operating system)
Operating system Developed by Popularity
Android Google Inc High
IOS Apple Inc High
BlackBerry BlackBerry Ltd Low
windows Microsoft Inc Medium
Types of Moblie Apps
Mobile web Apple:
-Web apps not real applications: they are actually websites that open in your smartphone
with the help of a web browser. Mobile websites have the broadest audience of all the primary types of applications.
Native App
- A native app is developed specifically for one platform. It can be installed through an application store (such as Google play store or Apple's App Store).
Example- Whatsapp, Facebook, This app can use all the system application's(the apps which comes by default with your mobile)
Hybrid App
hybrid Apps are a way to expose content from existing websites in App format. They can be well described as a mixture of Web App and Native App
what is Appium?
Appium is mobile web,native and hybrid software application test automation tool developed and suppoorted by sauce lab
It is open-source software automation tool which is useful to automate android and IOS platform apps.
why Appium(Advantages)?
Cross platform:Android&ios:we can test native,hybrid,web app
Allows you to communicate with other apps,Ex:Whatsapp(Majority of tools doesn't support this)
No pre-compilation of your app
support for built-in app:alarm,phone,calendar etc
Any WebDriver compatible language is supported:Java,objective,C,Ruby,php,C#,:we just need language specific libraries to work on
Limitation of Appium:
For Android,No Support for Android API <17(for android v>4.1) if you mobile having less than 17 then we need to go for selendroid.
Script Execution is very slow on ios platform & android virtual devices
No support for Toast messages; we can handle this
no parallel execution directly:we can handle using sauce labs
APK:Android Application package.
IPA:Iphone Application package.
This is similar to .exe file which are used to install programs on windows.
The only difference is .apk file are designed to be used exclusivley on Android devices
and you may be required to download addtional files before you run the appliacation
in the android.
Why we are using them what is the use?
we are going to test mobile appliacation means once after the application
was developed in android it will be apk file only.So to automate
we need apk file, generally in real time we can get this apk file from
the developer and for generic application we can download from playstor too.
What is Real Testing Device?
Testing on real device allows you to run your mobile apllication
and checks its functionality.Real device Testing assures you that our appliacation
will work smoothly in customer handsets
What is Emulator and simulator?
Emulator and Simulator are virtual devices.A virtual is not the real
phone but software which gives same functionality as the real phone (Except few functionality like the camers
Android virtual devices :Emulator.
IOS virtual device: Simulator.
How Appium work?
- When we install the Appium, a server is also installed with it on our machine that exposes the REST API.
- It receives command and connection requests from the client and executes that command on devices like iOS or Android.
- It replies with the HTTP responses.
- To execute requests, it uses a mobile test automation framework to run the user interface of the app. For Example -
- Apple instruments used for iOS
- Selendroid used for Android API 15 or less
- UIAutomator used for Android API 16 or higher
What are the locators in appium?
Id, Name, ClassName, XPath, AndroidUIAutomator, AccessibilityId.
Status:
Retrieve the server’s current status:
driver.getStatus();
IOSDriver driver = new IOSDriver(url, dc);
ANDROID:
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UIAutomator2");
dc.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
dc.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.0");
dc.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
URL url = new URL("http://localhost:4723/wd/hub");
AndroidDriver<WebElement> driver = new AndroidDriver<WebElement>(url, dc);
End Session:
End running session:
driver.quit()
Get session capabilities:
Retrieve the capabilities of the specified session
Map<String, Object> caps = driver.getSessionDetails();
Take ScreenShot:
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
Get PageSource:
Get the current application hierarchy XML (app) or page source (web)
Configure the amount of time that a particular type of operation can execute for before they are aborted
Set the amount of time the driver should wait when searching for elements
Set the amount of time, in milliseconds, that asynchronous scripts executed by execute async are permitted to run before they are aborted (Web context only)
Get the current device/browser orientation
Set the current device/browser orientation
driver.rotate(ScreenOrientation.LANDSCAPE);
driver.rotate(ScreenOrientation.PORTRAIT);
Get the current geo location
Set the current geo location
driver.setLocation(new Location(49, 123, 10)); // Must be a driver that implements LocationContext
Get available log types as a list of strings
Set<String> logTypes = driver.manage().logs().getAvailableLogTypes();
Get the log for a given log type. Log buffer is reset after each request
Store a custom event
Get events stored in appium server
driver.getEvents();
Update the current setting on the device
driver.setSetting(Setting.WAIT_FOR_IDLE_TIMEOUT, 5000);
Run a WebdriverIO script against the current session, allowing execution of many commands in one Appium request.
String script = "const el = await driver.$('~foo');\n" + "await el.click();"
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.