Poukisa TestMace pi bon pase Postman

Poukisa TestMace pi bon pase Postman

Bonjou tout moun, isit la ou ale TestMace! Petèt anpil moun konnen sou nou de nan nou an anvan atik. Pou moun ki fèk rantre yo: n ap devlope yon IDE pou travay avèk API TestMace. Kesyon ki pi souvan poze lè w konpare TestMace ak pwodwi konpetisyon an se "Ki jan ou diferan de Postman?" Nou te deside ke li te tan bay yon repons detaye a kesyon sa a. Anba a nou te dekri avantaj nou yo sou post-man.

divize an nœuds

Si w ap travay ak Postman, Lè sa a, ou konnen ke koòdone demann lan gen tout fonksyonalite ki nesesè yo. Gen scripts, tès, ak, an reyalite, demann yo tèt yo. Sa fè li pi fasil pou débutan, men nan gwo senaryo apwòch sa a pa fleksib. E si ou vle kreye plizyè requêtes Et fè agrégation sou yo? E si ou vle egzekite yon script san yon demann oswa plizyè script ki separe lojikman nan yon ranje? Apre yo tout, li ta yon bon lide separe tès yo ak scripts sèvis piblik regilye yo. Anplis de sa, apwòch la "ajoute tout fonksyonalite a nan yon sèl ne" pa évolutive - koòdone a byen vit vin twò chaje.

TestMace okòmansman divize tout fonksyonalite an diferan kalite nœuds. Èske ou ta renmen fè yon demann? Se pou ou etap demann ne. Èske ou vle ekri yon script? Se pou ou script ne. Bezwen tès? Tanpri - Afimasyon ne. Oh wi, ou ka toujou vlope tout bagay sa a nan folder ne. Ak tout bagay sa yo ka fasil konbine youn ak lòt. Apwòch sa a se pa sèlman trè fleksib, men tou, an akò ak prensip la nan yon sèl responsablite, pèmèt ou sèvi ak sèlman sa ou reyèlman bezwen nan moman sa a. Poukisa mwen bezwen scripts ak tès si mwen jis vle fè yon demann?

Fòma pwojè lizib pou moun

Gen yon diferans konsèp ant TestMace ak Postman nan fason yo estoke. Nan Postman, tout demann yo estoke yon kote nan depo lokal yo. Si gen yon bezwen pataje demann ant plizyè itilizatè, Lè sa a, ou bezwen sèvi ak senkronizasyon bati-an. An reyalite, sa a se yon apwòch jeneralman aksepte, men se pa san dezavantaj li yo. E sekirite done? Apre yo tout, politik la nan kèk konpayi ka pa pèmèt estoke done ak twazyèm pati. Sepandan, nou panse TestMace gen yon bagay pi bon pou l ofri! Ak non amelyorasyon sa a se "fòma pwojè lizib pou moun."

Ann kòmanse ak lefèt ke nan TestMace, an prensip, gen yon antite "pwojè". Ak aplikasyon an te okòmansman devlope ak yon je nan estoke pwojè nan sistèm kontwòl vèsyon: pye bwa pwojè a se prèske youn-a-youn projetée sou estrikti nan dosye, yaml yo itilize kòm fòma nan depo (san parantèz siplemantè ak vigil), ak la. se reprezantasyon dosye chak ne dekri an detay nan dokiman an ak kòmantè. Men, nan pifò ka ou pa pral gade la - tout non jaden yo gen non lojik.

Kisa sa bay itilizatè a? Sa a pèmèt ou chanje flux travay ekip la trè fleksib, lè l sèvi avèk apwòch abitye. Pou egzanp, devlopè yo ka estoke yon pwojè nan menm repozitwa a ak backend la. Nan branch yo, anplis chanje baz kòd la tèt li, pwomotè a ka korije scripts rechèch ki deja egziste ak tès yo. Apre ou fin fè chanjman nan depo a (git, svn, mercurial - kèlkeswa sa ou renmen pi byen), CI (pi renmen ou, pa pèsonn enpoze) lanse sèvis piblik konsole nou an. testmace-cli, epi rapò a resevwa apre ekzekisyon (pa egzanp, nan fòma Junit, ki sipòte tou nan testmace-cli) yo voye nan sistèm ki apwopriye a. Ak pwoblèm sekirite ki mansyone anwo a pa yon pwoblèm ankò.

Kòm ou ka wè, TestMace pa enpoze ekosistèm ak paradigm li yo. Olye de sa, li adapte fasilman nan pwosesis etabli.

Varyab dinamik

TestMace swiv konsèp san kòd: si yon pwoblèm ka rezoud san yo pa itilize kòd, nou eseye bay opòtinite sa a. Travay ak varyab se egzakteman ki kalite fonksyonalite kote nan pifò ka ou ka fè san yo pa pwogramasyon.

Egzanp: nou te resevwa yon repons nan men sèvè a, epi nou vle sove yon pati nan repons lan nan yon varyab. Nan Postman, nan yon script tès (ki se etranj nan tèt li) nou ta ekri yon bagay tankou:

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

Men, nan opinyon nou an, ekri yon script pou yon senaryo senp epi yo itilize souvan sanble redondants. Se poutèt sa, nan TestMace li posib pou bay yon pati nan repons lan nan yon varyab lè l sèvi avèk koòdone grafik la. Gade jan li senp:

Poukisa TestMace pi bon pase Postman

Epi, koulye a ak chak demann varyab dinamik sa a pral mete ajou. Men, ou ka fè objeksyon, diskite ke apwòch la Postman se pi fleksib epi li pèmèt ou pa sèlman fè yon plasman, men tou, fè kèk preprocessing. Men ki jan yo modifye egzanp anvan an:

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

Oke, pou objektif sa a TestMace genyen script ne, ki kouvri senaryo sa a. Pou repwodui ka anvan an, men TestMace deja egzekite, ou bezwen kreye yon ne script apre demann lan epi sèvi ak kòd sa a kòm yon script:

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

Kòm ou ka wè, konpozisyon an nan nœuds yo te sèvi byen isit la tou. Ak pou yon ka senp jan sa dekri pi wo a, ou ka tou senpleman bay ekspresyon an ${crypto.MD5($response.data)} varyab kreye atravè entèfas la!

Kreye tès atravè entèfas

Postman pèmèt ou kreye tès pa ekri scripts (nan ka Postman, sa a se JavaScript). Apwòch sa a gen anpil avantaj - fleksibilite prèske san limit, disponiblite solisyon pare yo, elatriye.

Sepandan, reyalite a souvan tankou (nou pa konsa, lavi se konsa) ke yon tèsteur pa gen ladrès pwogramasyon, men li ta renmen pote benefis nan ekip la kounye a. Pou ka sa yo, apre konsèp san kòd, TestMace pèmèt ou kreye tès senp atravè yon entèfas san w pa bezwen ekri scripts. Men, pou egzanp, ki jan pwosesis pou kreye yon tès ki konpare valè pou egalite sanble:

Poukisa TestMace pi bon pase Postman

Sepandan, kreye tès nan yon editè grafik pa elimine posiblite a ekri tès nan kòd. Tout bibliyotèk yo menm yo isit la tankou nan ne nan script, ak Chai pou ekri tès yo.

Sitiyasyon souvan rive lè yon rechèch sèten oswa menm yon script antye bezwen egzekite plizyè fwa nan diferan pati nan pwojè a. Yon egzanp demann sa yo ta ka koutim otorizasyon milti-etap, pote anviwònman an nan eta a vle, elatriye. An jeneral, pale an tèm de langaj pwogramasyon, nou ta renmen gen fonksyon ki ka reyitilize nan diferan pati nan aplikasyon an. Nan TestMace fonksyon sa a fèt pa lyen ne. Li trè fasil pou itilize:
1) kreye yon rechèch oswa yon script
2) kreye yon ne ki kalite Link
3) nan paramèt yo, presize yon lyen nan script ki te kreye nan premye etap la

Nan yon vèsyon ki pi avanse, ou ka presize ki varyab dinamik ki soti nan script la yo pase nan yon nivo ki pi wo parapò ak lyen an. Son konfizyon? Ann di nou te kreye yon Dosye ak non an kreye-post, nan ki yon varyab dinamik asiyen nan ne sa a postId. Koulye a, nan Link node kreye-pòs-lyen ou ka klèman presize ke varyab la postId asiyen nan yon zansèt kreye-pòs-lyen. Mekanis sa a (ankò, nan langaj pwogramasyon) ka itilize pou retounen yon rezilta nan yon "fonksyon". An jeneral, li fre, DRY se nan swing plen epi ankò pa yon sèl liy nan kòd te domaje.

Poukisa TestMace pi bon pase Postman

Kòm pou Postman, gen yon demann karakteristik pou reitilize demann pandye depi 2015, e li sanble gen menm kèk sijesyonke yo ap travay sou pwoblèm sa a. Nan fòm li ye kounye a, Postman, nan kou, gen kapasite nan chanje fil nan ekzekisyon, ki nan teyori pwobableman fè li posib aplike konpòtman menm jan an, men sa a se plis nan yon Hack sal pase yon apwòch vrèman k ap travay.

Lòt diferans

  • Pi gwo kontwòl sou sijè ki abòde lan varyab yo. Pi piti dimansyon ki ka defini yon varyab nan Postman se koleksyon. TestMace pèmèt ou defini varyab pou nenpòt rechèch oswa katab. Nan Postman Share koleksyon pèmèt ou ekspòte koleksyon sèlman, pandan y ap nan TestMace pataje travay pou nenpòt ne
  • TestMace sipòte headers eritye, ki ka ranplase nan demann timoun pa default. Postman gen yon bagay sou sa: travay la, e li menm fèmen, men li ofri kòm yon solisyon... sèvi ak scripts. Nan TestMace, sa a se tout konfigirasyon atravè entèfas a epi gen yon opsyon pou enfim headers eritye nan desandan espesifik.
  • Defèt/Refè. Travay pa sèlman lè modifye nœuds, men tou lè w ap deplase, efase, chanje non ak lòt operasyon ki chanje estrikti pwojè a.
  • Fichye ki tache ak demann yo vin yon pati nan pwojè a epi yo estoke avèk li, pandan y ap parfe senkronize, kontrèman ak Postman. (Wi, ou pa bezwen manyèlman chwazi fichye yo chak fwa ou kòmanse epi transfere yo bay kòlèg yo nan achiv yo)

Karakteristik ki deja sou wout la

Nou pa t 'kapab reziste anba tantasyon an leve vwal la nan sekrè sou degaje kap vini yo, espesyalman lè fonksyonalite a trè bon gou epi li deja sibi polisaj pre-lage. Donk, ann rankontre.

Fonksyon

Kòm ou konnen, Postman itilize sa yo rele varyab dinamik pou jenere valè. Lis la nan yo se enpresyonan ak vas majorite de fonksyon yo itilize pou jenere fo valè. Pou egzanp, jenere yon imèl o aza ou bezwen ekri:

{{$randomEmail}}

Sepandan, piske sa yo se varyab (kwake dinamik), yo pa ka itilize kòm fonksyon: yo pa paramètrize, kidonk li pa pral posib yo pran yon hash nan yon fisèl.

Nou planifye pou ajoute fonksyon "onèt" nan TestMace. Dwa anndan ${} li pral posib pa sèlman jwenn aksè nan yon varyab, men tou, yo rele yon fonksyon. Moun sa yo. si ou bezwen jenere imel la notwa fo, nou pral tou senpleman ekri

${faker.internet.email()}

Anplis de sa nan lefèt ke li se yon fonksyon, ou pral remake ke li posib yo rele yon metòd sou yon objè. Ak olye pou yo yon lis gwo plat nan varyab dinamik, nou gen yon seri objè ki lojikman gwoupe.

E si nou vle kalkile hash nan yon fisèl? Fasil!

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

Ou pral remake ke ou ka menm pase varyab kòm paramèt! Nan pwen sa a, yon lektè curieux ka sispèk yon bagay ki mal...

Sèvi ak JavaScript nan ekspresyon

... E pou bon rezon! Lè egzijans pou fonksyon yo te fòme, toudenkou nou te rive nan konklizyon ke javascript valab ta dwe ekri nan ekspresyon. Se konsa, kounye a ou lib pou ekri ekspresyon tankou:

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

Ak tout bagay sa a san yo pa Scripts, dwa nan jaden yo opinyon!

Kòm pou Postman, isit la ou ka sèlman itilize varyab, epi lè ou eseye ekri ekspresyon an mwendr, validateur a madichon epi refize kalkile li.

Poukisa TestMace pi bon pase Postman

Otokonplesyon avanse

Kounye a TestMace gen yon otokonplesyon estanda ki sanble sa a:

Poukisa TestMace pi bon pase Postman

Isit la, anplis liy oto-ranpli, li endike ki sa liy sa a fè pati. Mekanis sa a travay sèlman nan ekspresyon ki antoure pa parantèz ${}.

Kòm ou ka wè, yo te ajoute makè vizyèl ki endike ki kalite varyab (pa egzanp, fisèl, nimewo, etalaj, elatriye). Ou kapab tou chanje mòd otokonplesyon yo (pa egzanp, ou ka chwazi otokonplesyon ak varyab oswa tèt). Men, menm sa a se pa bagay ki pi enpòtan!

Premyèman, otokonplesyon travay menm nan ekspresyon (kote sa posib). Men sa li sanble:

Poukisa TestMace pi bon pase Postman

Ak dezyèmman, otokonplesyon disponib kounye a nan scripts. Gade kijan li fonksyone!

Poukisa TestMace pi bon pase Postman

Pa gen okenn pwen nan konpare fonksyonalite sa a ak Postman - otokonplesyon gen limite sèlman nan lis estatik nan varyab, header ak valè yo (korije m 'si mwen bliye yon bagay). Scripts yo pa ranpli otomatikman :)

Konklizyon

Oktòb make yon ane depi kòmansman devlopman pwodwi nou an. Pandan tan sa a, nou jere fè anpil bagay epi, nan kèk respè, kenbe ak konpetitè nou yo. Men, menm jan li ka, objektif nou se fè yon zouti vrèman pratik pou travay ak API. Nou toujou gen anpil travay pou nou fè, men yon bon plan pou devlopman pwojè nou an pou ane k ap vini an: https://testmace.com/roadmap.

Feedback ou a pral pèmèt nou pi byen navige nan abondans nan karakteristik, ak sipò ou ba nou fòs ak konfyans ke nou ap fè sa ki dwat. Sa rive jodi a se yon jou enpòtan pou pwojè nou an - jou TestMace te pibliye a Lachas pwodwi. Tanpri sipòte pwojè nou an, li enpòtan anpil pou nou. Anplis, gen yon òf tante sou paj PH nou an jodi a, epi li limite

Sous: www.habr.com

Add nouvo kòmantè