-

   rss_rss_hh_new

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 51

:


[ ] Appium Essentials. 1

, 19 2017 . 17:54 +
! Appium. , Appium Essentials:

image

. . , .

, [ ]. , , . : , , - JAVA_HOME. .

, ( ).
, . !

1. .


Appium, JSON wire protocol, Appium, Desired capabilities Appium.




Appium


Appium HTTP-, Nodes, WebDriver-. Appium , Selenium WebDriver, HTTP- JSON , .

, Appium iOS Android.

Appium iOS


iOS-, Appium Apple's UIAutomation API, UI-. UIAutomation JavaScript-, Apple . Appium iOS-.

, :



HTTP- Appium- JSON. Appium- (UIAutomation). bootstrap.js, Appium- iOS-. , , bootstrap.js iOS-. , .

Appium-Android.



Appium Android


Android-, Appium UIAutomator, . UIAutomator , Android .

, :



UIAutomator/Selendroid Apple , bootstrap.js bootstrap.jar. Appium Android 17 . , Selendroid. , Appium UIAutomator Selendroid, Android. , bootstrap.jar TCP-, , . , Android- Selendroid UIAutomator.

Selenium JSON wire protocol


JSON wire protocol (JSONWP) , WebDriver. (endpoints), RESTful API. WebDriver JSONWP Firefox driver, IE driver, Chrome driver ..

Appium Mobile JSONWP Selenium JSONWP , / .

API, :

  • /session/:sessionId
  • /session/:sessionId/element
  • /session/:sessionId/elements
  • /session/:sessionId/element/:id/click
  • /session/:sessionId/source
  • /session/:sessionId/url
  • /session/:sessionId/timeouts/implicit_wait

Appium , WebDriver, REST API. , , :

AppiumDriver.getPageSource();

HTTP-, [, ? ] API. , , getPageSource, :

/session/:sessionId/source

, JSON- AppiumDriver , source . page source . -HTML ( ), Appium XML-, UI-. , .



Appium


, ; . , sessionId . . , sessionId, .



Desired capabilities


Desired capabilities [ ] JSON- ( -), . DC .

. , Appium-:
org.openqa.Selenium.remote.DesiredCapabilities [ Java], DC.
automationName , . Android SDK 17, Selendroid. , Appium. :

DesiredCapabilities caps = new DesiredCapabilities(); //  
caps.setCapability("automationName","Selendroid"); //  

, Appium. io.appium.java_client.remote.MobileCapabilityType:

caps.setCapability(MobileCapabilityType.AUTOMATION_NAME,"Selendroid");

iOS .
platformName . : iOS, Android FirefoxOS. :

caps.setCapability("platformName","Android");

Appium:

caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
platformVersion . :

caps.setCapability("platformVersion","4.4.4");

Appium:

caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4.4");
deviceName , iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Moto x, Nexus 5 . :

caps.setCapability("deviceName", "Nexus 5");

Appium:

caps.setCapability(MobileCapabilityType.DEVICE_NAME,"Nexus 5");
app URL .ipa, .apk, .zip. Appium . , Android appPackage appActivity ( ), app . :

caps.setCapability("app","/apps/demo/demo.apk or http://app.com/app.ipa");

Appium:

caps.setCapability(MobileCapabilityType.APP,"/apps/demo/demo.apk or http://app.com/app.ipa");
browserName - . . :

caps.setCapability("browserName", "Safari");

Appium:

caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari");
newCommandTimeout Appium , [ ], , . 60 []. :

caps.setCapability("newCommandTimeout", "30");

Appium:

caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT,"30");
autoLaunch . true. :

caps.setCapability("autoLaunch","false");
language . fr, es . :

caps.setCapability("language","fr");
locale . fr_CA, tr_TR . :

caps.setCapability("locale","fr_CA");
udid (unique device identifier) iOS-. 40 (, 1be204387fc072g1be204387fc072g4387fc072g). udid iOS-. Udid iTunes, Serial Number . :

caps.setCapability("udid", "1be204387fc072g1be204387fc072g4387fc072g");
orientation . : LANDSCAPE PORTRAIT. :

caps.setCapability("orientation", "PORTRAIT");
autoWebview Webview, ; false. :

caps.setCapability("autoWebview", "true");
noReset . : false. :

caps.setCapability("noReset", "true");
fullReset iOS: . Android: , , . , . false. :

caps.setCapability("fullReset", "true");

Android capabilities


appPackage , Java- . : com.android.calculator2 com.android.settings

caps.setCapability("appPackage", "com.android.calculator2");

Appium:

caps.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2");
appActivity , Activity . : MainActivity, .Settings, com.android.calculator2.Calculator

caps.setCapability("appActivity", "com.android.calculator2.Calculator");

Appium:

caps.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator");
appWaitActivity , Activity, , .

caps.setCapability("appWaitActivity","com.android.calculator2.Calculator");

Appium:

caps.setCapability(MobileCapabilityType.APP_WAIT_ACTIVITY,"com.android.calculator2.Calculator");
appWaitPackage , Android-, , .

caps.setCapability("appWaitPackage","com.example.android.myApp");
deviceReadyTimeout , ( ), . 5.

caps.setCapability("deviceReadyTimeout","10");

Appium:

caps.setCapability(MobileCapabilityType.DEVICE_READY_TIMEOUT,"10");
enablePerformanceLogging Chrome driver performance logging. Chrome WebView. false

caps.setCapability("enablePerformanceLogging", "true");
androidDeviceReadyTimeout , , .

caps.setCapability("androidDeviceReadyTimeout","20");

androidDeviceSocket DevTools socket name. Chromium-embedding browser. ChromeDriver DevTools client. , chrome_DevTools_remote

caps.setCapability("androidDeviceSocket","chrome_DevTools_remote");
avd avd [Android virtual device] .

caps.setCapability("avd","AVD_NEXUS_5");
avdLaunchTimeout avd. 120000.

caps.setCapability("avdLaunchTimeout","230000");
avdReadyTimeout , avd. 120000.

caps.setCapability("avdReadyTimeout","240000");
avdArgs avd [startup options].

caps.setCapability("avdArgs","netfast");
autoWebviewTimeout ( ), WebView context, , . 2000

caps.setCapability("autoWebviewTimeout","3000");
intentAction Intent action , activity. : android.intent.action.MAIN

caps.setCapability("intentAction","android.intent.action.VIEW");
intentCategory Intent activity. : android.intent.category.LAUNCHER

caps.setCapability("intentCategory","android.intent.category.APP_CONTACTS");
intentFlags , Activity. : 0x10200000

caps.setCapability("intentFlags","0x10200000");
intentFlags . : false

caps.setCapability("unicodeKeyboard","true");
resetKeyboard . : false

caps.setCapability("resetKeyboard","true");

iOS capabilities


calendarFormat iOS. :

caps.setCapability("calendarFormat"," Gregorian");
bundleId . :

caps.setCapability("bundleId"," io.appium.TestApp");
launchTimeout ( ) . , Appium , .

caps.setCapability("launchTimeout","30000");
locationServicesEnabled location Services

caps.setCapability("locationServicesEnabled","false");
locationServicesAuthorized . true, - location services. bundleId. : false

caps.setCapability("locationServicesAuthorized","true");

autoAcceptAlerts , , .. : false

caps.setCapability("autoAcceptAlerts","true");
nativeInstrumentsLib native instruments

caps.setCapability("nativeInstrumentsLib","true");
nativeWebTap Safari tap. : false. viewport's size/ratio

caps.setCapability("nativeWebTap","false");
safariAllowPopups . Safari JavaScript

caps.setCapability("safariAllowPopups","false");
safariIgnoreFraudWarning . Safari , .

caps.setCapability("safariIgnoreFraudWarning","false");
safariOpenLinksInBackground . Safari .

caps.setCapability("safariOpenLinksInBackground","true");
keepKeyChains . / .

caps.setCapability("safariOpenLinksInBackground","true");
processArguments instruments.

caps.setCapability("processArguments","myflag");
interKeyDelay .

caps.setCapability("interKeyDelay","100");



Appium server


Appium- (iOS Android). , . HTTP-, NodeJS , Selenium Server, HTTP- . Appium-, npm. Appium GUI- . http://appium.io. GUI- .

Appium , REST API. , API, , Java, C#, Ruby, Python . Appium WebDriver . , Appium WebDriver. - , Appium, WebDriver.

Appium , . .




, Appium, JSON wire protocol, desired capabilities . Appium- .

JSONWP Appium , . Appium , .

, , , Appium Appium
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331224/

:  

: [1] []
 

:
: 

: ( )

:

  URL