Zašto je TestMace bolji od Postmana

Zašto je TestMace bolji od Postmana

Pozdrav svima, izvolite TestMace! Možda mnogi ljudi znaju za nas iz našeg prethodni članci. Za one koji su se tek pridružili: razvijamo IDE za rad sa TestMace API-jem. Najčešće postavljano pitanje kada se TestMace uspoređuje sa konkurentskim proizvodima je „Po čemu se razlikujete od Postmana?“ Odlučili smo da je vrijeme da damo detaljan odgovor na ovo pitanje. U nastavku smo naveli naše prednosti u odnosu na Poštar.

Podjela na čvorove

Ako radite sa Postmanom, onda znate da sučelje zahtjeva sadrži sve potrebne funkcionalnosti. Postoje skripte, testovi i, zapravo, sami zahtjevi. Ovo olakšava početnicima, ali u velikim scenarijima ovaj pristup nije fleksibilan. Što ako želite kreirati nekoliko upita i izvršiti agregaciju na njima? Što ako želite izvršiti skriptu bez zahtjeva ili nekoliko logički odvojenih skripti u nizu? Na kraju krajeva, bilo bi dobro odvojiti testove od običnih uslužnih skripti. Osim toga, pristup „dodavanje svih funkcionalnosti u jedan čvor“ nije skalabilan - sučelje se brzo preopterećuje.

TestMace u početku dijeli svu funkcionalnost na različite tipove čvorova. Želite li podnijeti zahtjev? Za tebe je korak zahtjeva čvor Da li želite da napišete scenario? Za tebe je skripta čvor Trebate testove? molim te - Tvrdnja čvor O da, još uvijek možete umotati cijelu ovu stvar folder čvor I sve se to lako može kombinovati jedno s drugim. Ovaj pristup ne samo da je vrlo fleksibilan, već vam, u skladu sa principom jedinstvene odgovornosti, omogućava da koristite samo ono što vam je u ovom trenutku zaista potrebno. Zašto su mi potrebne skripte i testovi ako samo želim podnijeti zahtjev?

Čovjeku čitljiv format projekta

Postoji konceptualna razlika između TestMacea i Postmana u načinu na koji su pohranjeni. U Postman-u, svi zahtjevi su pohranjeni negdje u lokalnoj memoriji. Ako postoji potreba za dijeljenjem zahtjeva između nekoliko korisnika, onda morate koristiti ugrađenu sinhronizaciju. Zapravo, ovo je općeprihvaćen pristup, ali ne i bez nedostataka. Šta je sa sigurnošću podataka? Na kraju krajeva, politika nekih kompanija možda ne dozvoljava pohranjivanje podataka trećim licima. Međutim, mislimo da TestMace ima nešto bolje za ponuditi! A ime ovog poboljšanja je "ljudski čitljiv format projekta".

Počnimo s činjenicom da u TestMace-u, u principu, postoji “projektni” entitet. A aplikacija je inicijalno razvijena s ciljem pohranjivanja projekata u sisteme za kontrolu verzija: stablo projekta je gotovo jedan-na-jedan projektirano na strukturu datoteka, yaml se koristi kao format za pohranu (bez dodatnih zagrada i zareza), a Datotečni prikaz svakog čvora je detaljno opisan u dokumentaciji sa komentarima. Ali u većini slučajeva nećete tražiti tamo - sva imena polja imaju logička imena.

Šta ovo daje korisniku? Ovo vam omogućava da vrlo fleksibilno promijenite tok rada tima, koristeći poznate pristupe. Na primjer, programeri mogu pohraniti projekt u isto spremište kao i pozadinsko okruženje. U granama, osim promjene same baze koda, programer može ispraviti postojeće skripte upita i testove. Nakon urezivanja promjena u spremištu (git, svn, mercurial - šta god želite), CI (vaš favorit, nije nametnut od nikog) pokreće naš uslužni program za konzolu testmace-cli, a izvještaj primljen nakon izvršenja (na primjer, u junit formatu, koji je također podržan u testmace-cli) se šalje odgovarajućem sistemu. I gore pomenuti sigurnosni problem više nije problem.

Kao što vidite, TestMace ne nameće svoj ekosistem i paradigmu. Umjesto toga, lako se uklapa u ustaljene procese.

Dinamičke varijable

TestMace slijedi koncept bez koda: ako se problem može riješiti bez korištenja koda, mi pokušavamo pružiti ovu priliku. Rad sa varijablama je upravo ona vrsta funkcionalnosti u kojoj u većini slučajeva možete bez programiranja.

Primjer: primili smo odgovor od servera, a dio odgovora želimo sačuvati u varijablu. U Postmanu, u test skriptu (što je samo po sebi čudno) napisali bismo nešto poput:

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

Ali po našem mišljenju, pisanje skripte za tako jednostavan i često korišten scenario izgleda suvišno. Stoga je u TestMaceu moguće dodijeliti dio odgovora varijabli koristeći grafički interfejs. Pogledajte kako je jednostavno:

Zašto je TestMace bolji od Postmana

I sada će se sa svakim zahtjevom ova dinamička varijabla ažurirati. Ali možete prigovoriti, tvrdeći da je Postman pristup fleksibilniji i omogućava vam ne samo da dodijelite zadatak, već i da izvršite neku prethodnu obradu. Evo kako izmijeniti prethodni primjer:

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

Pa, za ovu svrhu ima TestMace skripta čvor, koji pokriva ovaj scenario. Da biste reproducirali prethodni slučaj, ali ga je TestMace već izvršio, morate kreirati čvor skripte nakon zahtjeva i koristiti sljedeći kod kao skriptu:

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

Kao što vidite, sastav čvorova je dobro poslužio i ovdje. A za tako jednostavan slučaj kao što je gore opisano, možete jednostavno dodijeliti izraz ${crypto.MD5($response.data)} varijabla kreirana preko GUI!

Kreiranje testova preko GUI

Postman vam omogućava da kreirate testove pisanjem skripti (u slučaju Postmana, ovo je JavaScript). Ovaj pristup ima mnoge prednosti - gotovo neograničenu fleksibilnost, dostupnost gotovih rješenja itd.

Međutim, realnost je često takva (mi nismo takvi, život je takav) da tester nema vještinu programiranja, ali bi htio da donese korist timu upravo sada. U takvim slučajevima, slijedeći koncept bez koda, TestMace vam omogućava da kreirate jednostavne testove kroz GUI bez pribjegavanja pisanju skripti. Evo, na primjer, kako izgleda proces kreiranja testa koji uspoređuje vrijednosti za jednakost:

Zašto je TestMace bolji od Postmana

Međutim, kreiranje testova u grafičkom uređivaču ne eliminiše tu mogućnost pisanje testova u kodu. Ovdje su sve iste biblioteke kao u čvoru skripte i chai za pisanje testova.

Često se javljaju situacije kada određeni upit ili čak cijeli skript treba izvršiti nekoliko puta u različitim dijelovima projekta. Primjer takvih zahtjeva može biti prilagođena višestepena autorizacija, dovođenje okruženja u željeno stanje itd. Općenito, govoreći u terminima programskih jezika, željeli bismo imati funkcije koje se mogu ponovo koristiti u različitim dijelovima aplikacije. U TestMace ovu funkciju obavlja link čvor Vrlo je jednostavan za korištenje:
1) kreirajte upit ili skriptu
2) kreirajte čvor tipa Link
3) u parametrima navedite vezu do skripte kreirane u prvom koraku

U naprednijoj verziji, možete odrediti koje se dinamičke varijable iz skripte prosljeđuju na viši nivo u odnosu na vezu. Zvuči zbunjujuće? Recimo da smo kreirali folder sa imenom kreiraj-post, unutar kojeg je dinamička varijabla dodijeljena ovom čvoru postId. Sada u čvoru Link kreiraj-post-link možete eksplicitno specificirati da je varijabla postId dodijeljen pretku kreiraj-post-link. Ovaj mehanizam (opet, u programskom jeziku) se može koristiti za vraćanje rezultata iz “funkcije”. Generalno, super je, DRY je u punom zamahu i opet ni jedan red koda nije oštećen.

Zašto je TestMace bolji od Postmana

Što se tiče Postmana, postoji zahtjev za funkciju za ponovno korištenje zahtjeva visi od 2015, a čini se da ima čak neki nagoveštajida rade na ovom problemu. U svom trenutnom obliku, Postman, naravno, ima mogućnost da promijeni nit izvršenja, što u teoriji vjerovatno omogućava implementaciju sličnog ponašanja, ali ovo je više prljavi hak nego istinski funkcionalan pristup.

Druge razlike

  • Veća kontrola nad opsegom varijabli. Najmanji opseg unutar kojeg se varijabla može definirati u Postman-u je zbirka. TestMace vam omogućava da definirate varijable za bilo koji upit ili mapu. U Postman Share zbirka vam omogućava izvoz samo kolekcija, dok u TestMace dijeljenje funkcionira za bilo koji čvor
  • TestMace podržava nasljedna zaglavlja, koji se po defaultu može zamijeniti podređenim upitima. Poštar ima nešto o ovome: izazov, pa čak je i zatvoreno, ali se nudi kao rješenje... koristiti skripte. U TestMaceu, sve se ovo konfigurira putem GUI-a i postoji opcija da se opciono onemogući naslijeđena zaglavlja u određenim potomcima
  • Poništi/Ponovi. Radi ne samo pri uređivanju čvorova, već i pri pomicanju, brisanju, preimenovanju i drugim operacijama koje mijenjaju strukturu projekta
  • Fajlovi priloženi zahtjevima postaju dio projekta i pohranjuju se s njim, dok su savršeno sinkronizirani, za razliku od Postmana. (Da, više ne morate ručno birati datoteke svaki put kada pokrenete i prenositi ih kolegama u arhivi)

Funkcije koje su već na putu

Nismo mogli odoljeti iskušenju da podignemo veo tajne u narednim izdanjima, pogotovo kada je funkcionalnost vrlo ukusna i već je u fazi poliranja prije objavljivanja. Pa, hajde da se nađemo.

Funkcije

Kao što znate, Postman koristi takozvane dinamičke varijable za generiranje vrijednosti. Njihova lista je impresivna i velika većina funkcija se koristi za generiranje lažnih vrijednosti. Na primjer, da biste generirali nasumični email morate napisati:

{{$randomEmail}}

Međutim, pošto su to varijable (iako dinamičke), one se ne mogu koristiti kao funkcije: one se ne mogu parametrirati, stoga neće biti moguće uzeti hash iz niza.

Planiramo dodati “poštene” funkcije u TestMace. Upravo unutar ${} biće moguće ne samo pristupiti varijabli, već i pozvati funkciju. One. ako trebate generirati zloglasni lažni e-mail, mi ćemo jednostavno napisati

${faker.internet.email()}

Pored činjenice da se radi o funkciji, primijetit ćete da je moguće pozvati metodu na objektu. I umjesto velike ravne liste dinamičkih varijabli, imamo skup logički grupisanih objekata.

Šta ako želimo da izračunamo heš niza? Lako!

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

Primijetit ćete da čak možete proslijediti varijable kao parametre! U ovom trenutku, radoznali čitalac može posumnjati da nešto nije u redu...

Upotreba JavaScripta u izrazima

... I to sa dobrim razlogom! Kada su se formirali zahtjevi za funkcije, odjednom smo došli do zaključka da valjan javascript treba pisati u izrazima. Dakle, sada ste slobodni da pišete izraze kao što su:

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

I sve to bez skripti, direktno u poljima za unos!

Što se tiče Postmana, ovdje možete koristiti samo varijable, a kada pokušate napisati i najmanji izraz, validator psuje i odbija ga izračunati.

Zašto je TestMace bolji od Postmana

Napredno automatsko dovršavanje

Trenutno TestMace ima standardno automatsko dovršavanje koje izgleda ovako:

Zašto je TestMace bolji od Postmana

Ovdje je, pored linije za automatsko dovršavanje, naznačeno čemu ovaj red pripada. Ovaj mehanizam radi samo u izrazima okruženim zagradama ${}.

Kao što možete vidjeti, dodani su vizualni markeri koji označavaju tip varijable (na primjer, string, broj, niz, itd.). Također možete promijeniti načine automatskog dovršavanja (na primjer, možete odabrati automatsko dovršavanje s varijablama ili zaglavljima). Ali ni to nije najvažnije!

Prvo, automatsko dovršavanje radi čak iu izrazima (gdje je to moguće). Ovako to izgleda:

Zašto je TestMace bolji od Postmana

I drugo, automatsko dovršavanje je sada dostupno u skriptama. Pogledajte kako to funkcionira!

Zašto je TestMace bolji od Postmana

Nema smisla uspoređivati ​​ovu funkcionalnost sa Postmanom - autodovršavanje je ograničeno samo na statičke liste varijabli, zaglavlja i njihovih vrijednosti (ispravite me ako sam nešto zaboravio). Skripte se ne dovršavaju automatski :)

zaključak

U oktobru je obilježena godina od početka razvoja naših proizvoda. Za to vrijeme uspjeli smo napraviti dosta stvari i, u nekim aspektima, sustigli naše konkurente. Ali kako god bilo, naš cilj je da napravimo zaista zgodan alat za rad sa API-jima. Imamo još dosta posla, evo okvirnog plana razvoja našeg projekta za narednu godinu: https://testmace.com/roadmap.

Vaše povratne informacije će nam omogućiti da se bolje snalazimo u obilju funkcija, a vaša podrška nam daje snagu i samopouzdanje da radimo pravu stvar. Desilo se da je danas važan dan za naš projekat - dan kada je TestMace objavljen ProductHunt. Molimo vas da podržite naš projekat, veoma nam je važan. Štaviše, danas je na našoj PH stranici primamljiva ponuda, koja je ograničena

izvor: www.habr.com

Dodajte komentar