TestMace. Sürətli başlanğıc

TestMace. Sürətli başlanğıc

Hamıya salam. Yavaş-yavaş kölgələrdən çıxırıq və məhsulumuz haqqında silsilə yazıları davam etdiririk. sonra əvvəlki məqaləni nəzərdən keçirərkən çoxlu rəy (əsasən müsbət), təkliflər və səhv hesabatları aldıq. Bu gün göstərəcəyik TestMace fəaliyyət göstərir və siz tətbiqimizin bəzi xüsusiyyətlərini qiymətləndirə biləcəksiniz. Daha tam immersion üçün sizə bizim sənədlərimizə müraciət etməyi məsləhət görürəm http://docs-ru.testmace.com. Beləliklə, gedək!

Quraşdırma

Gəlin bayağılıqdan başlayaq. Tətbiq mövcuddur və əslində üç platformada sınaqdan keçirilir - Linux, Windows, MacOS. Sizi maraqlandıran OS üçün quraşdırıcını yükləyə bilərsiniz saytımız. Linux istifadəçiləri üçün quraşdırmaq mümkündür snap paketi. Biz həqiqətən ümid edirik ki, Microsoft Mağazası və Tətbiq Mağazası tezliklə buna nail olacaq (Lazımdırmı? Siz nə düşünürsünüz?).

Eksperimental ssenari

Test mövzumuz olaraq aşağıdakı standart ssenarini seçdik:

  • Giriş: istifadəçi - admin, parol - parol
  • yeni bir giriş əlavə edin
  • Qeydin düzgün əlavə olunduğunu yoxlayaq

Biz sınaqdan keçirəcəyik https://testmace-quick-start.herokuapp.com/. Bu adi haldır json-server, bu cür tətbiqləri sınaqdan keçirmək üçün mükəmməldir. Biz sadəcə olaraq bütün json-server marşrutlarına işarə ilə avtorizasiya əlavə etdik və bu nişanı almaq üçün giriş metodu yaratdıq. Layihəmizi tədricən təkmilləşdirərək, tədricən irəliləyəcəyik.

Layihə yaratmaq və icazəsiz bir qurum yaratmağa çalışmaq

Əvvəlcə yeni layihə yaradaq (fayl->Yeni layihə). Tətbiqi ilk dəfə işə salırsınızsa, yeni layihə avtomatik olaraq açılacaq. Birincisi, yeni bir qeyd yaratmaq üçün sorğu verməyə çalışaq (əgər qeydlərin yaradılması icazəsiz mümkündürsə). Layihə node kontekst menyusundan elementləri seçin Düyün əlavə edin -> Request Step. Düyün adını təyin edin yaratmaq-post. Nəticədə ağacda yeni qovşaq yaradılacaq və bu node üçün tab açılacaq. Aşağıdakı sorğu parametrlərini təyin edək:

TestMace. Sürətli başlanğıc

Ancaq sorğunu yerinə yetirməyə çalışsaq, server 401 kodunu qaytaracaq və icazəsiz bu serverdə heç nə əldə etməyəcəyik. Yaxşı, ümumiyyətlə, gözlənildiyi kimi).

Avtorizasiya sorğusu əlavə edilir

Artıq deyildiyi kimi, POST son nöqtəmiz var /login, formanın sorğu orqanı kimi json qəbul edir: {"username": "<username>", "password": "<password>"}Hara username и password (yenə yuxarıdakı giriş bəndindən) mənaları var admin и password müvafiq olaraq. Cavab olaraq, bu son nöqtə json kimi qaytarır {"token": "<token>"}. Biz ondan avtorizasiya üçün istifadə edəcəyik. Yaradaq Request Step adı ilə node daxil ol, əcdad kimi çıxış edəcək Layihə düyün Çək və burax funksiyasından istifadə edərək, ağacdakı verilmiş qovşağı qovşaqdan yuxarıya köçürün yaratmaq-post. Yeni yaradılmış sorğuya aşağıdakı parametrləri təyin edək:

Sorğunu yerinə yetirək və cavabda işarəsi olan iki yüzüncü kodu qəbul edək. Bu kimi bir şey:

TestMace. Sürətli başlanğıc

Refaktorinq: domen dublikatının aradan qaldırılması

İndiyə qədər sorğular tək bir skriptdə birləşdirilməyib. Ancaq bu, yeganə çatışmazlıq deyil. Diqqətlə baxsanız, hər iki sorğuda heç olmasa domenin təkrarlandığını görərsiniz. Yaxşı deyil. Gələcək skriptin bu hissəsini refaktor etmək vaxtıdır və dəyişənlər bu işdə bizə kömək edəcək.

Birinci təxminə görə, dəyişənlər digər oxşar alətlərdə və proqramlaşdırma dillərində olduğu kimi eyni rolu oynayır - təkrarlamanın aradan qaldırılması, oxunaqlılığın artırılması və s. Dəyişənlər haqqında ətraflı oxuya bilərsiniz sənədlərimiz. Bu halda bizə istifadəçi dəyişənləri lazım olacaq.

Layihə qovşağı səviyyəsində dəyişəni təyin edək domain mənası ilə https://testmace-quick-start.herokuapp.com... Bu tələb edir

  • Bu node ilə nişanı açın və yuxarı sağdakı kalkulyator simgesini vurun
  • Düyməsini vurun + DƏYƏNƏN ƏLAVƏ EDİN
  • Dəyişən adı və dəyəri daxil edin
    Bizim vəziyyətimizdə əlavə dəyişən ilə dialoq belə görünəcək:

TestMace. Sürətli başlanğıc

TAMAM. İndi vərəsəlik sayəsində biz bu dəyişəni istənilən yuva səviyyəsinin nəsillərində istifadə edə bilərik. Bizim vəziyyətimizdə bunlar qovşaqlardır daxil ol и yaratmaq-post. Mətn sahəsində dəyişəndən istifadə etmək üçün siz yazmalısınız ${<variable_name>}. Məsələn, giriş url-ə çevrilir ${domain}/loginüçün müvafiq olaraq yaratmaq-post node url kimi görünəcək ${domain}/posts.

Beləliklə, DRY prinsipini rəhbər tutaraq, biz ssenarini bir qədər yaxşılaşdırdıq.

Tokeni dəyişənə qeyd edin

Söhbət dəyişənlərdən getdiyi üçün bu mövzunu bir az da genişləndirək. Hal-hazırda, uğurlu giriş halında, serverdən sonrakı sorğularda bizə lazım olacaq bir icazə nişanı alırıq. Gəlin bu nişanı dəyişənə saxlayaq. Çünki dəyişənin dəyəri skriptin icrası zamanı müəyyən ediləcək, bunun üçün xüsusi bir mexanizmdən istifadə edirik - dinamik dəyişənlər.

Əvvəlcə giriş sorğusunu yerinə yetirək. Nişanda Ayrıldı cavab verin, kursoru işarənin üzərinə aparın və kontekst menyusunda (bu, ya sağ siçan düyməsini, ya da düyməni basmaqla çağırılır ...) elementi seçin. Dəyişənə təyin edin. Aşağıdakı sahələrlə bir dialoq görünəcək:

  • Yol — cavabın hansı hissəsi alınır (bizim vəziyyətimizdə belədir body.token)
  • Cari dəyər — Yol boyunca hansı dəyər var (bizim vəziyyətimizdə bu, işarə dəyəridir)
  • Dəyişən ad — burada dəyişənin adı Cari dəyər qorunacaq. Bizim vəziyyətimizdə belə olacaq token
  • Düyün — dəyişən əcdadlardan hansında yaradılacaq Dəyişən ad. Layihəni seçək

Tamamlanmış dialoq belə görünür:

TestMace. Sürətli başlanğıc

İndi node hər dəfə yerinə yetirilir daxil ol dinamik dəyişən token cavabdan alınan yeni dəyərlə yenilənəcək. Və bu dəyişən saxlanılacaq Layihə node və miras sayəsində nəsillər üçün əlçatan olacaq.

Dinamik dəyişənlərə daxil olmaq üçün istifadə etməlisiniz daxili dəyişən $dynamicVar. Məsələn, saxlanılan tokenə daxil olmaq üçün zəng etməlisiniz ${$dynamicVar.token}.

Biz icazə nişanını sorğulara ötürürük

Əvvəlki addımlarda biz icazə nişanını aldıq və etməmiz lazım olan tək şey başlıq əlavə etməkdir Authorization məna ilə Bearer <tokenValue> daxil olmaqla, icazə tələb olunan bütün sorğularda yaratmaq-post. Bunu etmək üçün bir neçə yol var:

  1. Tokeni əl ilə kopyalayın və maraq sorğularına icazə başlığı əlavə edin. Metod işləyir, lakin onun istifadəsi yalnız "hazırlanmış və atılmış" tipli sorğularla məhdudlaşır. Skriptlərin təkrar icrası üçün uyğun deyil
  2. Funksionallıqdan istifadə edin icazə.
  3. Istifadə standart başlıqlar

İkinci üsuldan istifadə aydın görünür, lakin bu məqalənin kontekstində bu yanaşma... maraqsızdır. Yaxşı, həqiqətən: avtorizasiya mexanizmi plus minus sizə digər alətlərdən tanışdır (hətta belə şeylərimiz olsa belə avtorizasiya mirası) və çətin ki, suallar doğursun.

Başqa bir şey standart başlıqlardır! Qısaca desək, defolt başlıqlar irsi HTTP başlıqlarıdır və açıq şəkildə söndürülmədikcə sorğuya defolt olaraq əlavə edilir. Bu funksionallıqdan istifadə edərək, məsələn, xüsusi avtorizasiya həyata keçirə və ya sadəcə olaraq skriptlərdə təkrarlanmadan xilas ola bilərsiniz. Başlıqlarda işarə ötürmək üçün bu xüsusiyyətdən istifadə edək.

Əvvəllər biz ehtiyatla işarəni dinamik dəyişənə saxladıq $dynamicVar.token Layihə qovşağı səviyyəsində. Yalnız aşağıdakıları etmək qalır:

  1. Standart başlığı müəyyənləşdirin Authorization mənası ilə Bearer ${$dynamicVar.token} Layihə qovşağı səviyyəsində. Bunu etmək üçün qovşağın Layihə interfeysində standart başlıqları olan bir dialoq açmalısınız (düymə Başlıkları yuxarı sağ küncdə) seçin və müvafiq başlıq əlavə edin. Doldurulmuş dəyərləri olan dialoq belə görünəcək:
    TestMace. Sürətli başlanğıc
  2. Giriş sorğusundan bu başlığı deaktiv edin. Bu başa düşüləndir: giriş zamanı bizdə hələ əlamət yoxdur və biz onu bu sorğu ilə quraşdıracağıq. Buna görə də, sekmedeki sorğunun giriş interfeysində Başlıkları sahəsində Miras Avtorizasiya başlığını işarədən çıxarın.

Hamısı budur. İndi avtorizasiya başlığı giriş node istisna olmaqla, Layihə qovşağının uşaqları olan bütün sorğulara əlavə olunacaq. Belə çıxır ki, indiki mərhələdə artıq hazır ssenarimiz var və bizə sadəcə onu işə salmaq qalır. Seçməklə skripti işlədə bilərsiniz qaçış Layihə qovşağının kontekst menyusunda.

Postun yaradılmasının düzgünlüyünün yoxlanılması

Bu mərhələdə skriptimiz daxil ola və avtorizasiya işarəsindən istifadə edərək yazı yarada bilər. Bununla belə, yeni yaradılan postun düzgün adına malik olduğundan əmin olmalıyıq. Yəni, mahiyyət etibarı ilə yalnız aşağıdakıları etmək qalır:

  • id ilə yazı almaq üçün sorğu göndərin,
  • Yazı yaratarkən serverdən alınan adın göndərilən ada uyğun olduğunu yoxlayın

Gəlin ilk addıma baxaq. İd dəyəri skriptin icrası zamanı müəyyən edildiyi üçün dinamik dəyişən yaratmalısınız (gəlin onu çağıraq postId) qovşaqdan yaratmaq-post Layihə qovşağı səviyyəsində. Bunu necə edəcəyimizi artıq bilirik, sadəcə bölməyə müraciət edin Tokeni dəyişənə qeyd edin. Bu id-dən istifadə edərək yazı almaq üçün sorğu yaratmaq qalır. Bunun üçün bir RequestStep yaradaq post almaq aşağıdakı parametrlərlə:

  • Sorğu növü: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

İkinci addımı həyata keçirmək üçün biz tanış olmalıyıq İddia düyün. Təsdiq qovşağı xüsusi sorğular üçün çek yazmağa imkan verən bir qovşaqdır. Hər Təsdiq node bir neçə təsdiq (yoxlama) ehtiva edə bilər. Bütün növ iddialar haqqında ətraflı oxuya bilərsiniz sənədləşdirmə. istifadə edəcəyik Compare operatorla təsdiq equal. İddialar yaratmağın bir neçə yolu var:

  1. Uzun. RequestStep qovşağının kontekst menyusundan Təsdiq qovşağını əl ilə yaradın. Yaradılmış Təsdiq qovşağında maraq təsdiqini əlavə edin və sahələri doldurun.
  2. Tez. Kontekst menyusundan istifadə edərək RequestStep node cavabından təsdiqlə birlikdə Təsdiq nodu yaradın

İkinci üsuldan istifadə edək. Bizim işimiz üçün belə görünəcək.

TestMace. Sürətli başlanğıc

Başa düşməyənlər üçün nə baş verir:

  1. Düyündə sorğu göndərin post almaq
  2. Nişanda Ayrıldı cavab verin, kontekst menyusuna zəng edin və seçin Təsdiq yaradın -> müqayisə etmək -> Bərabər

Təbrik edirik, ilk testimizi yaratdıq! Sadə, elə deyilmi? İndi skripti tamamilə işlədə və nəticədən həzz ala bilərsiniz. Yalnız onu bir az refaktor etmək və çıxarmaq qalır title ayrı bir dəyişənə çevrilir. Ancaq bunu sizə ev tapşırığı olaraq buraxacağıq)

Nəticə

Bu təlimatda biz tam hüquqlu bir ssenari yaratdıq və eyni zamanda məhsulumuzun bəzi xüsusiyyətlərini nəzərdən keçirdik. Əlbəttə ki, biz bütün funksionallıqlardan istifadə etmədik və növbəti məqalələrdə TestMace-in imkanları haqqında ətraflı məlumat verəcəyik. Bizimlə qalın!

PS Bütün addımları təkrar etmək üçün çox tənbəl olanlar üçün, biz lütfən qeyd etdik anbar məqalədən layihə ilə. ilə aça bilərsiniz fayl -> Açıq layihə və Layihə qovluğunu seçin.

Mənbə: www.habr.com

Добавить комментарий