Предыстория
Всем привет. Недавно на сайте был опросник по мобильное автоматизации. Я тоже в нем принял голосование - хотел бы научиться автоматизировать под #mobile:appium . Но решил попробовать сам - разобраться. Возможно это не так и сложно? На титул гуру я не претендую, и хотел бы описать что у меня получилось.
Почему Python Appium?
Сначала добавлю что есть опыт автоматизации на #programming:python API + Selenium WebDriver. Поэтому выбор делать не приходилось. Промониторив какие есть фремворки - решил остановиться на #mobile:appium . Плюсы и минусы описывать не буду - возможно он и не самый востребованый а возможно и самый ) Но то что он кроссплатформенный - это большой плюс.
Окружение
Следующим шагом был вопрос - а что собственно автоматизировать? Нужно иметь приложение. Так как я использую iPhone SE и рабочий компьютер у меня Macbook Pro 2015 года. То начать я решил с iOS. Я нашел опенсорсное приложение на github. Вот здесь я выбрал обычный калькулятор:
Скопировал себе и открыл через Xcode. А потом сбилдил под testing. На сколько я понимал - что если билдить не под тестирование то могут быть проблемы с доступом до приложения через appium. Проверять не стал
Следующим шагом была установка Симулятора. Он есть в Xcode - так что это упростил работу. Сначала я хотел запустить все на своем телефоне - у меня это получилось, но в симуляторе есть все iOS устройста а не только iPhone SE
Установка Appium
Установив appium через :
> brew install appiu
m
и плавно перешел к написанию самих тестов.
Попробовал законектиться к девайсу, но не получилось. Я получал различного рода ошибки которые сложно было решил поиском в google. Как оказалось - основная проблема была в написании правильных Desired capabilities.
Я попробовал пойти другим путем. Я скачал десктопное приложение Appium.
https://github.com/appium/appium-desktop/releases/tag/v1.2.6
Дальше нажимаем по иконке лупы в правом верхнем углу - Start Inspector Session. Мы попадаем на окно где можно поиграться с Desired Capabilities .
В итоге у меня получилось сделать запуск мобильного приложения в ручном режиме через это окно.
Тут же появилось окно в котором можно найти и протестировать нужные локаторы.
Последний этап - сам тест. Он в примере. Сам по себе очень простой. Я додаю два числа и потом проверяю что в окне мне выводиться правильное значение.
Вот пример моих настроек :
{
"platformName": "iOS", "platformVersion": "11.1", "deviceName": "iPhone SE", "app": "/Users/alexandrpolishchuk/Library/Developer/Xcode/DerivedData/Calculator-anfzoxkukfwxcdgkadxzdglxaxdv/Build/Products/Debug-iphonesimulator/Calculator.app"
}
тут в принципе все понятно. app - абсолютный путь к вашей сбилдженой мобильной апке.
Первый тест
Тест базовый - максимально просто, главное что бы заработало
Вот что у меня получилось
from appium import webdriver
desired_caps = {
“platformName”: “iOS”,
“platformVersion”: “11.1”,
“deviceName”: “iPhone SE”,
“app”: “/Users/alexandrpolishchuk/Library/Developer/Xcode/DerivedData/Calculator-anfzoxkukfwxcdgkadxzdglxaxdv/Build/Products/Debug-iphonesimulator/Calculator.app”
}
def test_sum_of_two_integers():
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_name('9').click()
driver.find_element_by_name('+').click()
driver.find_element_by_name('1').click()
driver.find_element_by_name('=').click()
numbers_field = driver.find_element_by_xpath('//XCUIElementTypeStaticText')
assert int(numbers_field.text) == 10
driver.quit()
Запускаем командой:
py.test -v filename.py
Выводы
Как оказалось - начать автоматизировать это не так и сложно. Обычно я вначале начинаю смотреть документацию, если не получается - то ищу тематические статьи или видео. И с #mobile:appium я немного застрял на правильных настройках Desired capabilities -когда у тебя “все правильно” но не работает
Если кто решил повторить мой путь - интересно или у Вас были проблемы?
- Получилось с первого раза
- Да застрял на …
- Не буду даже и пробовать
0 участников