Hamısını sınamalıyam: OutSystems Mobil Tətbiqlərini necə sınamalıyam

Bir müddət əvvəl mobil tətbiqetmə testinin tətbiq keyfiyyətinin yüksəlməsindəki mərkəzi rolunu və istifadəçinin qəbuluna və məmnuniyyətinə təsirini müzakirə edən bir məqalə yazdım. Müxtəlif mobil cihazlar, əməliyyat sistemi versiyaları və şəbəkə şərtləri sayəsində mobil tətbiqetmələrin sınağının mürəkkəbliyini araşdırdım. Bu gün sizi OutSystems və AWS Device Farm ilə mobil tətbiqetmələrin sınaqdan keçirilməsindən keçmək istəyirəm.

OutSystems mobil tətbiqetmələrinin testində, digər mobil texnologiyalar kimi, səth səviyyəsində də dəyişənlərin sayı olduqca böyükdür. Dedi ki, hər zaman daha dərin baxmağı düşünməlisən. Axı, səhv bir tətbiq yalnız onu dərhal silmənizi tələb edir.

Mükəmməl qurulmuş bir ssenarini məhv edə biləcək qorxunc elementə çatmadan yalnız bu qədər test edə bilərsiniz: həqiqi bir cihaz. Həqiqi cihazlarda test Pandora üçün lojistik bir problemdir və istənilən mobil inkişaf etdiricinin arzularını geridə qoyur. Komandamla mən bir az yuxu itirdik. Cib telefonlarının dağının altına basdırılmadan bir həll yolu, bir test yolu tapmalıydıq.

Visual Studio App Center, Perfecto və ya Saucelabs kimi bir çox həll yolu var. Ancaq Amazon Device Farm, kabuslarımıza bir dərman olduğunu sübut etdi. Device Farm, inkişaf etdiricilərə AWS buludunda həqiqi Android və iOS cihazlarında test yükləməyə və keçirməyə imkan verən bir AWS test çərçivəsidir. Cihazı birləşdirmədən əvvəl vəziyyətini sazlaya biləcəyinizdən əvvəl, avtomatik testlər apara və öz cihazlarında uzaqdan giriş sessiyalarını öz konfiqurasiyaları ilə işləyə bilərsiniz.

AWS ayrıca bütün AWS xidmətləri ilə əlaqə qurmaq üçün istifadə edə biləcəyiniz bir SDK təklif edir. Bu şəkildə cihaz təsərrüfatını (və ya başqa bir xidməti) daxili panellərimizə bağlaya bilərik.

AWS ayrıca xüsusi cihazlar üçün birbaşa cihaz girişini də başlatdı. Bu yeni funksiya ilə inkişaf etdiricilər fərdi cihazlarını öz xüsusi test dəstlərində, sanki yerli kompüterlərinə USB ilə birbaşa qoşulmuş kimi istifadə edə bilərlər.

Device Farm ayrıca öz testlərinizi yaza biləcəyiniz Appium, Calabash, XCTest və bir çox digər test avtomatlaşdırma çərçivələrini dəstəkləyir.

Bəli, xüsusilə təsirli olduğunu gördükdə olduqca təsir edici bir vasitədir.

Əllərinizi çirkləndirmək: Amazon Device Farm və OutSystems

İndi OutSystems tətbiqlərini sınamaq üçün AWS Device Farm istifadə edərək sizi nəzərdən keçirəcəyəm. Əlbəttə ki, bunu əməldə görmək üçün əvvəlcə testlər yaratmalıyıq! Sadə bir OutSystems tətbiqindən istifadə edəcəyik və giriş səhifəsini Android cihazında sınayacağıq. Testlərinizin qurulmasına dair texniki detalları GitHub-da bu test nümunələrində tapa bilərsiniz. Digər test təlimlərini də izləyə bilərsiniz.

1. Maşını quraşdırın

Sizin üçün ən uyğun avtomatlaşdırma test çərçivəsini quraşdırın. Bu məqalə üçün Appium-a sadiq qalacağıq. Appium kimi, bəzi çərçivələr birdən çox proqramlaşdırma dilini dəstəkləyir. Buna görə hər şeyi quraşdırdığınızdan əmin olun. Proqramlaşdırma dili olaraq Python'u seçdik.

2. Testin quraşdırılması

Test layihənizi yaratmağa başlayın. Bütün testlərinizi avadanlıq təsərrüfatına göndərmədən əvvəl dəqiq testlərinizi əvvəlcə yerli test mühitinizdə aparmanızı tövsiyə edirəm. Bir problemin kök səbəbini yerli olaraq tapmaq daha asandır. Bu da ucuzdur. Əsas test sənədinizdə aşağıdakı istədiyiniz xüsusiyyətləri testinizə əlavə edin.

kerakli_caps ['platformName'] = 'Android' arzuolunan_caps ['deviceName'] = 'aPhone' kerakli_caps ['appPackage'] = ' 'kerakli_caps [' appActivity '] = ".Əsas fəaliyyət"

3. Test planlaşdırılması və mərhələləri

Ümumiyyətlə hər şey üçün bir test yaratmırsınız. İdeal olaraq, test etmək istədiyiniz tətbiqin hər hissəsini təcrid edəcəksiniz. Testinizi kodlamağa başlamazdan əvvəl bir plan yaratmalısınız. Oturun, rahatlayın və tətbiqinizi sınayın. Test etmək istədiyiniz əsas xüsusiyyətləri axtarın.

4. Testin yaradılması

Artıq bir plan yaratdığınız üçün testlərinizi qurmağa başlamağın vaxtı gəldi. Test qovluğunda bir test faylı yaratmağa və bir test işini kodlaşdırmağa başlayaq. Test metodunuzu kodlaşdırarkən "test" sözünün əvvəlini əlavə edin. Bu, test çərçivəsinə testimizin hansı metodu daxil etdiyini təyin etməyə imkan verir.

Hər şeyin ardıcıl baş verməsi üçün qarşılıqlı testlər edirik. Əvvəlcə testə başlayırıq. Sonra bir hadisə / maddənin ekranda görünməsini gözləyək. Gözlənilən görünəndə, üzərinə vururuq və yenisi ekranda görünməsini gözləyirik. Fikriniz budur: testə başlayın, gözləyin, vurun, gözləyin. Bəzən müəyyən bir hadisənin baş verdiyinə və ya ekranda müəyyən bir maddənin göründüyünə əmin olmaq üçün yuxu vəziyyətindən istifadə etmək lazım ola bilər. Əks təqdirdə fərq edə bilmərik.

idxal os unittest idxal apeniumdan idxal webdriver selenium.webdriver.common.by idxal selenium.webdriver.support.ui idxal WebDriverWait from selenium.webdriver.support import expect_conditions from EC
Sınıf TestClass (unittest.TestCase): def setUp (self): self.driver = webdriver.Remote ('http://127.0.0.1:4723/wd/hub', {})
def test_case (özünü): ...
def tearDown (self): self.driver.quit () if __name__ == '__main__': unittest.main ()

Ekranda bir şey olduğunu necə bilə bilərəm? Bunun üzərinə necə vurum? Tamam, çətin məsələ budur. Bir müddət əvvəl OutSystems MABS ilə yerli proqramlar yaratmaq barədə yazdığım məqaləni xatırlayırsınız? Əgər belədirsə, onsuz da OutSystems tətbiqlərinin hibrid tətbiqetmələr olduğunu bilirsiniz. Bu o deməkdir ki, OutSystems tətbiqlərimizi qurarkən etdiyimiz bəzi dəyişikliklər HTML ilə uyğunlaşdırılır. Hər zaman bir ad ilə bir məlumat atributu təyin etsəniz, test elementində tətbiq elementlərinizi daha asan müəyyənləşdirə və XPATH ilə elementi daha asan tapa bilərsiniz.

Birinci ssenari, aşağıdakı nümunələrdə göstərildiyi kimi bir şəkil tapmağa çalışır. Görüntüyü təmsil edən bir dəyəri olan bir atribut əlavə etdik (bu halda "SuccessImg") və onu XPATH (// img [@ data-test-id = "SuccessImg"]) istifadə edərək axtardıq. Bir siyahı ilə məşğul olanda daha diqqətli olmalıyıq. Siyahıda müəyyən bir maddə tapmaq üçün, məsələn üçüncüsü, dəyər indeksinə sahib olduğumuzdan əmin olmalıyıq. Burada "MyAttrId-2" dəyəri olan "data-test-id" atributunu axtarmalıyıq.

Bilirəm, bilirəm; Müəyyən ssenarilərdə, Chrome veb brauzerində OutSystems mobil tətbiqetməmizin müəyyən bir funksiyasını test edə bilmirik. Bu halların əksəriyyəti, tətbiqdə quraşdırılmalı olan bir yerli plagindən birbaşa asılılıq olduğu üçün baş verir. Bu ssenari üçün mobil cihazımızı kompüterimizə bağlamalı, Chrome'u açmalı və URL-də chrome: // inspect / # cihazlarını daxil etməliyik. Bu, kompüterinizə qoşulmuş bütün cihazların siyahısını göstərən bir səhifə açacaqdır.

İndi cihazınızı yoxlayın və HTML-yə başlamağa başlayın. Tətbiqinizdə gəzmək üçün lazım olan düymələri, lövbərləri və ya bağlantıları tapın. Tətbiq düymələrinizi müəyyənləşdirməyin yaxşı bir yolu HTML ID sahəsini istifadə etməkdir. Ancaq nədənsə həmin düymənin şəxsiyyəti yoxdursa, bunun əvəzinə XPATH istifadə edə bilərsiniz.

Unutmayın: iOS cihazları yalnız Mac'lərdə Safari istifadə edərək və cihazdakı veb müfəttişi işə salmaqla skan edilə bilər. Android, həm kompüterlər, həm də Maclar tərəfindən Chrome istifadə edərək yoxlanıla bilər və cihazdakı geliştirici vasitələrini aktivləşdirə bilər.

5. Test dəsti

Testimizi yaratdıq və indi Amazon Cihaz Təsərrüfatına göndərə bilərik. Bunu necə edə bilərik? Çox sadədir: bir əmr işə saldığınız zaman test paketimizi ehtiva edən bir zip faylı yarada bilərsiniz. Bu test paketi vacibdir, çünki AWS Device Farm-ın çalışacağı testi və kitabxanaları ehtiva edir. Testləri necə təqdim etmək olar:

1. AWS konsolunda testlərinizi aparacağınız və yeni bir işləyəcəyiniz layihəni yaradın. Bir qaçış, müəyyən bir cihaz dəstində müəyyən bir test dəsti ilə müəyyən bir tətbiqetməni təmsil edir. İlkin işlər görülüb.

2. Sonra tətbiq paketinizi və testlərinizi yükləməlisiniz. Biriniz yoxdursa, AWS iki daxili test keçirdi. Bu nümunədə öz nümunələrimizdən istifadə edirik.

3. İndi əyləncə başlayır: test etmək istədiyiniz cihazları seçin və cihazın vəziyyətini göstərin (WiFi, NFC, GPS, Bluetooth). Hal-hazırda AWS Device Farm 178 Android və 162 iOS cihazına sahibdir. Android üçün 23 fərqli Android versiyasında işləyən 139 fərqli cihaz (Motorola, Samsung, Wiko və s.) Var. İOS üçün 26 fərqli cihaz (iPad 2, iPhone 8, iPod Touch 6-cı nəsil və s.) 26 fərqli iOS versiyası ilə işləyə bilər.

4. Get! Yoxlayın, çalıştırın və nəticələrə baxın! Cihazın qeydləri, test qeydləri, ekran görüntüləri, videolar və s. İlə birlikdə hər dəfə bir hesabat hazırlanır.

Bükün

Cihaz təsərrüfatı çox faydalıdır. İndi davamlı olaraq yeni xüsusiyyətlər, təkmilləşdirmələr və səhv düzəltmələri yüksək səviyyədə özümüzə təmin edə bilərik. İnkişaf edənlərimiz indi yeni funksiyalar inkişaf etdirir və dərhal sınaqdan keçirirlər.

Bu vasitə, dəstək işlərimizdə də bizə kömək etdi. Bildiyiniz kimi, bütün fərqli cihazlara və əməliyyat sistemi versiyalarına sahib olmaq mümkün deyil. Bu vasitə ilə üzərində yuxu itirmək məcburiyyətində deyilik. Hər il AWS Device Farm xidmətinə yeni cihazlar əlavə edir. Bir Lava Iris, Ulefone və ya Mlais cihazında gözlənildiyi kimi işləməyən bir şey üçün hər zaman bir dəstək iddiası alsaq, cihaz təsərrüfatına uzaqdan giriş istəyə və tətbiqi cihazda real vaxtda gündəmə gətirib test edə bilərik. .

Sizi sınamağa çağırıram və indi sizə aiddir! Aşağı kod qədər sadə deyil, amma göründüyü qədər də çətin deyil. Zəhmətinizin qaytarılması buna dəyər. AWS cihaz təsərrüfatını Appium ilə istifadə etdiyimizi unutmayın. Bununla yanaşı, digər cihaz təsərrüfatlarından da istifadə edə bilərsiniz. Daha əvvəl də qeyd etdiyim kimi, hər şeyi burada, burada və burada izah etdiniz. Bu həllin sizin üçün necə işlədiyini bizə bildirin!