Какой capabilities я должен задатьа в appium чтобы протестировать native app?

Я использую python для своих тестов на appium. Я могу протестировать browser но с нативными приложениями, что то плохо. Это мой тест для браузера:

import unittest
from appium import webdriver

class SimpleTest(unittest.TestCase):

    def setUp(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['deviceName'] = 'f3eb943d'
        desired_caps['browserName'] = 'Chrome'

        self.driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)

    def tearDown(self):
        self.driver.quit()

    def testOpenPage(self):
        self.driver.get('https://en.wikipedia.org')
        text = self.driver.find_element_by_xpath('//div/h2').text
        self.assertEquals(text, "Today's featured article")


if __name__ == '__main__':
    unittest.main()

Но вот с нативнм придложением я не магу понять что я ему должен прописать в capabilities:

desired_caps['app'] = ???

Например я хачу протестировать апликацию whatsapp

1 лайк

я пробовал только для ios
я ставил только,


platformName
platformVersion
deviceName
app

platformName = Android
platformVersion = Android version
deviceName = Sansung …
app = path to app

Но может кто активно пишет под андроид - поправит меня.

Да но что я пишу в path to app? От куда я могу взять сам путь??

это путь к самой аппе. например у меня в маке было

“app”: “/Users/alexandrpolishchuk/Library/Developer/Xcode/DerivedData/Calculator-anfzoxkukfwxcdgkadxzdglxaxdv/Build/Products/Debug-iphonesimulator/Calculator.app”

вот я описывал про ios если вдруг

1 лайк

А если аппликация на самом аппарате?

вообще - я не оч експерт по мобильной автоматизации - но я помню что твое приложение должно устанавливаться до теста на девайс или эмулятор. это как бы тоже часть теста.

1 лайк

Я хочу протестировать аппликацию которая уже установлена на аппарате. Я пользуюсь UI Automator я вижу апликацию и вижу елементы, но как к этой апликации дайте не знаю…но всё равно спасибо за ответ…может у кого нибуть будут ещё советы

У меня капы для тестирования нативного приложения на эмуляторе Андроид выглядят в среднем так:

samsung_galaxy_S8_API26 = {
            "platformName": "Android",
            "platformVersion": "8.0",
            "deviceName": "Android Emulator",
            "avd": "SmsGalaxyS8_API26",
            "app": "/Users/user/Desktop/app-debug.apk",
            "connectHardwareKeyboard": False,
            "appPackage": "com.myapp.android",
            "appActivity": "com.myapp.android.activities.MainActivity"
            }

А вообще, тут список всех возможных капов: https://appium.io/slate/en/master/?ruby#appium-server-capabilities

1 лайк

Просто укажите appPackage и appActivity - путь не нужно указывать. Эти штуки можно взять с кода приложения (если есть доступ) или установив приложение какое-то с АппСтора (типа Activity Launcher).

Activity Launcher покажет вам активити и пекедж для приложений на телефоне\планшете.

4 лайка

Спасибо за ответ!

1 лайк

В данной статье рассказано как найти необходимые активити и пэкедж.