Napa TestMace luwih apik tinimbang Postman

Napa TestMace luwih apik tinimbang Postman

Hello everyone, kene sampeyan lunga TestMace! Mbok akeh wong ngerti bab kita saka saka kita sadurunge artikel. Kanggo sing mentas gabung: kita ngembangaken IDE kanggo bisa karo TestMace API. Pitakonan sing paling kerep ditakoni nalika mbandhingake TestMace karo produk saingan yaiku "Apa bedane karo Postman?" Kita mutusake manawa wektune kanggo menehi jawaban sing rinci babagan pitakonan iki. Ing ngisor iki kita wis mbatesi kaluwihan kita Posmen.

Dibagi dadi node

Yen sampeyan nggarap Postman, sampeyan ngerti manawa antarmuka panyuwunan ngemot kabeh fungsi sing dibutuhake. Ana skrip, tes, lan, nyatane, panjaluk kasebut dhewe. Iki nggawe luwih gampang kanggo pamula, nanging ing skenario gedhe pendekatan iki ora fleksibel. Kepiye yen sampeyan pengin nggawe pirang-pirang pitakon lan nglumpukake pitakon kasebut? Apa yen sampeyan pengin nglakokake skrip tanpa panjaluk utawa sawetara skrip sing dipisahake kanthi logis? Sawise kabeh, luwih becik misahake tes saka skrip sarana biasa. Kajaba iku, pendekatan "nambah kabeh fungsi menyang siji simpul" ora bisa diukur - antarmuka kanthi cepet dadi overloaded.

TestMace wiwitane mbagi kabeh fungsi dadi macem-macem jinis simpul. Apa sampeyan pengin njaluk panjaluk? Iku kanggo sampeyan njaluk langkah simpul Apa sampeyan pengin nulis naskah? Iku kanggo sampeyan script simpul Perlu tes? Mangga- Penegasan simpul Oh ya, sampeyan isih bisa mbungkus kabeh iki folder simpul Lan kabeh iki bisa gampang digabungake karo saben liyane. Pendekatan iki ora mung fleksibel, nanging uga, sesuai karo prinsip tanggung jawab tunggal, ngidini sampeyan nggunakake mung apa sing sampeyan butuhake saiki. Napa aku butuh skrip lan tes yen aku mung pengin njaluk panjaluk?

Format proyek sing bisa diwaca manungsa

Ana prabédan konseptual antarane TestMace lan Postman ing cara sing disimpen. Ing Postman, kabeh panjalukan disimpen ing endi wae ing panyimpenan lokal. Yen ana perlu kanggo nuduhake panjalukan antarane sawetara kedhaftar, sampeyan kudu nggunakake sinkronisasi dibangun ing. Nyatane, iki minangka pendekatan sing ditampa umum, nanging ora tanpa kekurangan. Kepiye babagan keamanan data? Sawise kabeh, kabijakan sawetara perusahaan bisa uga ora ngidini nyimpen data karo pihak katelu. Nanging, kita mikir TestMace duwe sing luwih apik kanggo ditawakake! Lan jeneng perbaikan iki yaiku "format proyek sing bisa diwaca manungsa."

Ayo diwiwiti kanthi kasunyatan manawa ing TestMace, ing prinsip, ana entitas "proyek". Lan aplikasi kasebut wiwitane dikembangake kanthi tujuan kanggo nyimpen proyek ing sistem kontrol versi: wit proyek meh siji-siji digambarake ing struktur file, yaml digunakake minangka format panyimpenan (tanpa kurung lan koma ekstra), lan Perwakilan file saben simpul diterangake kanthi rinci ing dokumentasi kanthi komentar. Nanging ing sawetara kasus, sampeyan ora bakal katon ing kana - kabeh jeneng lapangan duwe jeneng logis.

Apa iki menehi pangguna? Iki ngidini sampeyan ngganti alur kerja tim kanthi fleksibel, nggunakake pendekatan sing akrab. Contone, pangembang bisa nyimpen proyek ing repositori sing padha karo backend. Ing cabang, saliyane ngganti basis kode dhewe, pangembang bisa mbenerake skrip lan tes pitakon sing wis ana. Sawise nindakake owah-owahan ing repositori (git, svn, mercurial - apa wae sing paling disenengi), CI (favorit sampeyan, ora dileksanakake dening sapa wae) ngluncurake sarana konsol testmace-cli, lan laporan sing ditampa sawise eksekusi (contone, ing format junit, sing uga didhukung ing testmace-cli) dikirim menyang sistem sing cocog. Lan masalah keamanan sing kasebut ing ndhuwur ora dadi masalah maneh.

Kaya sing sampeyan ngerteni, TestMace ora ngetrapake ekosistem lan paradigma. Nanging, gampang pas karo proses sing diadegake.

Variabel Dinamis

TestMace nderek konsep tanpa kode: yen masalah bisa ditanggulangi tanpa nggunakake kode, kita nyoba kanggo nyedhiyani kesempatan iki. Nggarap variabel minangka jinis fungsi sing umume sampeyan bisa nindakake tanpa program.

Conto: kita nampa respon saka server, lan kita pengin nyimpen bagean saka respon menyang variabel. Ing Postman, ing skrip test (sing aneh dhewe) kita bakal nulis kaya:

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

Nanging miturut pendapat kita, nulis naskah kanggo skenario sing prasaja lan asring digunakake katon keluwih. Mulane, ing TestMace iku bisa kanggo nemtokake Piece saka jawaban kanggo variabel nggunakake antarmuka grafis. Delengen carane prasaja:

Napa TestMace luwih apik tinimbang Postman

Lan saiki kanthi saben panyuwunan variabel dinamis iki bakal dianyari. Nanging sampeyan bisa mbantah, kanthi alesan manawa pendekatan Postman luwih fleksibel lan ngidini sampeyan ora mung nggawe tugas, nanging uga nindakake preprocessing. Mangkene carane ngowahi conto sadurunge:

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

Inggih, kanggo maksud iki TestMace wis script simpul, sing nyakup skenario iki. Kanggo ngasilake kasus sadurunge, nanging wis dieksekusi dening TestMace, sampeyan kudu nggawe simpul skrip miturut panjaluk kasebut lan nggunakake kode ing ngisor iki minangka skrip:

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

Kaya sing sampeyan ngerteni, komposisi node uga disedhiyakake ing kene. Lan kanggo kasus prasaja kaya kasebut ing ndhuwur, sampeyan mung bisa nemtokake ekspresi kasebut ${crypto.MD5($response.data)} variabel digawe liwat GUI!

Nggawe tes liwat GUI

Tukang pos ngidini sampeyan nggawe tes kanthi nulis skrip (ing kasus Postman, iki JavaScript). Pendekatan iki nduweni akeh kaluwihan - keluwesan sing meh ora ana watesan, kasedhiyan solusi sing wis siap, lsp.

Nanging, kasunyatane asring kaya ngono (kita ora kaya ngono, urip kaya ngono) manawa panguji ora duwe katrampilan program, nanging dheweke pengin entuk bathi kanggo tim saiki. Kanggo kasus kaya mengkono, miturut konsep tanpa kode, TestMace ngidini sampeyan nggawe tes prasaja liwat GUI tanpa nggunakake skrip nulis. Ing kene, contone, kaya apa proses nggawe tes sing mbandhingake nilai kesetaraan:

Napa TestMace luwih apik tinimbang Postman

Nanging, nggawe tes ing editor grafis ora ngilangi kemungkinan kasebut tes nulis ing kode. Kabeh perpustakaan padha kene minangka ing simpul script, lan chai kanggo tes nulis.

Kahanan asring muncul nalika pitakon tartamtu utawa malah kabeh skrip kudu dieksekusi kaping pirang-pirang ing macem-macem bagean proyek. Conto panjalukan kasebut bisa dadi wewenang multi-tataran khusus, nggawa lingkungan menyang negara sing dikarepake, lsp. Umumé, babagan basa pamrograman, kita pengin duwe fungsi sing bisa digunakake maneh ing macem-macem bagean aplikasi. Ing TestMace fungsi iki dileksanakake dening link simpul Iku gampang banget kanggo nggunakake:
1) nggawe pitakon utawa skrip
2) nggawe simpul jinis Link
3) ing paramèter, nemtokake link menyang script digawe ing langkah pisanan

Ing versi sing luwih maju, sampeyan bisa nemtokake variabel dinamis saka naskah sing diterusake menyang tingkat sing luwih dhuwur tinimbang link kasebut. Swara bingung? Ayo kita nggawe Folder kanthi jeneng nggawe-posting, ing ngendi variabel dinamis ditugasake menyang simpul iki postId. Saiki ing simpul Link nggawe-post-link sampeyan bisa kanthi tegas nemtokake variabel kasebut postId diutus marang leluhur nggawe-post-link. Mekanisme iki (maneh, ing basa program) bisa digunakake kanggo ngasilake asil saka "fungsi". Umumé, iku kelangan, DRY ing ayunan lengkap lan maneh ora baris siji kode rusak.

Napa TestMace luwih apik tinimbang Postman

Kanggo Postman, ana panjaluk fitur kanggo panjaluk nggunakake maneh gantung wiwit 2015, lan misale jek ana malah sawetara diwenehising lagi nggarap masalah iki. Ing wangun saiki, Postman, mesthi, nduweni kemampuan kanggo ngganti thread saka eksekusi, kang ing teori mbokmenawa ndadekake iku bisa kanggo ngleksanakake prilaku padha, nanging iki luwih saka hack reged saka pendekatan saestu makarya.

Bedane liyane

  • Kontrol luwih gedhe babagan ruang lingkup variabel. Ruang lingkup paling cilik ing ngendi variabel bisa ditemtokake ing Postman yaiku koleksi. TestMace ngidini sampeyan nemtokake variabel kanggo pitakon utawa folder apa wae. Ing Postman Share koleksi ngijini sampeyan kanggo ngekspor mung koleksi, nalika ing TestMace sharing dianggo kanggo simpul sembarang
  • TestMace ndhukung header sing diwarisake, sing bisa diganti dadi pitakon anak kanthi gawan. Tukang pos duwe babagan iki: sawijining tugas, lan malah ditutup, nanging ditawakake minangka solusi... nggunakake skrip. Ing TestMace, iki kabeh dikonfigurasi liwat GUI lan ana pilihan kanggo mateni header sing diwarisake ing turunan tartamtu.
  • Batal / Baleni maneh. Bisa digunakake ora mung nalika nyunting simpul, nanging uga nalika mindhah, mbusak, ngganti jeneng lan operasi liyane sing ngganti struktur proyek
  • File sing digandhengake karo panjalukan dadi bagean saka proyek kasebut lan disimpen, nalika diselarasake kanthi sampurna, ora kaya Tukang Pos. (Ya, sampeyan ora perlu maneh milih file kanthi manual saben sampeyan miwiti lan nransfer menyang kolega ing arsip)

Fitur sing wis ana ing dalan

Kita ora bisa nolak godaan kanggo ngangkat tutup rahasia sajrone rilis sabanjure, utamane nalika fungsine enak banget lan wis ngalami polishing pra-rilis. Dadi, ayo ketemu.

Fungsi

Kaya sing sampeyan ngerteni, Postman nggunakake variabel dinamis sing diarani kanggo ngasilake nilai. Dhaptar mau nyengsemaken lan akèh-akèhé saka fungsi digunakake kanggo generate nilai palsu. Contone, kanggo nggawe email acak sampeyan kudu nulis:

{{$randomEmail}}

Nanging, amarga iki minangka variabel (sanajan dinamis), ora bisa digunakake minangka fungsi: ora bisa diparameter, mula ora bisa njupuk hash saka senar.

We rencana kanggo nambah "jujur" fungsi kanggo TestMace. Ing njero ${}, ora mung bisa ngakses variabel, nanging uga bisa nelpon fungsi. Sing. yen sampeyan kudu nggawe email palsu sing kondhang, kita mung bakal nulis

${faker.internet.email()}

Saliyane kasunyatan sing iku fungsi, sampeyan bakal sok dong mirsani sing iku bisa kanggo nelpon cara ing obyek. Lan tinimbang dhaftar warata amba variabel dinamis, kita duwe pesawat saka obyek diklompokaké logis.

Apa yen kita pengin ngetung hash saka string? Gampang!

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

Sampeyan bakal sok dong mirsani sing malah bisa pass variabel minangka paramèter! Ing wektu iki, pembaca sing kepengin weruh bisa uga curiga ana sing salah ...

Nggunakake JavaScript ing Ekspresi

... Lan kanggo alesan apik! Nalika syarat kanggo fungsi dibentuk, tiba-tiba kita nyimpulake yen javascript sing bener kudu ditulis ing ekspresi. Dadi saiki sampeyan bebas nulis ekspresi kaya:

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

Lan kabeh iki tanpa skrip, langsung ing kolom input!

Minangka kanggo Postman, kene sampeyan mung bisa nggunakake variabel, lan nalika nyoba kanggo nulis expression slightest, validator ipat-ipat lan nolak kanggo ngetung.

Napa TestMace luwih apik tinimbang Postman

Autocompletion majeng

Saiki TestMace duwe autocompletion standar sing katon kaya iki:

Napa TestMace luwih apik tinimbang Postman

Ing kene, saliyane baris lengkap otomatis, dituduhake apa baris iki. Mekanisme iki mung dianggo ing ekspresi sing diubengi kurung ${}.

Nalika sampeyan bisa ndeleng, panandha visual wis ditambahake sing nuduhake jinis variabel (contone, string, nomer, array, etc.). Sampeyan uga bisa ngganti mode autocompletion (contone, sampeyan bisa milih autocompletion karo variabel utawa header). Nanging malah iki dudu sing paling penting!

Pisanan, autocompletion bisa digunakake sanajan ing ekspresi (yen bisa). Iki katon kaya:

Napa TestMace luwih apik tinimbang Postman

Lan kapindho, autocompletion saiki kasedhiya ing skrip. Delengen cara kerjane!

Napa TestMace luwih apik tinimbang Postman

Ora ana gunane kanggo mbandhingake fungsi iki karo Postman - autocompletion mung diwatesi kanggo dhaptar statis variabel, header lan nilaine (benerake yen aku kelalen). Skrip ora rampung otomatis :)

kesimpulan

Oktober ditandhani taun wiwit wiwitan pangembangan produk kita. Sajrone wektu iki, kita bisa nindakake pirang-pirang perkara lan, ing sawetara aspek, kejiret karo pesaing kita. Nanging apa wae, tujuane yaiku nggawe alat sing trep kanggo nggarap API. Kita isih duwe akeh tugas sing kudu ditindakake, iki minangka rencana kasar kanggo pangembangan proyek ing taun ngarep: https://testmace.com/roadmap.

Umpan balik sampeyan bakal ngidini kita navigasi luwih akeh babagan fitur, lan dhukungan sampeyan menehi kekuwatan lan kapercayan manawa kita nindakake kanthi bener. Iki kedadeyan yen dina iki minangka dina penting kanggo proyek kita - dina TestMace diterbitake ProductHunt. Mangga ndhukung proyek kita, iku penting banget kanggo kita. Kajaba iku, ana tawaran nggodho ing kaca PH kita dina iki, lan diwatesi

Source: www.habr.com

Add a comment