Niyə TestMace Postmandan daha yaxşıdır

Niyə TestMace Postmandan daha yaxşıdır

Hər kəsə salam, buyurun TestMace! Ola bilsin ki, bizim haqqımızda çoxları bilir bizim əvvəlki məqalələr. Yeni qoşulanlar üçün: biz TestMace API ilə işləmək üçün IDE hazırlayırıq. TestMace-i rəqib məhsullarla müqayisə edərkən ən çox verilən sual "Poçtmandan nə ilə fərqlənirsiniz?" Qərara gəldik ki, bu suala ətraflı cavab verməyin vaxtı çatıb. Aşağıda üstünlüklərimizi qeyd etdik Poçtalyon.

Düyünlərə bölünmə

Əgər siz Postman ilə işləyirsinizsə, onda bilirsiniz ki, sorğu interfeysi bütün lazımi funksiyaları ehtiva edir. Skriptlər, testlər və əslində sorğuların özləri var. Bu, yeni başlayanlar üçün işi asanlaşdırır, lakin böyük ssenarilərdə bu yanaşma çevik deyil. Bir neçə sorğu yaratmaq və onlar üzərində aqreqasiya etmək istəsəniz nə etməli? Bir skripti sorğusuz və ya ardıcıl olaraq bir neçə məntiqi ayrılmış skript olmadan yerinə yetirmək istəsəniz nə etməli? Axı, testləri adi kommunal skriptlərdən ayırmaq yaxşı bir fikirdir. Bundan əlavə, "bütün funksionallığı bir node əlavə edin" yanaşması miqyaslana bilməz - interfeys tez bir zamanda həddən artıq yüklənir.

TestMace əvvəlcə bütün funksionallığı müxtəlif növ qovşaqlara bölür. Müraciət etmək istərdinizmi? Bu sizin üçündür tələb addımı düyün Ssenari yazmaq istəyirsən? Bu sizin üçündür yazı düyün Testlər lazımdır? zəhmət olmasa - İddia düyün Oh, bəli, siz hələ də bütün bunları bağlaya bilərsiniz qovluq düyün Və bütün bunlar bir-biri ilə asanlıqla birləşdirilə bilər. Bu yanaşma təkcə çox çevik deyil, həm də vahid məsuliyyət prinsipinə uyğun olaraq, yalnız hazırda həqiqətən ehtiyacınız olandan istifadə etməyə imkan verir. Sadəcə sorğu vermək istəyirəmsə, niyə skriptlərə və testlərə ehtiyacım var?

İnsan tərəfindən oxuna bilən layihə formatı

TestMace və Postman arasında saxlanma üsulu ilə konseptual fərq var. Poçtalyonda bütün sorğular yerli yaddaşda bir yerdə saxlanılır. Bir neçə istifadəçi arasında sorğu paylaşmağa ehtiyac varsa, o zaman daxili sinxronizasiyadan istifadə etməlisiniz. Əslində, bu, ümumi qəbul edilmiş bir yanaşmadır, lakin çatışmazlıqları da yoxdur. Bəs məlumat təhlükəsizliyi? Axı, bəzi şirkətlərin siyasəti məlumatların üçüncü tərəflərlə saxlanmasına icazə verməyə bilər. Bununla belə, biz düşünürük ki, TestMace-in təklif edə biləcəyi daha yaxşı bir şey var! Və bu təkmilləşdirmənin adı “insan tərəfindən oxuna bilən layihə formatıdır”.

TestMace-də, prinsipcə, bir "layihə" varlığından başlayaq. Tətbiq əvvəlcə layihələrin versiyaya nəzarət sistemlərində saxlanması üçün hazırlanmışdır: layihə ağacı demək olar ki, tək-tək fayl strukturuna proqnozlaşdırılır, yaml yaddaş formatı kimi istifadə olunur (əlavə mötərizələr və vergüllər olmadan) və hər bir node fayl təmsil şərhlər ilə sənədlərdə ətraflı təsvir edilmişdir. Ancaq əksər hallarda ora baxmayacaqsınız - bütün sahə adlarının məntiqi adları var.

Bu istifadəçiyə nə verir? Bu, tanış yanaşmalardan istifadə edərək komandanın iş axınını çox çevik şəkildə dəyişməyə imkan verir. Məsələn, tərtibatçılar layihəni backend ilə eyni depoda saxlaya bilərlər. Filiallarda, kod bazasının özünü dəyişdirməklə yanaşı, tərtibatçı mövcud sorğu skriptlərini və testlərini düzəldə bilər. Repozitoriyada dəyişikliklər etdikdən sonra (git, svn, mercurial - ən çox bəyəndiyiniz), CI (sevdiyiniz, heç kim tərəfindən qoyulmayan) bizim konsol yardım proqramını işə salır. testmace-cli, və icradan sonra alınan hesabat (məsələn, testmace-cli-də də dəstəklənən junit formatında) müvafiq sistemə göndərilir. Və yuxarıda qeyd olunan təhlükəsizlik problemi artıq problem deyil.

Gördüyünüz kimi, TestMace öz ekosistemini və paradiqmasını tətbiq etmir. Əksinə, o, asanlıqla qurulmuş proseslərə uyğunlaşır.

Dinamik Dəyişənlər

TestMace kodsuz konsepsiyaya əməl edir: əgər problem koddan istifadə etmədən həll oluna bilərsə, biz bu imkanı təmin etməyə çalışırıq. Dəyişənlərlə işləmək, əksər hallarda proqramlaşdırmadan edə biləcəyiniz funksionallıqdır.

Nümunə: biz serverdən cavab aldıq və biz cavabın bir hissəsini dəyişəndə ​​saxlamaq istəyirik. Postmanda, bir test skriptində (özlüyündə qəribədir) belə bir şey yazardıq:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Amma fikrimizcə, belə sadə və tez-tez istifadə olunan ssenari üçün ssenari yazmaq lazımsız görünür. Buna görə də, TestMace-də qrafik interfeysdən istifadə edərək dəyişənə cavabın bir hissəsini təyin etmək mümkündür. Görün nə qədər sadədir:

Niyə TestMace Postmandan daha yaxşıdır

İndi hər sorğu ilə bu dinamik dəyişən yenilənəcək. Lakin siz Postman yanaşmasının daha çevik olduğunu və nəinki tapşırıq verməyə, həm də bəzi əvvəlcədən emal etməyə imkan verdiyini iddia edərək etiraz edə bilərsiniz. Əvvəlki nümunəni necə dəyişdirmək olar:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Yaxşı, bu məqsədlə TestMace var yazı bu ssenarini əhatə edən node. Əvvəlki, lakin artıq TestMace tərəfindən yerinə yetirilən işi təkrarlamaq üçün sorğudan sonra skript node yaratmalı və aşağıdakı kodu skript olaraq istifadə etməlisiniz:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Gördüyünüz kimi, qovşaqların tərkibi burada da yaxşı xidmət etdi. Və yuxarıda göstərildiyi kimi sadə bir vəziyyət üçün sadəcə ifadə təyin edə bilərsiniz ${crypto.MD5($response.data)} GUI vasitəsilə yaradılmış dəyişən!

GUI vasitəsilə testlərin yaradılması

Postman skriptlər yazmaqla testlər yaratmağa imkan verir (Poçtman vəziyyətində bu JavaScript-dir). Bu yanaşmanın bir çox üstünlükləri var - demək olar ki, qeyri-məhdud çeviklik, hazır həllərin mövcudluğu və s.

Ancaq reallıq çox vaxt belə olur (biz belə deyilik, həyat belədir) testerin proqramlaşdırma bacarığı yoxdur, amma o, komandaya elə indi fayda gətirmək istəyir. Belə hallar üçün kodsuz konsepsiyaya əməl edərək, TestMace sizə skript yazmağa müraciət etmədən GUI vasitəsilə sadə testlər yaratmağa imkan verir. Məsələn, bərabərlik üçün dəyərləri müqayisə edən bir test yaratmaq prosesi belə görünür:

Niyə TestMace Postmandan daha yaxşıdır

Bununla belə, qrafik redaktorda testlər yaratmaq imkanı aradan qaldırmır testlərin kodda yazılması. Bütün eyni kitabxanalar skript qovşağında olduğu kimi buradadır və Chai yazı testləri üçün.

Layihənin müxtəlif hissələrində müəyyən bir sorğunun və ya hətta bütöv bir skriptin bir neçə dəfə icra edilməsi lazım olduqda tez-tez vəziyyətlər yaranır. Bu cür sorğulara misal olaraq fərdi çoxmərhələli avtorizasiya, ətraf mühitin istənilən vəziyyətə gətirilməsi və s. ola bilər. Ümumiyyətlə, proqramlaşdırma dilləri baxımından danışsaq, tətbiqin müxtəlif hissələrində təkrar istifadə edilə bilən funksiyalara sahib olmaq istərdik. TestMace-də bu funksiyanı yerinə yetirir əlaqə düyün İstifadəsi çox asandır:
1) sorğu və ya skript yaradın
2) Link tipli qovşaq yaradın
3) parametrlərdə ilk addımda yaradılmış skriptə keçidi göstərin

Daha təkmil versiyada skriptdən hansı dinamik dəyişənlərin keçidə nisbətən daha yüksək səviyyəyə ötürüldüyünü təyin edə bilərsiniz. Qarışıq səslənir? Deyək ki, adı olan Qovluq yaratdıq yaratmaq-post, daxilində bu node üçün dinamik dəyişən təyin olunur postId. İndi Link node-da bağlantı yaratmaq dəyişəni açıq şəkildə təyin edə bilərsiniz postId bir əcdadına təyin edilmişdir bağlantı yaratmaq. Bu mexanizm (yenə proqramlaşdırma dilində) “funksiyadan” nəticə qaytarmaq üçün istifadə edilə bilər. Ümumiyyətlə, sərindir, DRY tam sürətlə işləyir və yenə bir kod sətri zədələnmədi.

Niyə TestMace Postmandan daha yaxşıdır

Postmana gəldikdə, sorğuların təkrar istifadəsi üçün bir xüsusiyyət sorğusu var 2015-ci ildən asılıb, və görünür, hətta var bəzi göstərişlərki, onlar bu problem üzərində işləyirlər. Hazırkı formada Postman, əlbəttə ki, icra telini dəyişdirmək qabiliyyətinə malikdir, bu, ehtimal ki, nəzəri cəhətdən oxşar davranışı həyata keçirməyə imkan verir, lakin bu, həqiqətən işləyən yanaşmadan daha çox çirkli bir hackdir.

Digər fərqlər

  • Dəyişənlərin əhatə dairəsinə daha çox nəzarət. Postman-da dəyişənin müəyyən edilə biləcəyi ən kiçik əhatə dairəsi kolleksiyadır. TestMace istənilən sorğu və ya qovluq üçün dəyişənləri təyin etməyə imkan verir. Postman Share kolleksiyasında yalnız kolleksiyaları ixrac etməyə imkan verir, TestMace-də isə paylaşım hər hansı bir node üçün işləyir
  • TestMace dəstəkləyir irsi başlıqlar, defolt olaraq uşaq sorğularla əvəz edilə bilər. Poçtalyonun bununla bağlı bir şeyi var: vəzifə, və hətta bağlanıb, lakin həll yolu kimi təklif olunur... skriptlərdən istifadə edin. TestMace-də bunların hamısı GUI vasitəsilə konfiqurasiya edilir və xüsusi nəsillərdə irsi başlıqları isteğe bağlı olaraq deaktiv etmək imkanı var.
  • Geri al/təkrar et. Yalnız qovşaqları redaktə edərkən deyil, həm də layihənin strukturunu dəyişdirən köçürmə, silmə, adının dəyişdirilməsi və digər əməliyyatlar zamanı işləyir.
  • Sorğulara əlavə edilmiş fayllar layihənin bir hissəsi olur və Postmandan fərqli olaraq mükəmməl sinxronlaşdırılmaqla birlikdə onunla birlikdə saxlanılır. (Bəli, hər dəfə başladığınız zaman faylları əl ilə seçməyə və onları arxivdəki həmkarlarınıza köçürməyə ehtiyac yoxdur)

Artıq yolda olan xüsusiyyətlər

Növbəti buraxılışlar üzərində məxfilik pərdəsini qaldırmaq istəyinə qarşı çıxa bilmədik, xüsusən də funksionallıq çox ləzzətli olduqda və artıq buraxılışdan əvvəl cilalanmadan keçir. Elə isə gəlin görüşək.

Funksiyalar

Bildiyiniz kimi, Postman dəyərlər yaratmaq üçün sözdə dinamik dəyişənlərdən istifadə edir. Onların siyahısı təsir edicidir və funksiyaların böyük əksəriyyəti saxta dəyərlər yaratmaq üçün istifadə olunur. Məsələn, təsadüfi bir e-poçt yaratmaq üçün yazmalısınız:

{{$randomEmail}}

Bununla belə, bunlar dəyişənlər olduğundan (dinamik olsa da), onlar funksiya kimi istifadə edilə bilməz: onlar parametrləşdirilə bilməz, ona görə də sətirdən hash götürmək mümkün olmayacaq.

TestMace-ə “dürüst” funksiyalar əlavə etməyi planlaşdırırıq. ${} daxilində yalnız dəyişənə daxil olmaq deyil, həm də funksiyanı çağırmaq mümkün olacaq. Bunlar. bədnam saxta e-poçt yaratmaq lazımdırsa, biz sadəcə yazacağıq

${faker.internet.email()}

Bunun funksiya olması ilə yanaşı, obyektdə metod çağırmağın mümkün olduğunu görəcəksiniz. Və dinamik dəyişənlərin böyük düz siyahısı əvəzinə bizdə məntiqi qruplaşdırılmış obyektlər dəsti var.

Bir sətirin hashını hesablamaq istəsək nə olar? Asanlıqla!

${crypto.MD5($dynamicVar.data)}

Siz hətta dəyişənləri parametr kimi ötürə biləcəyinizi görəcəksiniz! Bu məqamda maraqlanan oxucu nəyinsə səhv olduğundan şübhələnə bilər...

İfadələrdə JavaScript-dən istifadə

... Və yaxşı səbəbdən! Funksiyalara olan tələblər formalaşan zaman birdən belə qənaətə gəldik ki, etibarlı javascript ifadələrdə yazılmalıdır. Beləliklə, indi belə ifadələr yazmaqda sərbəstsiniz:

${1 + '' + crypto.MD5('asdf')}

Və bütün bunlar skriptsiz, birbaşa giriş sahələrində!

Postmana gəlincə, burada yalnız dəyişənlərdən istifadə edə bilərsiniz və ən kiçik ifadəni yazmağa cəhd edəndə validator onu söyür və hesablamaqdan imtina edir.

Niyə TestMace Postmandan daha yaxşıdır

Qabaqcıl avtomatik tamamlama

Hal-hazırda TestMace-də bu kimi görünən standart avtomatik tamamlama var:

Niyə TestMace Postmandan daha yaxşıdır

Burada avtomatik tamamlama xətti ilə yanaşı, bu xəttin nəyə aid olduğu göstərilir. Bu mexanizm yalnız ${} mötərizələri ilə əhatə olunmuş ifadələrdə işləyir.

Gördüyünüz kimi, dəyişənin tipini (məsələn, sətir, nömrə, massiv və s.) göstərən vizual markerlər əlavə edilmişdir. Siz həmçinin avtomatik tamamlama rejimlərini dəyişə bilərsiniz (məsələn, dəyişənlər və ya başlıqlarla avtomatik tamamlamağı seçə bilərsiniz). Ancaq hətta bu ən vacib şey deyil!

Birincisi, avtomatik tamamlama hətta ifadələrdə də işləyir (mümkün olduqda). Bu belə görünür:

Niyə TestMace Postmandan daha yaxşıdır

İkincisi, avtomatik tamamlama indi skriptlərdə mövcuddur. Bunun necə işlədiyinə baxın!

Niyə TestMace Postmandan daha yaxşıdır

Bu funksionallığı Postman ilə müqayisə etməyin mənası yoxdur - avtomatik tamamlama yalnız dəyişənlərin, başlıqların və onların dəyərlərinin statik siyahıları ilə məhdudlaşır (bir şeyi unutmuşamsa, məni düzəldin). Skriptlər avtomatik tamamlanmır :)

Nəticə

Oktyabr məhsulumuzun inkişafının başlanmasından bir il keçir. Bu müddət ərzində biz çox şeylər etməyə müvəffəq olduq və müəyyən mənada rəqiblərimizə çatdıq. Ancaq nə olursa olsun, məqsədimiz API-lərlə işləmək üçün həqiqətən rahat bir alət etməkdir. Hələ görüləsi çox işimiz var, qarşıdan gələn il üçün layihəmizin inkişafı üçün təxmini planı təqdim edirik: https://testmace.com/roadmap.

Rəyiniz bizə çoxlu funksiyalar arasında daha yaxşı naviqasiya etməyə imkan verəcək və dəstəyiniz bizə güc və doğru şeyi etdiyimizə inam verir. Elə olur ki, bu gün layihəmiz üçün mühüm gündür - TestMace-in nəşr olunduğu gün ProductHunt. Zəhmət olmasa layihəmizə dəstək olun, bu bizim üçün çox önəmlidir. Üstəlik, bu gün PH səhifəmizdə cəlbedici bir təklif var və bu, məhduddur

Mənbə: www.habr.com

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