Этот учебник поможет вам понять инструмент автоматизации APPIUM. Он будет охватывать желаемые возможности и APPIUM с использованием Maven.
В этом уроке вы узнаете
Что такое желаемые возможности
«Желаемые возможности» помогают нам изменять поведение сервера во время автоматизации. В Appium это тип хэш-карты или пары ключ-значение, используемый для отправки команды на сервер APPIUM. В APPIUM все клиентские команды выполняются в контексте сеанса.
Например, клиент отправил запрос POST / сеанса, содержащий объект JSON, на сервер APPIUM.
Следовательно, для отправки любого желаемого запроса или для поддержания любого желаемого сеанса с сервером используется набор пары ключ и значение. Это известно как «Желаемые возможности».
import io.appium.java_client.AppiumDriver; import org.openqa.selenium.remote.DesiredCapabilities; { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName","Android Emulator"); capabilities.setCapability("platformVersion", "4.4"); }
Важная роль желаемой способности
- «DesiredCapabilities» помогают пользователю управлять запросом сеанса на сервере. Например, если мы хотим сеанс iOS, мы можем установить Capability как PlatformName = iOS. Или, если мы хотим сеанс Android, мы можем установить Capability как PlatformName = Android.
- DesiredCapabilities используются для настройки экземпляра Webdriver, например: FirefoxDriver, ChromeDriver, InternetExplorerDriver и т. Д.
- DesiredCapability очень полезно для Selenium Grid. Например: он используется для доступа к разным тестам в другом браузере и другой операционной системе. На основе упомянутой сетки DesiredCapability, концентратор будет указывать на соответствующий узел. Здесь эти узлы определяются с помощью метода свойств set, например:
DesiredCapabilities obj = new DesiredCapabilities(); obj.setBrowserName("firefox"); obj.setVersion("18.0.1"); obj.setPlatform(org.openqa.selenium.Platform.WINDOWS);
- A desired capability is a library defined package. Prior to use ‘DesiredCapabilities’,it should be imported from below mentioned library
Org.openqa.selenium.remote.DesiredCapabilities
APPIUM supports both Android and iOS. Therefore there are a separate set of Appium server capabilities.
Below table depicts some commonly used Android capabilities and its value to use-
Capabilities | Description | Values/Uses |
---|---|---|
appPackage | Call desired Java package in android that user want to run | Value= com.example.myapp/
Obj.setCapability(«appPackage», «com.whatsapp»); |
appActivity | Application Activity that user wants to launch from the package. | Value= MainActivity, .Settings
Obj.setCapability(«appActivity», «com.whatsapp.Main»); |
appWaitPackage | Package from which application needs to wait for | Value=com.example.android.myapp |
appWaitActivity | Any Android activity that user need wait time | Value= SplashActivity
capabilities.setCapability(«appWaitActivity», «com.example.game.SplashActivity») |
NOTE— Refer this link ‘https://appium.io/docs/en/writing-running-appium/caps/#android-only‘ to view more Android Capabilities
Below table depicts some commonly used iOS capabilities and its value to use-
Capabilities | Description | Values |
---|---|---|
LaunchTimeout | Total time (in ms) to wait for instrumentation. | 2000 |
UDID | To identify unique device number for connected physical device | 166aestu4 |
NOTE- Refer this link ‘http://appium.io/slate/en/master/?java#ios-only ‘ to view more iOS Capabilities
Extracting Packages & Activities information
Packages are related to bundled files or classes. It gives an organized structure to modular programming. In Java, different packages are stored in a single Jar file. The user can easily call the jar file for full execution. Similar concepts followed in Mobile application development world.
In Android operating system, all applications are installed in the form of JAVA packages. Hence, to extract packages path information, Android PackageManager class is used.
It retrieves package and activity information of pre and post installed application. It is installed in Android devices.
Вы можете получить экземпляр класса PackageManager, вызвав getPackageManager ().
Этот метод может обращаться к пакетам и соответствующим разрешениям установленных приложений и манипулировать ими.
Например —
PackageManager pManager = getPackageManager(); List<ApplicationInfo> list = pManager.getInstalledApplications(PackageManager.GET_META_DATA)
Резюме:
- Требуемая возможность всегда выполняется на паре ключ-значение для отправки команды на сервер APPIUM.
- Используйте класс PackageManager для извлечения информации о приложении в Android.