Zakaj je TestMace boljši od Postmana

Zakaj je TestMace boljši od Postmana

Pozdravljeni vsi, izvolite TestMace! Morda marsikdo ve za nas iz naših prejšnjih članki. Za tiste, ki ste se pravkar pridružili: razvijamo IDE za delo z API-jem TestMace. Najpogostejše vprašanje pri primerjavi TestMace s konkurenčnimi izdelki je "V čem se razlikujete od Postmana?" Odločili smo se, da je čas, da na to vprašanje podamo podroben odgovor. Spodaj smo orisali naše prednosti pred Poštar.

Razdelitev na vozlišča

Če delate s Postmanom, potem veste, da vmesnik za zahteve vsebuje vse potrebne funkcionalnosti. Obstajajo skripte, testi in pravzaprav same poizvedbe. To olajša začetnikom, vendar v velikih scenarijih ta pristop ni prilagodljiv. Kaj pa, če želite ustvariti več poizvedb in jih združiti? Kaj pa, če želite izvesti skript brez zahteve ali več logično ločenih skriptov v vrsti? Navsezadnje bi bilo dobro ločiti teste od običajnih skriptov pripomočkov. Poleg tega pristop »dodaj vse funkcionalnosti v eno vozlišče« ni razširljiv - vmesnik hitro postane preobremenjen.

TestMace na začetku vse funkcionalnosti razdeli na različne vrste vozlišč. Ali želite poslati zahtevo? Zate je korak zahteve vozlišče Ali želite napisati scenarij? Zate je script vozlišče Potrebujete teste? Prosim - Trditev vozlišče Oh ja, še vedno lahko zavijete vso to stvar mapa vozlišče In vse to lahko enostavno kombinirate med seboj. Ta pristop ni le zelo fleksibilen, temveč vam v skladu z načelom enkratne odgovornosti omogoča uporabo le tistega, kar trenutno resnično potrebujete. Zakaj potrebujem skripte in teste, če želim samo poslati zahtevo?

Človeku berljiva oblika projekta

Med TestMace in Postman obstaja konceptualna razlika v načinu njunega shranjevanja. V programu Postman so vse zahteve shranjene nekje v lokalni shrambi. Če je treba zahteve deliti med več uporabniki, morate uporabiti vgrajeno sinhronizacijo. Pravzaprav je to splošno sprejet pristop, vendar ne brez pomanjkljivosti. Kaj pa varnost podatkov? Navsezadnje politika nekaterih podjetij morda ne dovoljuje shranjevanja podatkov pri tretjih osebah. Vendar menimo, da lahko TestMace ponudi nekaj boljšega! In ime te izboljšave je »človeku berljiva oblika projekta«.

Začnimo z dejstvom, da v TestMace načeloma obstaja entiteta "projekt". In aplikacija je bila prvotno razvita z namenom shranjevanja projektov v sistemih za nadzor različic: projektno drevo je skoraj ena na ena projicirano na datotečno strukturo, yaml se uporablja kot format za shranjevanje (brez dodatnih oklepajev in vejic) in datotečna predstavitev vsakega vozlišča je podrobno opisana v dokumentaciji s komentarji. Toda v večini primerov ne boste pogledali tja - vsa imena polj imajo logična imena.

Kaj to daje uporabniku? To vam omogoča zelo prilagodljivo spreminjanje delovnega toka ekipe z uporabo znanih pristopov. Na primer, razvijalci lahko shranijo projekt v isti repozitorij kot zaledje. V vejah lahko razvijalec poleg spremembe same baze kode popravi obstoječe poizvedbene skripte in teste. Po vnosu sprememb v repozitorij (git, svn, mercurial - kar vam je najbolj všeč), CI (vaš najljubši, ki ga nihče ni vsilil) zažene naš konzolni pripomoček testmace-cli, in poročilo, prejeto po izvedbi (na primer v formatu junit, ki je podprt tudi v testmace-cli), se pošlje ustreznemu sistemu. In zgoraj omenjeni varnostni problem ni več problem.

Kot lahko vidite, TestMace ne vsiljuje svojega ekosistema in paradigme. Namesto tega se zlahka prilega ustaljenim procesom.

Dinamične spremenljivke

TestMace sledi konceptu brez kode: če je težavo mogoče rešiti brez uporabe kode, poskušamo zagotoviti to priložnost. Delo s spremenljivkami je točno tista funkcionalnost, kjer v večini primerov lahko brez programiranja.

Primer: prejeli smo odgovor s strežnika in želimo del odgovora shraniti v spremenljivko. V Postmanu bi v testnem skriptu (kar je samo po sebi čudno) zapisali nekaj takega:

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

Toda po našem mnenju je pisanje scenarija za tako preprost in pogosto uporabljen scenarij videti odveč. Zato je v TestMace možno s pomočjo grafičnega vmesnika spremenljivki dodeliti delček odgovora. Poglejte, kako preprosto je:

Zakaj je TestMace boljši od Postmana

In zdaj bo ta dinamična spremenljivka posodobljena z vsako zahtevo. Vendar lahko ugovarjate in trdite, da je pristop Postman bolj prilagodljiv in vam omogoča ne samo dodelitev, ampak tudi izvedbo predprocesiranja. Tukaj je opisano, kako spremenite prejšnji primer:

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

No, za ta namen ima TestMace script vozlišče, ki pokriva ta scenarij. Če želite reproducirati prejšnji primer, vendar ga je že izvedel TestMace, morate ustvariti skriptno vozlišče, ki sledi zahtevi, in uporabiti naslednjo kodo kot skript:

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

Kot lahko vidite, je tudi tukaj sestava vozlišč dobro služila. In za tako preprost primer, kot je opisan zgoraj, lahko preprosto dodelite izraz ${crypto.MD5($response.data)} spremenljivka, ustvarjena prek GUI!

Izdelava testov preko GUI

Postman vam omogoča ustvarjanje testov s pisanjem skriptov (v primeru Postmana je to JavaScript). Ta pristop ima številne prednosti - skoraj neomejeno prilagodljivost, razpoložljivost že pripravljenih rešitev itd.

Vendar pa je realnost velikokrat taka (mi nismo takšni, življenje je takšno), da tester nima programerskih veščin, bi pa rad ekipi prinesel korist že zdaj. V takšnih primerih vam TestMace po konceptu brez kode omogoča ustvarjanje preprostih testov prek grafičnega uporabniškega vmesnika brez pisanja skriptov. Tukaj je na primer videti postopek ustvarjanja testa, ki primerja vrednosti za enakost:

Zakaj je TestMace boljši od Postmana

Vendar izdelava testov v grafičnem urejevalniku te možnosti ne odpravi pisanje testov v kodi. Tu so vse iste knjižnice kot v skriptnem vozlišču in chai za pisanje testov.

Pogosto se pojavijo situacije, ko je treba določeno poizvedbo ali celo celoten skript večkrat izvesti v različnih delih projekta. Primer takšnih zahtev je lahko večstopenjska avtorizacija po meri, spravljanje okolja v želeno stanje itd. Na splošno, če govorimo o programskih jezikih, bi radi imeli funkcije, ki jih je mogoče ponovno uporabiti v različnih delih aplikacije. V TestMace to funkcijo izvaja povezava vozlišče Je zelo enostaven za uporabo:
1) ustvarite poizvedbo ali skript
2) ustvarite vozlišče tipa Link
3) v parametrih določite povezavo do skripta, ustvarjenega v prvem koraku

V naprednejši različici lahko določite, katere dinamične spremenljivke iz skripta se posredujejo na višjo raven glede na povezavo. Zveni zmedeno? Recimo, da smo ustvarili mapo z imenom create-post, znotraj katerega je temu vozlišču dodeljena dinamična spremenljivka postId. Zdaj v vozlišču Link create-post-link lahko izrecno določite, da spremenljivka postId dodeljeno predniku create-post-link. Ta mehanizem (spet v programskem jeziku) se lahko uporabi za vrnitev rezultata iz "funkcije". Na splošno je kul, DRY je v polnem teku in spet ni bila poškodovana niti ena vrstica kode.

Zakaj je TestMace boljši od Postmana

Kar zadeva poštarja, obstaja funkcija zahteve za ponovno uporabo zahtev visi od leta 2015, in zdi se, da celo obstaja nekaj namigovda delajo na tem problemu. V svoji trenutni obliki ima Postman seveda možnost spreminjanja niti izvajanja, kar v teoriji verjetno omogoča izvajanje podobnega vedenja, vendar je to bolj umazan vdor kot resnično delujoč pristop.

Druge razlike

  • Večji nadzor nad obsegom spremenljivk. Najmanjši obseg, znotraj katerega je mogoče definirati spremenljivko v Postmanu, je zbirka. TestMace vam omogoča definiranje spremenljivk za katero koli poizvedbo ali mapo. V Postman Share collection vam omogoča izvoz samo zbirk, medtem ko v TestMace delitev deluje za katero koli vozlišče
  • TestMace podpira podedovane glave, ki jih je mogoče privzeto zamenjati v podrejene poizvedbe. Poštar ima nekaj o tem: naloga, in je celo zaprt, vendar se ponuja kot rešitev ... uporabljajte skripte. V TestMace je vse to konfigurirano prek GUI in obstaja možnost, da po želji onemogočite podedovane glave v določenih potomcih
  • Razveljavi/Ponovi. Deluje ne le pri urejanju vozlišč, ampak tudi pri premikanju, brisanju, preimenovanju in drugih operacijah, ki spreminjajo strukturo projekta
  • Datoteke, priložene zahtevam, postanejo del projekta in se shranijo pri njem, pri tem pa so popolnoma sinhronizirane, za razliko od Postmana. (Da, ni vam več treba ročno izbirati datotek ob vsakem zagonu in jih prenašati kolegom v arhive)

Funkcije, ki so že na poti

Nismo se mogli upreti skušnjavi, da bi nad naslednjimi izdajami odgrnili tančico skrivnosti, še posebej, ko je funkcionalnost zelo okusna in je že v poliranju pred izdajo. Torej, spoznajmo se.

Funkcije

Kot veste, Postman za ustvarjanje vrednosti uporablja tako imenovane dinamične spremenljivke. Njihov seznam je impresiven in velika večina funkcij se uporablja za ustvarjanje lažnih vrednosti. Na primer, če želite ustvariti naključno e-pošto, morate napisati:

{{$randomEmail}}

Ker pa so to spremenljivke (čeprav dinamične), jih ni mogoče uporabiti kot funkcije: ni jih mogoče parametrizirati, zato iz niza ne bo mogoče vzeti zgoščene vrednosti.

V TestMace nameravamo dodati "poštene" funkcije. Tik znotraj ${} bo mogoče ne samo dostopati do spremenljivke, ampak tudi poklicati funkcijo. Tisti. če boste morali ustvariti zloglasno lažno e-pošto, vam bomo preprosto pisali

${faker.internet.email()}

Poleg dejstva, da gre za funkcijo, boste opazili, da je mogoče na objektu poklicati metodo. In namesto velikega ploščatega seznama dinamičnih spremenljivk imamo nabor logično združenih objektov.

Kaj pa, če želimo izračunati zgoščenost niza? Enostavno!

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

Opazili boste, da lahko celo posredujete spremenljivke kot parametre! Na tej točki lahko vedoželjni bralec posumi, da nekaj ni v redu ...

Uporaba JavaScripta v izrazih

... In z dobrim razlogom! Ko so se oblikovale zahteve za funkcije, smo nenadoma prišli do zaključka, da je veljaven javascript treba zapisati v izrazih. Zdaj lahko prosto pišete izraze, kot so:

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

In vse to brez skriptov, kar v vnosnih poljih!

Kar se tiče Postmana, tukaj lahko uporabljate samo spremenljivke in ko poskušate napisati najmanjši izraz, validator preklinja in ga noče izračunati.

Zakaj je TestMace boljši od Postmana

Napredno samodejno dokončanje

Trenutno ima TestMace standardno samodejno dokončanje, ki je videti takole:

Zakaj je TestMace boljši od Postmana

Tukaj je poleg vrstice za samodejno dokončanje navedeno, čemu ta vrstica pripada. Ta mehanizem deluje samo v izrazih, obdanih z oklepaji ${}.

Kot lahko vidite, so bili dodani vizualni označevalci, ki označujejo vrsto spremenljivke (na primer niz, število, matrika itd.). Spremenite lahko tudi načine samodokončanja (na primer, izberete lahko samodokončanje s spremenljivkami ali glavami). A tudi to ni najpomembnejše!

Prvič, samodokončanje deluje tudi v izrazih (kjer je to mogoče). Takole izgleda:

Zakaj je TestMace boljši od Postmana

In drugič, samodejno dokončanje je zdaj na voljo v skriptih. Oglejte si, kako deluje!

Zakaj je TestMace boljši od Postmana

Te funkcionalnosti nima smisla primerjati s Postmanom - tam je samodokončanje omejeno le na statične sezname spremenljivk, glav in njihovih vrednosti (popravite me, če sem kaj pozabil). Skripte niso samodokončane :)

Zaključek

Oktobra je minilo leto dni od začetka razvoja naših izdelkov. V tem času nam je uspelo marsikaj postoriti in v nekaterih pogledih ujeti tekmece. Kakor koli že, naš cilj je narediti resnično priročno orodje za delo z API-ji. Čaka nas še veliko dela, tukaj je okviren načrt razvoja našega projekta za prihodnje leto: https://testmace.com/roadmap.

Vaše povratne informacije nam bodo omogočile boljšo navigacijo med obilico funkcij, vaša podpora pa nam daje moč in zaupanje, da delamo pravo stvar. Tako se zgodi, da je danes pomemben dan za naš projekt - dan, ko je bil TestMace objavljen ProductHunt. Prosimo, podprite naš projekt, za nas je zelo pomemben. Poleg tega je danes na naši strani PH mamljiva ponudba, ki je omejena

Vir: www.habr.com

Dodaj komentar