Appium vs Native Framework: параўнанне

Аўтар Курас Аліябадзі і Рохан Джанджуа

Гэты пост - гэта звод нашага досведу, а не абавязкова цэлую карціну. Мы будзем прадастаўляць некаторыя спасылкі і абапірацца на гэта ў будучых публікацыях, каб дапамагчы вам у вашых уласных даследаваннях. Спадзяемся, што гэта будзе добрай адпраўной кропкай для тых, хто хоча зрабіць выбар паміж некаторымі з вядучых падыходаў аўтаматызацыі мабільнай сувязі.

Ёсць альтэрнатыўныя сродкі аўтаматызацыі, але ў кантэксце гэтага паведамлення ў блогу мы абмяжуемся гэтым Appium і роднымі інструментамі па змаўчанні для iOS і Android: XCUITests і Espresso адпаведна.

Апій:

Appium быў інструментам дэфакто для аўтаматызацыі мабільных тэхналогій на працягу апошніх некалькіх гадоў, які забяспечвае селен падобны досвед. Дагэтуль гэта быў адзін з найбольш прафесійна прымальных выбараў па шэрагу прычын.

  1. Па-першае, гэта мова агностыка, якая падтрымлівае шырокі спектр папулярных моў. Калі на вашай мове выбару ёсць кліент webdriver, вы можаце выкарыстоўваць Appium. Гэта ўніз да агульнага jsonWireProtocol. Гэта вельмі зручна, бо дазваляе распрацоўшчыкам тэстаў хутка забраць інструмент. Мовы, якія падтрымліваюцца, ўключаюць, але не абмяжоўваюцца імі Java, C #, JavaScript, Python і ruby.
  2. Вельмі проста падабраць і пачаць лёгка. Як і ў папярэднім пункце, Appium мае шмат агульнага з вэб-прывадам Selenium. Перавага гэтага ў тым, што калі распрацоўшчыкі тэстаў прывыклі пісаць вэб-тэсты селену webdriver, то Appium павінен быць адносна простым і вельмі інтуітыўным.
  3. Appium дазваляе тэсціраваць некалькі платформаў з адной базы тэставых кодаў. Для тых, хто працуе ў цэнтралізаванай тэставай камандзе або ў камандзе, якая працуе як на iOS, так і на Android, яна можа паменшыць колькасць кода, неабходны для працы з тэставай інфраструктурай і эмулятарамі.
  4. Акрамя досведу некаторых нашых тэставых інжынераў, падтрымка ўласных прыкладанняў, якія выкарыстоўваюць вэб-прагляды, лепш у Appium, чым большасць іншых канкурэнтаў. Падтрымка, якую прадастаўляе Appium, можа быць неацэннай, калі гаворка ідзе пра аўтаматызацыю гібрыдных дадаткаў.

Ёсць і некаторыя недахопы выкарыстання Appium:

  1. З нашага вопыту, тэсты Appium працуюць значна павольней, чым тэсты, напісаныя альбо ў XCUITests, альбо ў эспрэса
  2. Код тэсту не працуе з кодам распрацоўніка. Цяпер гэта можа быць абмеркавана, але мы цвёрда лічым, што тэставы код і код распрацовак павінны жыць блізка адзін да аднаго.
  3. Для праверкі прыкладанняў на платформе заўсёды будзе пэўная ступень тэхнічнай складанасці з Appium. Вы альбо павінны:
  4. Падтрымлівайце 2 наборы PageObjects / ScreenObjects, якія прытрымліваюцца адзінага кантракту, каб яны маглі выклікаць толькі адзін набор тэстаў.
  5. Напішыце 2 камплекты тэстаў
  6. Пераканайцеся, што распрацоўшчыкі выкарыстоўваюць адзін і той жа ідэнтыфікатар для абедзвюх праграм

Родныя прылады:

Абедзве асноўныя платформы для распрацоўкі прыкладанняў маюць уласныя канкурэнтныя інструменты аўтаматызацыі карыстацкага інтэрфейсу: XCUITest і Espresso. Сталасць гэтых двух інструментаў значна палепшылася, і ў нядаўняй размове на WWDC 2017Apple было ясна, што яны вельмі актыўна працуюць над удасканаленнем сваіх інструментаў аўтаматызацыі карыстацкага інтэрфейсу.

  1. У выкарыстанні XCUITest і Espresso ёсць асноўная перавага: яны створаны пастаўшчыкамі платформаў: Apple і Google. Гэтыя інструменты заўсёды будуць апярэджваць крывую для тэставання iOS і Android. Любая новая функцыя ад Appium у большасці выпадкаў будуецца на аснове функцыянальнасці існуючага роднага інструмента.
  2. Яшчэ адна галоўная перавага ў нашых вачах заключаецца ў тым, што вы ўключыце тэставы код з зыходным кодам вашага праекта. Магчыма, гэта будзе крыху абмеркавана, але мы абмяркуем гэта ў будучым пасце. Зараз мы проста заявім, што лічым, што ўключэнне вашага тэставага кода ў той жа праект і на той жа мове, якімі карыстаюцца вашы распрацоўшчыкі, мае вялікія перавагі. Гэта дае больш стымулаў для супрацоўніцтва ў калектыве і дазваляе кожнаму лёгка спрыяць гэтаму аспекту распрацоўкі праграмнага забеспячэння.
  3. Часам вопыт андроіда павінен адрознівацца ад досведу iOS, пішучы тэсты для кожнай платформы, вам не прыйдзецца ўскладняць тэставую аснову для вырашэння гэтых сітуацый.
  4. Значна менш лупіцца. Родныя прылады проста менш лускатыя. Гэта можа быць звязана з меншай колькасцю рухомых дэталяў і меншым узроўнем сувязі паміж тэставым кодам і прыборамі, але тэсты, напісаныя пры дапамозе роднага інструмента, здаюцца значна менш хісткімі.
  5. Вы можаце выкарыстоўваць значна большы набор інструментаў, чым калі вы выкарыстоўваеце такі інструмент, як Appium. Напрыклад, з Android вы маеце доступ да бібліятэкі UiAutomator і да бібліятэкі Эспрэса.

Эспрэса:

Інструмент Google для тэставання Android Эспрэса мае некаторыя ўласныя акуратныя функцыі, якія варта адзначыць.

  1. Эспрэса вельмі хутка: мы ніколі не бачылі чагосьці такога хуткага ў аўтаматызацыі карыстацкага інтэрфейсу. Гэта як аўтаматызацыя ўспышкі карыстацкага інтэрфейсу, ні адзін іншы інструмент не набліжаецца да хуткасці.
  2. Вам не прыйдзецца турбавацца аб тым, каб чакаць, калі ўсё здарыцца або скончыцца ў тэставым кодзе, калі Эспрэса вырашае гэта, за выключэннем некаторых выключных выпадкаў. У асноўным гэта самае далікатнае, што тычыцца аўтаматызацыі карыстацкага інтэрфейсу з раўнання.
  3. Эспрэса выкарыстоўвае падыход да тэсціравання ў "шэрым полі". Не зусім чорная скрынка, не зусім белая. З дапамогай эспрэса тэстар мае значна большы кантроль над дадаткам, чым у чорным інструменце, як апій.
  4. Эспрэса дазваляе тэстару выкарыстоўваць такія інструменты, як Robolectric, аснову для запуску Android SDK без запуску сімулятара і падключэння прылады. Гэта азначае, што вашы тэсты запускаюцца хутчэй і таксама працуюць хутчэй.

Рамка, падобная на Эспрэса, таксама створана Google, для праверкі на iOS тут варта згадаць: EarlGrey. Мы яго яшчэ не выкарыстоўвалі, але калі гэта прыносіць некаторыя перавагі Espresso iOS, варта вывучыць яго.

Ёсць і некаторыя недахопы выкарыстання інструментаў роднага тэсту:

  1. Калі вы распрацоўваеце прыкладанне крос-платформы, вам, магчыма, давядзецца падтрымліваць удвая большую колькасць тэстаў у параўнанні з тым, калі вы выкарыстоўвалі такі інструмент, як Appium.
  2. Калі вы распрацоўваеце прыкладанне крос-платформы, вам трэба ведаць дзве мовы.
  3. У гэтым падыходзе можа быць прыцягнута большая складанасць. Гэта пабочны эфект дадатковай магутнасці і доступу, які такі інструмент, як Эспрэса можа даць тэсцеру. Напрыклад, Эспрэса аўтаматычна чакае завяршэння падзей у тэсціраваным дадатку з выкарыстаннем IdlingResource. Аднак у некаторых выпадках тэстару давядзецца рэалізаваць IdlingResource ўручную.
  4. З дапамогай такога інструмента, як Эспрэса, тэстар можа пакласці прыкладанне ў стан, у якім ён не зможа дасягнуць з пункту гледжання карыстальніка. Зноў жа, гэта другі бок дадатковай магутнасці, якую вы атрымаеце.