Kodėl „TestMace“ yra geresnis nei „Postman“.

Kodėl „TestMace“ yra geresnis nei „Postman“.

Sveiki visi, štai TestMace! Galbūt daugelis žmonių apie mus žino iš mūsų ankstesnis straipsniai. Tiems, kurie ką tik prisijungė: kuriame IDE dirbti su TestMace API. Dažniausiai užduodamas klausimas lyginant TestMace su konkuruojančiais produktais yra „Kuo jūs skiriasi nuo Postman? Nusprendėme, kad atėjo laikas pateikti išsamų atsakymą į šį klausimą. Žemiau apibūdinome savo pranašumus Paštininkas.

Padalijimas į mazgus

Jei dirbate su „Postman“, žinote, kad užklausos sąsajoje yra visos būtinos funkcijos. Yra scenarijai, testai ir, tiesą sakant, pačios užklausos. Tai palengvina pradedantiesiems, tačiau dideliuose scenarijuose šis metodas nėra lankstus. Ką daryti, jei norite sukurti kelias užklausas ir atlikti jų apibendrinimą? Ką daryti, jei norite paleisti scenarijų be užklausos arba kelis logiškai atskirtus scenarijus iš eilės? Galų gale, verta atskirti testus nuo įprastų paslaugų scenarijų. Be to, metodas „pridėkite visas funkcijas į vieną mazgą“ nėra keičiamas – sąsaja greitai perkraunama.

„TestMace“ iš pradžių padalija visas funkcijas į skirtingų tipų mazgus. Ar norėtumėte pateikti užklausą? Tai skirta tau prašymo žingsnis mazgas Ar norite parašyti scenarijų? Tai skirta tau scenarijus mazgas Reikia testų? Prašau - Tvirtinimas mazgas O taip, vis tiek galite suvynioti visa tai folder mazgas Ir visa tai galima nesunkiai derinti tarpusavyje. Toks požiūris ne tik labai lankstus, bet ir, vadovaujantis vienos atsakomybės principu, leidžia naudoti tik tai, ko šiuo metu tikrai reikia. Kodėl man reikia scenarijų ir testų, jei noriu tik pateikti užklausą?

Žmonėms skaitomas projekto formatas

„TestMace“ ir „Postman“ konceptualiai skiriasi jų saugojimo būdu. „Postman“ visos užklausos saugomos kažkur vietinėje saugykloje. Jei reikia bendrinti užklausas tarp kelių vartotojų, turite naudoti integruotą sinchronizavimą. Tiesą sakant, tai yra visuotinai priimtas metodas, tačiau ne be trūkumų. O kaip su duomenų saugumu? Juk kai kurių įmonių politika gali neleisti saugoti duomenų su trečiosiomis šalimis. Tačiau manome, kad „TestMace“ turi ką nors geresnio pasiūlyti! Ir šio patobulinimo pavadinimas yra „žmogui skaitomas projekto formatas“.

Pradėkime nuo to, kad „TestMace“ iš esmės yra „projekto“ esybė. Ir iš pradžių programa buvo sukurta siekiant saugoti projektus versijų valdymo sistemose: projektų medis beveik vienas prieš vieną projektuojamas failo struktūroje, yaml naudojamas kaip saugojimo formatas (be papildomų skliaustų ir kablelių), o Kiekvieno mazgo failo atvaizdavimas išsamiai aprašytas dokumentacijoje su komentarais. Tačiau daugeliu atvejų ten nežiūrėsite – visi laukų pavadinimai turi loginius pavadinimus.

Ką tai duoda vartotojui? Tai leidžia labai lanksčiai keisti komandos darbo eigą, naudojant pažįstamus metodus. Pavyzdžiui, kūrėjai gali saugoti projektą toje pačioje saugykloje kaip ir užpakalinė programa. Filialuose, be pačios kodo bazės keitimo, kūrėjas gali pataisyti esamus užklausų scenarijus ir testus. Atlikus saugyklos pakeitimus (git, svn, mercurial – kas jums labiausiai patinka), CI (jūsų mėgstamiausias, niekieno neprimestas) paleidžia mūsų konsolės programą testmace-cli, o po vykdymo gauta ataskaita (pavyzdžiui, junit formatu, kuris palaikomas ir testmace-cli) siunčiama į atitinkamą sistemą. Ir minėta saugumo problema nebėra problema.

Kaip matote, „TestMace“ neprimeta savo ekosistemos ir paradigmos. Vietoj to, jis lengvai įsilieja į nustatytus procesus.

Dinaminiai kintamieji

TestMace vadovaujasi be kodo koncepcija: jei problemą galima išspręsti nenaudojant kodo, mes stengiamės suteikti tokią galimybę. Darbas su kintamaisiais yra būtent toks funkcionalumas, kai daugeliu atvejų galima apsieiti be programavimo.

Pavyzdys: gavome atsakymą iš serverio ir norime dalį atsakymo įrašyti į kintamąjį. „Postman“ bandomajame scenarijuje (kas savaime keista) parašytume maždaug taip:

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

Tačiau, mūsų nuomone, tokio paprasto ir dažnai naudojamo scenarijaus scenarijaus rašymas atrodo perteklinis. Todėl „TestMace“ galima priskirti atsakymo dalį kintamajam naudojant grafinę sąsają. Pažiūrėkite, kaip tai paprasta:

Kodėl „TestMace“ yra geresnis nei „Postman“.

Ir dabar su kiekvienu prašymu šis dinaminis kintamasis bus atnaujintas. Bet jūs galite prieštarauti, teigdami, kad paštininko metodas yra lankstesnis ir leidžia ne tik atlikti užduotį, bet ir atlikti tam tikrą išankstinį apdorojimą. Štai kaip pakeisti ankstesnį pavyzdį:

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

Na, šiuo tikslu TestMace turi scenarijus mazgas, kuris apima šį scenarijų. Norėdami atkurti ankstesnį atvejį, bet jau įvykdytą TestMace, turite sukurti scenarijaus mazgą pagal užklausą ir naudoti šį kodą kaip scenarijų:

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

Kaip matote, čia taip pat puikiai pasitarnavo mazgų sudėtis. Ir tokiam paprastam atvejui, kaip aprašyta aukščiau, galite tiesiog priskirti išraišką ${crypto.MD5($response.data)} kintamasis sukurtas naudojant GUI!

Testų kūrimas per GUI

Postman leidžia kurti testus rašant scenarijus (Postmano atveju tai yra JavaScript). Šis metodas turi daug privalumų – beveik neribotą lankstumą, paruoštų sprendimų prieinamumą ir kt.

Tačiau realybė dažnai tokia (mes ne tokie, gyvenimas toks), kad testuotojas neturi programavimo įgūdžių, bet norėtų jau dabar atnešti naudą komandai. Tokiais atvejais, vadovaudamasi be kodo koncepcija, „TestMace“ leidžia kurti paprastus testus per GUI nenaudojant scenarijų. Pavyzdžiui, štai kaip atrodo lygybės verčių palyginimo testo kūrimo procesas:

Kodėl „TestMace“ yra geresnis nei „Postman“.

Tačiau testų kūrimas grafiniame redaktoriuje nepanaikina galimybės testų rašymas kodu. Čia yra visos tos pačios bibliotekos, kaip ir scenarijaus mazge, ir Chai už testų rašymą.

Dažnai pasitaiko situacijų, kai tam tikrą užklausą ar net visą scenarijų reikia atlikti kelis kartus skirtingose ​​projekto dalyse. Tokių užklausų pavyzdys galėtų būti pasirinktinis kelių etapų autorizavimas, aplinkos perkėlimas į norimą būseną ir kt. Apskritai, kalbant apie programavimo kalbas, norėtume turėti funkcijų, kurias būtų galima pakartotinai panaudoti įvairiose programos dalyse. Programoje „TestMace“ šią funkciją atlieka ryšys mazgas Tai labai paprasta naudoti:
1) sukurti užklausą arba scenarijų
2) sukurti nuorodos tipo mazgą
3) parametruose nurodykite nuorodą į pirmame žingsnyje sukurtą scenarijų

Pažangesnėje versijoje galite nurodyti, kurie scenarijaus dinaminiai kintamieji perduodami aukštesniam lygmeniui, palyginti su nuoroda. Skamba paini? Tarkime, kad sukūrėme aplanką tokiu pavadinimu kurti-paskelbti, kuriame šiam mazgui priskiriamas dinaminis kintamasis postId. Dabar nuorodos mazge sukurti-paskelbti-nuorodą galite aiškiai nurodyti, kad kintamasis postId priskirtas protėviui sukurti-paskelbti-nuorodą. Šis mechanizmas (vėlgi, programavimo kalba) gali būti naudojamas norint grąžinti „funkcijos“ rezultatą. Apskritai, šaunu, DRY įsibėgėjo ir vėl nebuvo sugadinta nei viena kodo eilutė.

Kodėl „TestMace“ yra geresnis nei „Postman“.

Kalbant apie „Postman“, yra funkcijų užklausa pakartotiniam užklausų panaudojimui kabo nuo 2015 m, ir atrodo, kad yra net kai kurios užuominoskad jie dirba su šia problema. Dabartinėje formoje Postman, žinoma, turi galimybę pakeisti vykdymo giją, o tai teoriškai tikriausiai leidžia įgyvendinti panašų elgesį, tačiau tai daugiau nešvarus įsilaužimas, o ne tikrai veikiantis metodas.

Kiti skirtumai

  • Didesnė kintamųjų apimties kontrolė. Mažiausia apimtis, kurioje kintamąjį galima apibrėžti „Postman“, yra rinkimas. „TestMace“ leidžia apibrėžti bet kurios užklausos ar aplanko kintamuosius. „Postman Share“ rinkinys leidžia eksportuoti tik kolekcijas, o „TestMace“ bendrinimas veikia bet kuriame mazge
  • „TestMace“ palaiko paveldimos antraštės, kurios pagal numatytuosius nustatymus gali būti pakeistos antrinėmis užklausomis. Paštininkas turi kažką apie tai: iššūkis, ir jis net uždarytas, bet siūlomas kaip sprendimas... naudoti scenarijus. „TestMace“ visa tai sukonfigūruojama naudojant GUI ir yra galimybė pasirinktinai išjungti paveldėtas antraštes konkrečiuose palikuoniuose.
  • Anuliuoti / perdaryti. Veikia ne tik redaguojant mazgus, bet ir atliekant perkėlimą, trynimą, pervadinimą ir kitas operacijas, kurios keičia projekto struktūrą
  • Failai, pridedami prie užklausų, tampa projekto dalimi ir saugomi kartu su juo, tačiau yra puikiai sinchronizuojami, skirtingai nei „Postman“. (Taip, jums nebereikia rankiniu būdu pasirinkti failų kiekvieną kartą paleidus ir perkelti juos kolegoms archyvuose)

Savybės, kurios jau ruošiamos

Negalėjome atsispirti pagundai kilti paslapties šydą per kitus leidimus, ypač kai funkcionalumas yra labai skanus ir jau vyksta išankstinis poliravimas. Taigi, susitikime.

Funkcijos

Kaip žinote, „Postman“ reikšmėms generuoti naudoja vadinamuosius dinaminius kintamuosius. Jų sąrašas įspūdingas ir didžioji dauguma funkcijų yra naudojamos netikroms reikšmėms generuoti. Pavyzdžiui, norėdami sugeneruoti atsitiktinį el. laišką, turite parašyti:

{{$randomEmail}}

Tačiau kadangi tai yra kintamieji (nors ir dinamiški), jie negali būti naudojami kaip funkcijos: jie nėra parametrizuojami, todėl iš eilutės nebus galima paimti maišos.

Planuojame į „TestMace“ įtraukti „sąžiningų“ funkcijų. Tiesiogiai ${} viduje bus galima ne tik pasiekti kintamąjį, bet ir iškviesti funkciją. Tie. jei jums reikės sugeneruoti liūdnai pagarsėjusį netikrą el. laišką, mes tiesiog parašysime

${faker.internet.email()}

Be to, kad tai yra funkcija, pastebėsite, kad objekte galima iškviesti metodą. Ir vietoj didelio plokščio dinaminių kintamųjų sąrašo turime logiškai sugrupuotų objektų rinkinį.

Ką daryti, jei norime apskaičiuoti eilutės maišą? Lengvai!

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

Pastebėsite, kad netgi galite perduoti kintamuosius kaip parametrus! Šiuo metu smalsus skaitytojas gali įtarti, kad kažkas negerai...

„JavaScript“ naudojimas išraiškose

... Ir dėl geros priežasties! Kai buvo formuojami reikalavimai funkcijoms, staiga priėjome išvados, kad galiojantį javascript reikia rašyti išraiškose. Taigi dabar galite laisvai rašyti tokias išraiškas kaip:

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

Ir visa tai be scenarijų, tiesiai įvesties laukuose!

Kalbant apie Postman, čia galima naudoti tik kintamuosius, o kai bandai parašyti menkiausią išraišką, validatorius keikia ir atsisako ją skaičiuoti.

Kodėl „TestMace“ yra geresnis nei „Postman“.

Išplėstinis automatinis užbaigimas

Šiuo metu „TestMace“ turi standartinį automatinį užbaigimą, kuris atrodo taip:

Kodėl „TestMace“ yra geresnis nei „Postman“.

Čia, be automatinio užpildymo eilutės, nurodoma, kam priklauso ši eilutė. Šis mechanizmas veikia tik išraiškose, apsuptose skliaustuose ${}.

Kaip matote, buvo pridėti vaizdiniai žymekliai, nurodantys kintamojo tipą (pavyzdžiui, eilutė, skaičius, masyvas ir kt.). Taip pat galite keisti automatinio užbaigimo režimus (pavyzdžiui, galite pasirinkti automatinį užbaigimą su kintamaisiais arba antraštėmis). Bet net tai nėra svarbiausia!

Pirma, automatinis užbaigimas veikia net išraiškose (jei įmanoma). Štai kaip atrodo:

Kodėl „TestMace“ yra geresnis nei „Postman“.

Antra, automatinis užbaigimas dabar galimas scenarijuose. Pažiūrėkite, kaip tai veikia!

Kodėl „TestMace“ yra geresnis nei „Postman“.

Nėra prasmės lyginti šią funkciją su „Postman“ - automatinis užbaigimas apsiriboja tik statiniais kintamųjų sąrašais, antraštėmis ir jų reikšmėmis (pataisykite mane, jei ką nors pamiršau). Scenarijai nėra automatiškai užbaigiami :)

išvada

Spalį sukako metai nuo mūsų produktų kūrimo pradžios. Per šį laiką spėjome nuveikti daug dalykų ir kai kuriais aspektais pasivyti konkurentus. Bet kaip ten bebūtų, mūsų tikslas yra sukurti tikrai patogų įrankį darbui su API. Turime dar daug ką nuveikti, štai apytikslis ateinančių metų mūsų projekto plėtros planas: https://testmace.com/roadmap.

Jūsų atsiliepimai leis mums geriau naršyti po funkcijų gausą, o jūsų palaikymas suteiks jėgų ir pasitikėjimo, kad elgiamės teisingai. Taip atsitiko, kad šiandien yra svarbi diena mūsų projektui – diena, kurią buvo paskelbtas TestMace ProductHunt. Prašome paremti mūsų projektą, jis mums labai svarbus. Be to, šiandien mūsų PH puslapyje yra viliojantis pasiūlymas, kurio kiekis ribotas

Šaltinis: www.habr.com

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