Appium vs բնիկ շրջանակներ. Համեմատություն

Կուրոս Ալիաբադի և Ռոհան jանջուայի կողմից

Այս գրառումը մեր փորձի ամփոփում է և պարտադիր չէ, որ ամբողջ պատկերն է: Մենք կապահովենք մի քանի հղումներ և դրանց հիման վրա կկառուցենք հետագա գրառումները, որոնք կօգնեն ձեզ ձեր սեփական հետազոտության մեջ: Հուսով ենք, որ սա լավ ելակետ կլինի յուրաքանչյուրի համար, ով ցանկանում է ընտրություն կատարել շարժական ավտոմատացման առաջատար որոշ մոտեցումների միջև:

Այնտեղ կան ավտոմատացման այլընտրանքային գործիքներ, բայց այս բլոգի գրառման համատեքստում մենք կսահմանափակվենք այս Appium- ի և iOS- ի և Android- ի համար նախատեսված տեղական բնօրինակ գործիքներով. Համապատասխանաբար XCUITests և Espresso:

Appium:

Appium- ը վերջին մի քանի տարիներին բջջային ավտոմատացման դեակտակտո գործիք է ՝ ապահովելով սելենի նման փորձ: Մինչ այժմ դա եղել է մի շարք պատճառներով մասնագիտորեն կենսունակ ընտրություններից մեկը:

  1. Նախ և առաջ այն լեզուների ագրնոստիկ է, որն աջակցում է ժողովրդական լեզուների լայն շրջանակին: Եթե ​​ձեր նախընտրած լեզուն վեբ-սերվերի հաճախորդ ունի, կարող եք օգտագործել Appium: Սա ներքևում է ընդհանուր jsonWireProtocol- ի: Սա հիանալի հարմարավետություն է, քանի որ այն թույլ է տալիս թեստավորողներին մշակել գործիքն արագ վերցնել: Աջակցվող լեզուները ներառում են, բայց չեն սահմանափակվում միայն Java, C #, JavaScript, Python և ruby:
  2. Շատ հեշտ է վերցնել և հեշտությամբ սկսել: Նախորդ կետի նման, Appium- ը շատ նմանություններ ունի Selenium վեբ-ծառայության հետ: Դրա օգուտը կայանում է նրանում, որ եթե թեստի մշակողները սովորում են գրել սելենի վեբ-վարիչի վեբ թեստեր, ապա Appium- ը պետք է համեմատաբար պարզ լինի `վերցնելու և բավականին ինտուիտիվ:
  3. Appium- ը հնարավորություն է տալիս փորձարկել բազմաթիվ պլատֆորմներ նույն փորձարկման կոդ բազայից: Կենտրոնացված թեստային թիմում կամ թիմում, որը աշխատում է ինչպես iOS- ի, այնպես էլ Android- ի միջոցով, այն կարող է նվազեցնել boilerplate ծածկագրի քանակը, որը անհրաժեշտ է թեստային ենթակառուցվածքների և էմուլյատորների հետ աշխատելու համար:
  4. Բացի այդ, մեր որոշ թեստային ինժեներների փորձի դեպքում վեբ-դիտումները օգտագործող հայրենական հավելվածների աջակցությունն ավելի լավ է Appium- ում, քան մյուս մրցակիցների մեծամասնությունը: Appium- ի կողմից տրամադրվող աջակցությունը կարող է անգնահատելի լինել, երբ խոսքը վերաբերում է հիբրիդային հավելվածների ավտոմատացմանը:

Appium- ի օգտագործման հետ կապված կան նաև որոշ թերություններ.

  1. Մեր փորձով, Appium թեստերը շատ ավելի դանդաղ են անցկացնում, քան թեստերը, որոնք գրված են XCUITests- ում կամ Espresso- ում
  2. Թեստային ծածկագիրը չի ապրում dev code- ով: Այժմ սա կարող է քննարկման առարկա լինել, բայց մենք հաստատորեն զգում ենք, որ փորձարկման ծածկագիրը և dev code- ն պետք է իրար մոտ լինեն:
  3. Խաչաձև պլատֆորմի հավելվածների փորձարկման համար միշտ կլինի տեխնիկական բարդության որոշակի աստիճան `կապված Appium- ի հետ: Դուք կամ պետք է.
  4. Պահպանեք PageObjects / ScreenObjects- ի 2 հավաքածուներ, որոնք հավատարիմ են մեկ պայմանագրին, այնպես որ դրանք կարող են կանչվել միայն մեկ թեստային փաթեթից:
  5. Գրեք թեստերի 2 հավաքածու
  6. Համոզվեք, որ ծրագրավորողներն օգտագործում են նույն ID- ն երկու ծրագրերում

Մայրենիի գործիքներ.

Ծրագրերի մշակման երկու հիմնական պլատֆորմներն այժմ ունեն շատ մրցունակ UI ավտոմատացման գործիքներ ՝ XCUITest և Espresso: Այս երկու գործիքների հասունությունը կտրուկ բարելավվել է, և WWDC 2017Apple- ում վերջերս ունեցած ելույթի ժամանակ պարզ է դարձել, որ նրանք շատ ակտիվ են աշխատում իրենց UI ավտոմատացման գործիքների կատարելագործման ուղղությամբ:

  1. XCUITest- ը և Espresso- ն օգտագործելը հիմնարար առավելություն ունի. Դրանք ստեղծվում են պլատֆորմի մատակարարների կողմից `Apple և Google: Այս գործիքները միշտ առջևում կլինեն iOS- ի և Android- ի թեստավորման կորերից: Appium- ի ցանկացած նոր առանձնահատկություն շատ դեպքերում կառուցվում է գոյություն ունեցող մայրենի գործիքի ֆունկցիոնալության վրա:
  2. Մեր աչքի ևս մեկ գլխավոր առավելությունն այն է, որ դուք կներառեք թեստային ծածկագիրը ձեր նախագծի աղբյուրի կոդով: Սա, թերևս, փոքր-ինչ քննարկման առարկա է, բայց մենք դա կքննարկենք ապագա պաշտոնում: Առայժմ մենք ուղղակիորեն կհայտարարենք, որ մենք հավատում ենք, որ ներառյալ ձեր փորձարկման ծածկագիրը նույն նախագծում և նույն լեզվով, որը ձեր ծրագրավորողներն են օգտագործում, մեծ օգուտներ ունի: Դա ավելի մեծ խթան է տալիս թիմի ներսում համագործակցության համար և թույլ է տալիս բոլորին հեշտությամբ նպաստել ծրագրաշարի մշակման այս ասպեկտին:
  3. Android- ի փորձը երբեմն ենթադրվում է, որ տարբերվում է iOS- ի փորձից, գրելով ձեր թեստերը յուրաքանչյուր պլատֆորմի համար, դուք պետք չէ բարդացնել ձեր թեստային շրջանակը `այս իրավիճակները կարգավորելու համար:
  4. Շատ ավելի քիչ փխրուն: Մայրենիի գործիքները պարզապես ավելի քիչ են կեղևոտ: Դա կարող է կապ ունենալ ավելի փոքր թվով շարժվող մասերի և թեստային ծածկագրի և գործիքավորումների միջև հաղորդակցման ավելի քիչ շերտերի հետ, բայց հայրենի գործիքներով գրված թեստերը, կարծես, շատ ավելի քիչ կեղծ են:
  5. Կարող եք օգտագործել շատ ավելի մեծ գործիքակազմ, քան եթե դուք օգտագործում եք Appium- ի նման գործիք: Օրինակ Android- ի հետ դուք ունեք մուտք ինչպես UiAutomator գրադարան, այնպես էլ Espresso գրադարան:

Էսպրեսո.

Google- ի Android- ի փորձարկման գործիք Espresso- ն ունի իր սեփական կոկիկ առանձնահատկությունները, որոնք հարկ է նշել:

  1. Espresso- ն շատ արագ է, UI ավտոմատացման մեջ մենք երբեք այդքան արագ բան չենք տեսել: Դա նման է UI ավտոմատացման Flash- ի, և ոչ մի այլ գործիք չի մոտենում դրան արագությանը:
  2. Դուք կարիք չունեք անհանգստանալու այն բանի համար, թե սպասում եք, թե ինչ պատահարներ կլինեն կամ կավարտվեն ձեր թեստային ծածկագրում, քանի որ Espresso- ն դա ձեզ համար է վարում `բացառելով որոշ բացառիկ դեպքեր: Սա, ըստ էության, առավելագույն փխրուն բանը վերցնում է UI ավտոմատացմանը հավասարումից:
  3. Espresso- ն ընդունում է «մոխրագույն տուփի» փորձարկման մոտեցում: Ոչ այնքան սև տուփ, ոչ այնքան սպիտակ: Էսպրեսսոյի օգնությամբ փորձարկիչը շատ ավելի մեծ հսկողություն ունի դիմումի վրա, քան սև տուփի գործիքում, ինչպիսին է appium- ը:
  4. Espresso- ն թույլ է տալիս փորձարկողին օգտագործել գործիքներ, ինչպիսիք են Robolectric- ը, Android SDK- ի գործարկման շրջանակ ՝ առանց սիմուլյատոր հիմնելու կամ սարքի միացման: Սա նշանակում է, որ ձեր թեստերը ավելի արագ են սկսվում և նույնպես արագ են ընթանում:

IOS- ի փորձարկման համար կա նաև Google- ի կողմից ստեղծված Espresso- ի նման մի շրջանակ, որը հարկ է նշել այստեղ. EarlGrey: Մենք դա չենք օգտագործել, բայց եթե դա բերում է Espresso- ի որոշ առավելություններ iOS- ի համար, արժե ուսումնասիրել:

Մայրենիի թեստային գործիքների օգտագործման մեջ կան նաև որոշ թերություններ.

  1. Եթե ​​դուք ստեղծում եք խաչաձև պլատֆորմի ծրագիր, ապա ձեզ հարկավոր է կրկնակի պահպանել թեստերի քանակը `համեմատած, եթե դուք օգտագործել եք Appium- ի նման գործիք:
  2. Եթե ​​մշակեք խաչաձև պլատֆորմի ծրագիր, ապա ձեզ հարկ կլինի իմանալ երկու լեզու:
  3. Այս մոտեցմանը կարող է ավելի բարդ լինել: Սա լրացուցիչ ուժի և հասանելիության կողմնակի էֆեկտ է, որը Espresso- ի նման գործիք կարող է տալ փորձարկիչին: Օրինակ, Espresso- ն ինքնաբերաբար սպասում է իրադարձություններին, որոնք կկարողանան լրացնել թեստի տակ գտնվող դիմումը `օգտագործելով IdlingResource: Այնուամենայնիվ, որոշ դեպքերում փորձարկողը ստիպված կլինի ձեռքով իրականացնել IdlingResource- ը:
  4. Espresso- ի նման գործիքի միջոցով փորձարկողը կարող է դիմումը մտցնել այնպիսի վիճակի, որը գուցե չի կարողանա օգտվել օգտագործողի տեսանկյունից: Կրկին, սա ձեր կողմից ստացվող լրացուցիչ էներգիայի մյուս կողմն է: