Sveiki visiem, lÅ«k TestMace! IespÄjams, daudzi cilvÄki par mums zina no no mÅ«suiepriekÅ”ÄjÄraksti. Tiem, kas tikko pievienojuÅ”ies: mÄs izstrÄdÄjam IDE darbam ar TestMace API. VisbiežÄk uzdotais jautÄjums, salÄ«dzinot TestMace ar konkurÄjoÅ”iem produktiem, ir āAr ko jÅ«s atŔķiraties no Postman?ā MÄs nolÄmÄm, ka ir pienÄcis laiks sniegt detalizÄtu atbildi uz Å”o jautÄjumu. ZemÄk mÄs esam izklÄstÄ«juÅ”i mÅ«su priekÅ”rocÄ«bas salÄ«dzinÄjumÄ ar Pastnieks.
SadalīŔana mezglos
Ja strÄdÄjat ar Postman, tad zinÄt, ka pieprasÄ«juma interfeiss satur visu nepiecieÅ”amo funkcionalitÄti. Ir skripti, testi un faktiski paÅ”i vaicÄjumi. Tas atvieglo iesÄcÄjiem, taÄu lielÄkos scenÄrijos Ŕī pieeja nav elastÄ«ga. Ko darÄ«t, ja vÄlaties izveidot vairÄkus vaicÄjumus un veikt to apkopoÅ”anu? Ko darÄ«t, ja vÄlaties izpildÄ«t skriptu bez pieprasÄ«juma vai vairÄkus loÄ£iski atdalÄ«tus skriptus pÄc kÄrtas? Galu galÄ bÅ«tu ieteicams atdalÄ«t testus no parastajiem utilÄ«ta skriptiem. TurklÄt pieeja āpievienot visu funkcionalitÄti vienÄ mezglÄā nav mÄrogojama - saskarne Ätri kļūst pÄrslogota.
TestMace sÄkotnÄji sadala visu funkcionalitÄti dažÄda veida mezglos. Vai vÄlaties iesniegt pieprasÄ«jumu? Tas ir priekÅ” jums pieprasÄ«juma solis mezgls Vai vÄlaties uzrakstÄ«t scenÄriju? Tas ir priekÅ” jums scenÄrijs mezgls NepiecieÅ”ami testi? LÅ«dzu - Apgalvojums mezgls Ak, jÄ, jÅ«s joprojÄm varat ietÄ«t visu Å”o lietu mape mezgls Un to visu var viegli apvienot savÄ starpÄ. Å Äda pieeja ir ne tikai ļoti elastÄ«ga, bet arÄ«, ievÄrojot vienotas atbildÄ«bas principu, ļauj izmantot tikai to, kas Å”obrÄ«d patieÅ”Äm ir nepiecieÅ”ams. KÄpÄc man ir nepiecieÅ”ami skripti un testi, ja es tikai vÄlos iesniegt pieprasÄ«jumu?
CilvÄkam lasÄms projekta formÄts
PastÄv konceptuÄla atŔķirÄ«ba starp TestMace un Postman to glabÄÅ”anas veidÄ. ProgrammÄ Postman visi pieprasÄ«jumi tiek glabÄti kaut kur vietÄjÄ krÄtuvÄ. Ja ir nepiecieÅ”ams koplietot pieprasÄ«jumus starp vairÄkiem lietotÄjiem, jums ir jÄizmanto iebÅ«vÄtÄ sinhronizÄcija. Faktiski Ŕī ir vispÄrpieÅemta pieeja, taÄu ne bez trÅ«kumiem. KÄ ar datu droŔību? Galu galÄ dažu uzÅÄmumu politika var neļaut uzglabÄt datus treÅ”ajÄm personÄm. TomÄr mÄs domÄjam, ka TestMace var piedÄvÄt kaut ko labÄku! Un Ŕī uzlabojuma nosaukums ir ācilvÄkam lasÄms projekta formÄtsā.
SÄksim ar faktu, ka TestMace principÄ ir āprojektaā entÄ«tija. Un sÄkotnÄji lietojumprogramma tika izstrÄdÄta, lai saglabÄtu projektus versiju kontroles sistÄmÄs: projektu koks gandrÄ«z viens pret vienu tiek projicÄts faila struktÅ«rÄ, yaml tiek izmantots kÄ uzglabÄÅ”anas formÄts (bez papildu iekavÄm un komatiem), un Katra mezgla faila attÄlojums ir detalizÄti aprakstÄ«ts dokumentÄcijÄ ar komentÄriem. TaÄu vairumÄ gadÄ«jumu jÅ«s tur neieskatÄ«sieties ā visiem lauku nosaukumiem ir loÄ£iski nosaukumi.
Ko tas dod lietotÄjam? Tas ļauj ļoti elastÄ«gi mainÄ«t komandas darba plÅ«smu, izmantojot pazÄ«stamas pieejas. PiemÄram, izstrÄdÄtÄji var glabÄt projektu tajÄ paÅ”Ä repozitorijÄ, kurÄ atrodas aizmugursistÄma. FiliÄlÄs papildus paÅ”as koda bÄzes maiÅai izstrÄdÄtÄjs var labot esoÅ”os vaicÄjumu skriptus un testus. PÄc izmaiÅu veikÅ”anas repozitorijÄ (git, svn, mercurial ā tas, kas jums patÄ«k vislabÄk), CI (jÅ«su iecienÄ«tÄkÄ, neviena neuzspiesta) palaiž mÅ«su konsoles utilÄ«tu. testmace-cli, un pÄc izpildes saÅemtÄ atskaite (piemÄram, junit formÄtÄ, kas tiek atbalstÄ«ta arÄ« testmace-cli) tiek nosÅ«tÄ«ta uz atbilstoÅ”o sistÄmu. Un iepriekÅ” minÄtÄ droŔības problÄma vairs nav problÄma.
KÄ redzat, TestMace neuzspiež savu ekosistÄmu un paradigmu. TÄ vietÄ tas viegli iekļaujas noteiktos procesos.
Dinamiskie mainīgie
TestMace ievÄro bezkoda koncepciju: ja problÄmu var atrisinÄt, neizmantojot kodu, mÄs cenÅ”amies nodroÅ”inÄt Å”o iespÄju. Darbs ar mainÄ«gajiem ir tieÅ”i tÄda funkcionalitÄte, kurÄ vairumÄ gadÄ«jumu var iztikt bez programmÄÅ”anas.
PiemÄrs: mÄs saÅÄmÄm atbildi no servera, un mÄs vÄlamies saglabÄt daļu atbildes mainÄ«gajÄ. ProgrammÄ Pastnieks testa skriptÄ (kas pats par sevi ir dÄ«vaini) mÄs rakstÄ«tu kaut ko lÄ«dzÄ«gu:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);
Bet, mÅ«suprÄt, skripta rakstÄ«Å”ana tik vienkÄrÅ”am un bieži izmantotam scenÄrijam Ŕķiet lieka. TÄpÄc programmÄ TestMace ir iespÄjams pieŔķirt daļu atbildes mainÄ«gajam, izmantojot grafisko interfeisu. Paskaties, cik tas ir vienkÄrÅ”i:
Un tagad ar katru pieprasÄ«jumu Å”is dinamiskais mainÄ«gais tiks atjauninÄts. Bet jÅ«s varat iebilst, apgalvojot, ka Pastnieka pieeja ir elastÄ«gÄka un ļauj ne tikai veikt uzdevumu, bet arÄ« veikt kÄdu priekÅ”apstrÄdi. LÅ«k, kÄ mainÄ«t iepriekÅ”Äjo piemÄru:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));
Å im nolÅ«kam TestMace ir scenÄrijs mezglu, kas aptver Å”o scenÄriju. Lai reproducÄtu iepriekÅ”Äjo, bet TestMace jau izpildÄ«to gadÄ«jumu, pÄc pieprasÄ«juma ir jÄizveido skripta mezgls un kÄ skripts jÄizmanto Å”Äds kods:
const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));
KÄ redzat, arÄ« Å”eit labi kalpoja mezglu sastÄvs. Un tik vienkÄrÅ”am gadÄ«jumam, kÄ aprakstÄ«ts iepriekÅ”, varat vienkÄrÅ”i pieŔķirt izteiksmi ${crypto.MD5($response.data)} mainÄ«gais, kas izveidots, izmantojot GUI!
Testu izveide, izmantojot GUI
Pastnieks ļauj izveidot testus, rakstot skriptus (Pastnieka gadÄ«jumÄ tas ir JavaScript). Å ai pieejai ir daudz priekÅ”rocÄ«bu ā gandrÄ«z neierobežota elastÄ«ba, gatavu risinÄjumu pieejamÄ«ba utt.
TaÄu realitÄte bieži ir tÄda (mÄs tÄdi neesam, dzÄ«ve ir tÄda), ka testÄtÄjam nav programmÄÅ”anas prasmju, bet viÅÅ” gribÄtu dot labumu komandai tieÅ”i tagad. Å Ädos gadÄ«jumos, ievÄrojot bezkoda koncepciju, TestMace ļauj izveidot vienkÄrÅ”us testus, izmantojot GUI, neizmantojot skriptu rakstÄ«Å”anu. PiemÄram, lÅ«k, kÄ izskatÄs vienlÄ«dzÄ«bas vÄrtÄ«bu salÄ«dzinÄÅ”anas testa izveides process:
TomÄr testu izveide grafiskajÄ redaktorÄ neizslÄdz iespÄju kontroldarbu rakstÄ«Å”ana kodÄ. Å eit ir visas tÄs paÅ”as bibliotÄkas kÄ skripta mezglÄ un chai kontroldarbu rakstÄ«Å”anai.
IespÄja palaist esoÅ”u skriptu, izmantojot saiti (saites mezgls)
Bieži rodas situÄcijas, kad noteikts vaicÄjums vai pat viss skripts ir jÄizpilda vairÄkas reizes dažÄdÄs projekta daļÄs. Å Ädu pieprasÄ«jumu piemÄrs varÄtu bÅ«t pielÄgota vairÄkpakÄpju autorizÄcija, vides pÄrvietoÅ”ana vÄlamajÄ stÄvoklÄ« utt. KopumÄ, runÄjot par programmÄÅ”anas valodÄm, mÄs vÄlÄtos, lai bÅ«tu funkcijas, kuras var atkÄrtoti izmantot dažÄdÄs lietojumprogrammas daļÄs. ProgrammÄ TestMace Å”o funkciju veic saite mezgls To ir ļoti viegli lietot:
1) izveidojiet vaicÄjumu vai skriptu
2) izveidojiet Link tipa mezglu
3) parametros norÄdiet saiti uz pirmajÄ solÄ« izveidoto skriptu
UzlabotÄ versijÄ varat norÄdÄ«t, kuri dinamiskie mainÄ«gie no skripta tiek nodoti augstÄkam lÄ«menim attiecÄ«bÄ pret saiti. IzklausÄs mulsinoÅ”i? PieÅemsim, ka esam izveidojuÅ”i mapi ar nosaukumu izveidot-post, kurÄ Å”im mezglam tiek pieŔķirts dinamisks mainÄ«gais postId. Tagad saites mezglÄ izveidot-izlikt-saiti varat skaidri norÄdÄ«t, ka mainÄ«gais postId pieŔķirts priekÅ”tecim izveidot-izlikt-saiti. Å o mehÄnismu (atkal programmÄÅ”anas valodÄ) var izmantot, lai atgrieztu rezultÄtu no āfunkcijasā. KopumÄ ir forÅ”i, DRY ir pilnÄ sparÄ un atkal netika sabojÄta neviena koda rindiÅa.
Kas attiecas uz Pastnieku, pieprasÄ«jumu atkÄrtotai izmantoÅ”anai ir funkcijas pieprasÄ«jums karÄjÄs kopÅ” 2015. gada, un Ŕķiet, ka ir pat daži padomika viÅi strÄdÄ pie Ŕīs problÄmas. PaÅ”reizÄjÄ formÄ Pastniekam, protams, ir iespÄja mainÄ«t izpildes pavedienu, kas teorÄtiski, iespÄjams, ļauj Ä«stenot lÄ«dzÄ«gu uzvedÄ«bu, taÄu tas ir vairÄk netÄ«rs uzlauzts, nevis patiesi strÄdÄjoÅ”a pieeja.
Citas atŔķirības
LielÄka kontrole pÄr mainÄ«go lielumu jomu. MazÄkÄ joma, kurÄ mainÄ«go var definÄt programmÄ Postman, ir kolekcija. TestMace ļauj definÄt mainÄ«gos lielumus jebkuram vaicÄjumam vai mapei. PakalpojumÄ Postman Share kolekcija ļauj eksportÄt tikai kolekcijas, savukÄrt TestMace koplietoÅ”ana darbojas jebkurÄ mezglÄ
TestMace atbalsta mantojamas galvenes, ko pÄc noklusÄjuma var aizstÄt ar pakÄrtotajiem vaicÄjumiem. Pastniekam ir kaut kas par Å”o: izaicinÄjums, un tas ir pat slÄgts, bet tas tiek piedÄvÄts kÄ risinÄjums... izmantot skriptus. ProgrammÄ TestMace tas viss ir konfigurÄts, izmantojot GUI, un ir iespÄja pÄc izvÄles atspÄjot mantotÄs galvenes noteiktos pÄcnÄcÄjus.
Atsaukt/Atcelt. Darbojas ne tikai rediÄ£Äjot mezglus, bet arÄ« veicot pÄrvietoÅ”anu, dzÄÅ”anu, pÄrdÄvÄÅ”anu un citas darbÄ«bas, kas maina projekta struktÅ«ru
PieprasÄ«jumiem pievienotie faili kļūst par projekta daļu un tiek glabÄti kopÄ ar to, vienlaikus lieliski sinhronizÄti atŔķirÄ«bÄ no Postman. (JÄ, jums vairs nav manuÄli jÄatlasa faili katru reizi, kad sÄkat tos un jÄpÄrsÅ«ta kolÄÄ£iem arhÄ«vos)
Funkcijas, kas jau ir ceļÄ
MÄs nevarÄjÄm pretoties kÄrdinÄjumam pacelt noslÄpuma plÄ«vuru nÄkamajos laidienos, it Ä«paÅ”i, ja funkcionalitÄte ir ļoti garŔīga un jau tiek veikta pirmsizlaides pulÄÅ”ana. TÄtad, tiekamies.
Funkcijas
KÄ zinÄms, Postman vÄrtÄ«bu Ä£enerÄÅ”anai izmanto tÄ sauktos dinamiskos mainÄ«gos. To saraksts ir iespaidÄ«gs un lielÄkÄ daļa funkciju tiek izmantotas viltotu vÄrtÄ«bu Ä£enerÄÅ”anai. PiemÄram, lai Ä£enerÄtu nejauÅ”u e-pasta ziÅojumu, jums jÄraksta:
{{$randomEmail}}
TaÄu, tÄ kÄ tie ir mainÄ«gie (kaut arÄ« dinamiski), tos nevar izmantot kÄ funkcijas: tie nav parametrizÄjami, tÄpÄc no virknes nevarÄs Åemt hash.
MÄs plÄnojam TestMace pievienot āgodÄ«gasā funkcijas. TieÅ”i ${} iekÅ”pusÄ bÅ«s iespÄjams ne tikai piekļūt mainÄ«gajam, bet arÄ« izsaukt funkciju. Tie. ja jums bÅ«s jÄÄ£enerÄ bÄdÄ«gi slavenais viltus e-pasts, mÄs vienkÄrÅ”i uzrakstÄ«sim
${faker.internet.email()}
Papildus tam, ka tÄ ir funkcija, jÅ«s ievÄrosiet, ka objektam ir iespÄjams izsaukt metodi. Un liela, plakana dinamisko mainÄ«go saraksta vietÄ mums ir loÄ£iski grupÄtu objektu kopa.
Ko darÄ«t, ja mÄs vÄlamies aprÄÄ·inÄt virknes hash? Viegli!
${crypto.MD5($dynamicVar.data)}
JÅ«s ievÄrosiet, ka jÅ«s pat varat nodot mainÄ«gos kÄ parametrus! Å ajÄ brÄ«dÄ« zinÄtkÄram lasÄ«tÄjam var rasties aizdomas, ka kaut kas nav kÄrtÄ«bÄ...
JavaScript izmantoÅ”ana izteiksmÄs
... Un laba iemesla dÄļ! Kad tika veidotas prasÄ«bas funkcijÄm, pÄkÅ”Åi nonÄcÄm pie secinÄjuma, ka izteiksmÄs jÄraksta derÄ«gs javascript. TÄtad tagad jÅ«s varat brÄ«vi rakstÄ«t izteicienus, piemÄram:
${1 + '' + crypto.MD5('asdf')}
Un tas viss bez skriptiem, tieŔi ievades laukos!
Kas attiecas uz Pastnieku, tad Å”eit var izmantot tikai mainÄ«gos, un, mÄÄ£inot uzrakstÄ«t vismazÄko izteiksmi, validators lamÄjas un atsakÄs to aprÄÄ·inÄt.
UzlabotÄ automÄtiskÄ pabeigÅ”ana
PaÅ”laik TestMace ir standarta automÄtiskÄ pabeigÅ”ana, kas izskatÄs Å”Ädi:
Å eit papildus automÄtiskÄs aizpildÄ«Å”anas rindai ir norÄdÄ«ts, kam Ŕī rinda pieder. Å is mehÄnisms darbojas tikai izteiksmÄs, kuras ieskauj iekavas ${}.
KÄ redzat, ir pievienoti vizuÄlie marÄ·ieri, kas norÄda mainÄ«gÄ veidu (piemÄram, virkne, skaitlis, masÄ«vs utt.). Varat arÄ« mainÄ«t automÄtiskÄs pabeigÅ”anas režīmus (piemÄram, varat atlasÄ«t automÄtisko pabeigÅ”anu ar mainÄ«gajiem vai galvenÄm). Bet pat tas nav svarÄ«gÄkais!
PirmkÄrt, automÄtiskÄ pabeigÅ”ana darbojas pat izteiksmÄs (ja iespÄjams). Tas izskatÄs Å”Ädi:
Un, otrkÄrt, automÄtiskÄ pabeigÅ”ana tagad ir pieejama skriptos. Apskatiet, kÄ tas darbojas!
Nav jÄgas salÄ«dzinÄt Å”o funkcionalitÄti ar Postman - automÄtiskÄ pabeigÅ”ana ir ierobežota tikai ar statiskiem mainÄ«go, galveÅu un to vÄrtÄ«bu sarakstiem (labojiet mani, ja es kaut ko aizmirsu). Skripti netiek automÄtiski pabeigti :)
SecinÄjums
OktobrÄ« apritÄja gads kopÅ” mÅ«su produktu izstrÄdes sÄkuma. Å ajÄ laikÄ mÄs paspÄjÄm paveikt daudz lietu un dažos aspektos panÄkt konkurentus. TaÄu, lai kÄ arÄ« bÅ«tu, mÅ«su mÄrÄ·is ir izveidot patieÅ”Äm Ärtu rÄ«ku darbam ar API. Mums vÄl ir daudz darÄmÄ, lÅ«k, aptuvens mÅ«su projekta attÄ«stÄ«bas plÄns nÄkamajam gadam: https://testmace.com/roadmap.
JÅ«su atsauksmes ļaus mums labÄk orientÄties funkciju pÄrpilnÄ«bÄ, un jÅ«su atbalsts sniedz mums spÄku un pÄrliecÄ«bu, ka mÄs rÄ«kojamies pareizi. TÄ sagadÄ«jies, ka Å”odien ir svarÄ«ga diena mÅ«su projektam ā diena, kurÄ tika publicÄts TestMace ProductHunt. LÅ«dzu, atbalstiet mÅ«su projektu, tas mums ir ļoti svarÄ«gi. TurklÄt Å”odien mÅ«su PH lapÄ ir pieejams vilinoÅ”s piedÄvÄjums, un tas ir ierobežots