Perchè TestMace hè megliu cà Postman

Perchè TestMace hè megliu cà Postman

Salute à tutti, eccu TestMace! Forse parechje persone cunnosci di noi da di i nostri precedente articuli. Per quelli chì sò appena uniti: sviluppemu un IDE per travaglià cù l'API TestMace. A quistione più frequente quandu paragunate TestMace à i prudutti cuncurrenti hè "Cumu sì diversu da Postman?" Avemu decisu chì era ora di dà una risposta dettagliata à sta quistione. Quì sottu avemu delineatu i nostri vantaghji Postariu.

Splitting in nodes

Sè vo travaglià cù Postman, allora sapete chì l'interfaccia di dumanda cuntene tutte e funziunalità necessariu. Ci sò scripts, testi, è, in fattu, e dumande stessu. Questu facenu più faciule per i principianti, ma in grandi scenarii stu approcciu ùn hè micca flexible. E se vulete creà parechje dumande è eseguisce l'aggregazione nantu à elli? E se vulete eseguisce un script senza una dumanda o parechji scripts separati logicamente in una fila? Dopu tuttu, saria una bona idea di separà e teste da i script di utilità regulare. Inoltre, l'approcciu di "aghjunghje tutte e funziunalità in un node" ùn hè micca scalabile - l'interfaccia diventa rapidamente sopracargata.

TestMace inizialmente divide tutte e funzionalità in diversi tipi di nodi. Vulete fà una dumanda ? Hè per voi dumanda passu nodu Vulete scrive un script? Hè per voi scrittura nodu Avete bisognu di teste? Per piacè - Affirmazione nodu Oh, sì, pudete ancu impacchetta tutta sta cosa cartulare nodu È tuttu questu pò esse facilmente cumminatu cù l'altri. Stu approcciu ùn hè micca solu assai flexible, ma ancu, in cunfurmità cù u principiu di rispunsabilità unica, vi permette di utilizà solu ciò chì avete veramente bisognu à u mumentu. Perchè aghju bisognu di scripts è testi se vogliu solu fà una dumanda?

Formatu di prughjettu leggibile da l'omu

Ci hè una diffarenza conceptuale trà TestMace è Postman in a manera chì sò almacenati. In Postman, tutte e dumande sò guardate in un locu in u almacenamentu locale. Se ci hè bisognu di sparte e dumande trà parechji utilizatori, allora avete bisognu di utilizà a sincronizazione integrata. In fatti, questu hè un approcciu generalmente accettatu, ma micca senza i so inconvenienti. E securità di dati? Dopu tuttu, a pulitica di certi cumpagnie ùn pò micca permette di almacenà dati cù terzu. Tuttavia, pensemu chì TestMace hà qualcosa di megliu da offre! È u nome di sta migliione hè "formatu di prughjettu leggibile da l'omu".

Cuminciamu cù u fattu chì in TestMace, in principiu, ci hè una entità "prughjettu". È l'applicazione hè stata inizialmente sviluppata cù un ochju à guardà prughjetti in sistemi di cuntrollu di versione: l'arburu di u prugettu hè quasi unu-à-unu prughjettatu nantu à a struttura di u schedariu, yaml hè utilizatu cum'è u formatu di almacenamiento (senza parentesi extra è virgule), è A rapprisintazioni di u schedariu di ogni nodu hè descritta in dettagliu in a documentazione cù cumenti. Ma in a maiò parte di i casi ùn avete micca guardatu quì - tutti i nomi di campu anu nomi lògichi.

Chì dà questu à l'utilizatore? Questu permette di cambià u flussu di travagliu di a squadra in modu assai flexible, utilizendu approcci familiari. Per esempiu, i sviluppatori ponu almacenà un prughjettu in u stessu repository cum'è u backend. In i rami, in più di cambià a basa di codice stessu, u sviluppatore pò curregge i scripts di quistione esistenti è e teste. Dopu avè fattu cambiamenti à u repository (git, svn, mercurial - ciò chì ti piace di più), CI (u vostru preferitu, micca impostu da nimu) lancia a nostra utilità di cunsola. testmace-cli, è u rapportu ricevutu dopu l'esekzione (per esempiu, in formatu junit, chì hè ancu supportatu in testmace-cli) hè mandatu à u sistema adattatu. È u prublema di sicurezza sopra citatu ùn hè più un prublema.

Comu pudete vede, TestMace ùn impone micca u so ecosistema è paradigma. Invece, si mette facilmente in i prucessi stabiliti.

Variabili dinamichi

TestMace seguita u cuncettu senza codice: se un prublema pò esse risoltu senza usà codice, pruvemu di furnisce questa opportunità. U travagliu cù variàbili hè esattamente u tipu di funziunalità induve in a maiò parte di i casi pudete fà senza prugrammazione.

Esempiu: avemu ricevutu una risposta da u servitore, è vulemu salvà una parte di a risposta in una variabile. In Postman, in un script di prova (chì hè stranu in sè stessu) scriveremu qualcosa cum'è:

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

Ma in u nostru parè, scrive un script per un scenariu cusì simplice è spessu usatu pare redundante. Per quessa, in TestMace hè pussibule assignà un pezzu di a risposta à una variabile utilizendu l'interfaccia gràfica. Fighjate quantu hè simplice:

Perchè TestMace hè megliu cà Postman

È avà cù ogni dumanda sta variabile dinamica serà aghjurnata. Ma pudete ughjettu, argumentendu chì l'approcciu di Postman hè più flexible è vi permette micca solu di fà una missione, ma ancu di fà qualchì preprocessing. Eccu cumu mudificà l'esempiu precedente:

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

Ebbè, per questu scopu TestMace hà scrittura node, chì copre stu scenariu. Per ripruduce u casu precedente, ma digià eseguitu da TestMace, avete bisognu di creà un node di script dopu a dumanda è utilizate u codice seguente cum'è script:

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

Comu pudete vede, a cumpusizioni di i nodi hà servitu ancu quì. È per un casu cusì simplice cum'è descrittu sopra, pudete simpricimenti assignà l'espressione ${crypto.MD5($response.data)} variabile creata via a GUI!

Creazione di testi via GUI

Postman permette di creà testi scrivendu script (in u casu di Postman, questu hè JavaScript). Stu approcciu hà assai vantaghji - flessibilità quasi illimitata, dispunibilità di suluzioni pronti, etc.

In ogni casu, a realità hè spessu tale (ùn simu micca cusì, a vita hè cusì) chì un tester ùn hà micca capacità di prugrammazione, ma li piacerebbe purtà un benefiziu à a squadra avà. Per tali casi, in seguitu à u cuncettu senza codice, TestMace permette di creà teste simplici attraversu una GUI senza ricorrere à scrive scripts. Eccu, per esempiu, hè ciò chì u prucessu di creazione di una prova chì compara i valori per l'ugualità:

Perchè TestMace hè megliu cà Postman

Tuttavia, a creazione di teste in un editore gràficu ùn elimina micca a pussibilità scrittura di testi in codice. Tutte e listessi biblioteche sò quì cum'è in u node di scrittura, è inglese chai per i testi di scrittura.

Situazioni spessu si sviluppanu quandu una certa dumanda o ancu un script sanu deve esse eseguitu parechje volte in diverse parti di u prugettu. Un esempiu di tali richieste puderia esse l'autorizazione multi-stage customizata, purtendu l'ambiente à u statu desideratu, etc. In generale, parlendu in termini di linguaggi di prugrammazione, vulemu avè funzioni chì ponu esse reutilizate in diverse parti di l'applicazione. In TestMace sta funzione hè realizata da Member nodu Hè assai sèmplice à aduprà:
1) creà una dumanda o script
2) creà un node di tipu Link
3) in i paràmetri, specificate un ligame à u script creatu in u primu passu

In una versione più avanzata, pudete specificà chì variabili dinamichi da u script sò passati à un livellu più altu relative à u ligame. Sona cunfusu? Diciamu chì avemu creatu un Folder cù u nome creà-post, in quale una variabile dinamica hè assignata à stu node postId. Avà in u nodu Link create-post-link pudete specificà esplicitamente chì a variàbile postId attribuitu à un antenatu create-post-link. Stu mecanismu (di novu, in lingua di prugrammazione) pò esse usatu per rinvià un risultatu da una "funzione". In generale, hè cool, DRY hè in pienu swing è torna micca una sola linea di codice hè stata dannata.

Perchè TestMace hè megliu cà Postman

In quantu à Postman, ci hè una dumanda di funziunalità per riutilizà e richieste suspendu da u 2015, è pare chì ci hè ancu qualchi suggerimentich'elli travaglianu nant'à stu prublema. In a so forma attuale, Postman, sicuru, hà a capacità di cambià u filu di l'esekzione, chì in teoria prubabilmente permette di implementà un cumpurtamentu simili, ma questu hè più di un pirate bruttu chè un approcciu veramente di travagliu.

Altre differenze

  • Un cuntrollu più grande nantu à u scopu di variàbili. U più chjucu scopu in quale una variabile pò esse definita in Postman hè a cullezzione. TestMace permette di definisce variàbili per ogni dumanda o cartulare. In a cullezzione Postman Share permette di esportà solu cullezzione, mentre chì in TestMace a spartera funziona per qualsiasi node
  • TestMace supporta intestazioni ereditabili, chì pò esse sustituitu in dumande di i zitelli per difettu. Postman hà qualcosa nantu à questu: compitu, è hè ancu chjusu, ma hè prupostu cum'è suluzione ... aduprà scripts. In TestMace, questu hè tuttu cunfiguratu via a GUI è ci hè una opzione per disattivà eventualmente l'intestazione ereditata in discendenti specifichi.
  • Annulla / Rifà. Funziona micca solu quandu edite i nodi, ma ancu quandu si move, sguassà, rinominà è altre operazioni chì cambianu a struttura di u prugettu
  • I schedarii attaccati à e dumande diventanu parte di u prugettu è sò almacenati cun ellu, mentre chì sò perfettamente sincronizati, à u cuntrariu di Postman. (Iè, ùn avete più bisognu di selezziunà manualmente i fugliali ogni volta chì cuminciate è trasfiriri à i culleghi in l'archivi)

Funzioni chì sò digià in strada

Ùn pudemu micca resiste à a tentazione di alzà u velu di u sicretu annantu à e prossime versioni, soprattuttu quandu a funziunalità hè assai gustosa è hè digià sottumessu a lucidatura pre-liberazione. Allora, scuntremu.

Funzioni

Cum'è sapete, Postman usa cusì-chiamatu variabili dinamichi per generà valori. A lista di elli hè impressiunanti è a maiò parte di e funzioni sò usati per generà valori falsi. Per esempiu, per generà un email casuale avete bisognu di scrive:

{{$randomEmail}}

In ogni casu, postu chì questi sò variàbili (ancu dinamichi), ùn ponu micca esse usatu cum'è funzioni: ùn sò micca parametrizzabili, per quessa ùn serà micca pussibule di piglià un hash da una stringa.

Avemu pensatu à aghjunghje funzioni "oneste" à TestMace. Propiu in ${} serà pussibule micca solu accede à una variabile, ma ancu chjamà una funzione. Quelli. se avete bisognu di generà u famosu email falsu, avemu da scrive solu

${faker.internet.email()}

In più di u fattu chì hè una funzione, vi vede chì hè pussibule chjamà un metudu nantu à un oggettu. È invece di una grande lista piatta di variabili dinamichi, avemu un inseme di oggetti raggruppati logicamente.

E se vulemu calculà l'hash di una stringa? Facilmente!

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

Avete nutatu chì pudete ancu passà variabili cum'è paràmetri! À questu puntu, un lettore curiosu pò suspettà chì qualcosa hè sbagliatu ...

Utilizà JavaScript in Expressions

... È per bona ragione ! Quandu i requisiti per e funzioni sò stati furmati, avemu subitu subitu à a cunclusione chì Javascript validu deve esse scrittu in espressioni. Allora avà sì liberu di scrive espressioni cum'è:

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

È tuttu questu senza script, ghjustu in i campi di input!

In quantu à Postman, quì pudete aduprà solu variabili, è quandu pruvate di scrive a minima espressione, u validatore maledicà è ricusa di calculà.

Perchè TestMace hè megliu cà Postman

Cumplementu automaticu avanzatu

Attualmente TestMace hà un autocompletu standard chì pare cusì:

Perchè TestMace hè megliu cà Postman

Quì, in più di a linea auto-completa, hè indicatu ciò chì sta linea appartene. Stu meccanisimu funziona solu in espressioni circundati da parentesi ${}.

Comu pudete vede, i marcatori visuali sò stati aghjuntu chì indicanu u tipu di variabile (per esempiu, stringa, numeru, array, etc.). Pudete ancu cambià i modi di autocompletion (per esempiu, pudete selezziunate l'autocompletion cù variàbili o headers). Ma ancu questu ùn hè micca u più impurtante!

Prima, l'autocompletion travaglia ancu in espressioni (induve pussibule). Questu hè ciò chì pare:

Perchè TestMace hè megliu cà Postman

E siconda, l'autocompletion hè avà dispunibule in scripts. Fighjate à cumu si funziona!

Perchè TestMace hè megliu cà Postman

Ùn ci hè nunda di paragunà sta funziunalità cù Postman - l'autocompletion hè limitata solu à listi statichi di variàbili, intestazioni è i so valori (correggimi se aghju scurdatu di qualcosa). I script ùn sò micca cumpletati automaticamente :)

cunchiusioni

Uttrovi hà marcatu un annu da u principiu di u sviluppu di u nostru pruduttu. Duranti stu tempu, avemu riesciutu à fà assai cose è, in certi rispetti, chjappà cù i nostri cuncurrenti. Ma sia cusì, u nostru scopu hè di fà un strumentu veramente convenientu per travaglià cù l'API. Avemu sempre assai travagliu da fà, eccu un pianu grossu di u sviluppu di u nostru prughjettu per l'annu chì vene : https://testmace.com/roadmap.

U vostru feedback ci permetterà di navigà megliu l'abbundanza di funzioni, è u vostru sustegnu ci dà forza è cunfidenza chì facemu a cosa bona. Hè cusì chì oghje hè un ghjornu impurtante per u nostru prughjettu - u ghjornu chì TestMace hè statu publicatu ProductHunt. Per piacè sustene u nostru prughjettu, hè assai impurtante per noi. Inoltre, ci hè una offerta tentativa nantu à a nostra pagina PH oghje, è hè limitata

Source: www.habr.com

Add a comment