TestMace - IDE kuat kanggo nggarap API

Halo kabeh! Dina iki, kita pengin nampilake produk kita menyang publik IT - IDE kanggo nggarap API TestMace. Mbok sawetara sing wis ngerti bab kita saka artikel sadurunge. Nanging, durung ana tinjauan lengkap babagan alat kasebut, mula kita ngatasi kekurangan sing ora nyenengake iki.

TestMace - IDE kuat kanggo nggarap API

Motivasi

Aku kaya kanggo miwiti karo carane, nyatane, kita teka ing urip iki lan mutusaké kanggo nggawe alat kita dhewe kanggo majeng karya karo API. Ayo diwiwiti kanthi dhaptar fungsi sing kudu diduweni produk, sing miturut pendapat kita, kita bisa ujar manawa iki minangka "IDE kanggo nggarap API":

  • Nggawe lan nglakokake pitakon lan skrip (urutan pitakon)
  • Nulis macem-macem tes
  • Test generasi
  • Nggarap deskripsi API, kalebu ngimpor saka format kayata Swagger, OpenAPI, WADL, lsp.
  • Panjaluk moyoki
  • Dhukungan apik kanggo siji utawa luwih basa kanggo nulis skrip, kalebu integrasi karo perpustakaan populer
  • lan liya-liyane.

Dhaptar bisa ditambahi supaya cocog karo rasa sampeyan. Kajaba iku, penting kanggo nggawe ora mung IDE dhewe, nanging uga infrastruktur tartamtu, kayata sinkronisasi maya, alat baris perintah, layanan ngawasi online, lsp. Pungkasane, tren taun-taun pungkasan ndhikte kita ora mung fungsionalitas aplikasi sing kuat, nanging uga antarmuka sing nyenengake.

Sapa sing butuh alat kuwi? Temenan, kabeh sing paling ora ana hubungane karo pangembangan lan tes API yaiku pangembang lan penguji =). Kajaba iku, yen kanggo mantan asring cukup kanggo nglakokake pitakon siji lan skrip prasaja, mula kanggo penguji iki minangka salah sawijining alat utama, sing, ing antarane, kudu kalebu mekanisme sing kuat kanggo nulis tes kanthi kemampuan kanggo mbukak. CI.

Dadi, miturut pedoman kasebut, kita wiwit nggawe produk kita. Ayo ndeleng apa sing wis digayuh ing tahap iki.

wiwitan cepet

Ayo dadi miwiti karo kenalan pisanan karo aplikasi. Sampeyan bisa ngundhuh ing situs web kita. Saiki, kabeh 3 platform utama didhukung - Windows, Linux, MacOS. Ngundhuh, nginstal, miwiti. Nalika sampeyan miwiti pisanan, sampeyan bisa ndeleng jendhela ing ngisor iki:

TestMace - IDE kuat kanggo nggarap API

Кликните на плюсик вверху области контента для создания первого запроса. Таб с запросом выглядит следующим образом:

TestMace - IDE kuat kanggo nggarap API

Ayo dideleng kanthi luwih rinci. Antarmuka panyuwunan meh padha karo antarmuka klien istirahat sing populer, sing nggawe migrasi saka alat sing padha luwih gampang. Ayo nggawe panjalukan pisanan menyang url https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - IDE kuat kanggo nggarap API

Umumé, ing pandang sepisanan, panel respon uga ora nggawe kejutan. Nanging, aku pengin narik kawigaten sampeyan menyang sawetara poin:

  1. Badan tanggapan diwakili ing bentuk wit, sing pisanan nambah konten informasi lan nomer loro ngidini sampeyan nambah sawetara fitur menarik babagan ing ngisor iki.
  2. Есть вкладка Assertions, в которой отображается список тестов для данного запроса

Kaya sing sampeyan ngerteni, alat kita bisa digunakake minangka klien istirahat sing trep. Nanging, kita ora bakal ana ing kene yen kemampuane diwatesi mung kanggo ngirim panjaluk. Sabanjure, aku bakal njelasake konsep dhasar lan fungsi TestMace.

Konsep dhasar lan Fitur

Knot

Fungsi TestMace dipérang dadi macem-macem jinis kelenjar. Ing conto ing ndhuwur, kita nuduhake operasi simpul RequestStep. Nanging, jinis simpul ing ngisor iki saiki uga kasedhiya ing aplikasi:

  • RequestStep. Iki minangka simpul sing sampeyan bisa nggawe panjaluk. Iku mung bisa duwe siji simpul Assertion minangka unsur anak.
  • Pratelan. Node digunakake kanggo nulis tes. Mung bisa dadi simpul anak saka simpul RequestStep.
  • Folder. Ngidini sampeyan nglumpukake simpul Folder lan RequestStep ing awake dhewe.
  • Proyek. Iki minangka simpul ROOT, digawe kanthi otomatis nalika proyek digawe. Yen ora, mbaleni fungsi simpul Folder.
  • Link. Link menyang Folder utawa RequestStep simpul. Ngidini sampeyan nggunakake maneh pitakon lan skrip.
  • lan liya-liyane.

Node kasebut ana ing goresan (panel ing sisih kiwa ngisor, digunakake kanggo nggawe pitakon "siji-mati" kanthi cepet) lan ing proyek (panel ing sisih kiwa ndhuwur), sing bakal kita lakoni kanthi luwih rinci.

Proyek kasebut

Nalika sampeyan miwiti aplikasi kasebut, sampeyan bisa uga weruh baris Project tunggal ing pojok kiwa ndhuwur. Iki minangka oyod saka wit proyek. Nalika sampeyan miwiti proyek, proyek sementara digawe, path sing gumantung ing sistem operasi sampeyan. Sawayah-wayah sampeyan bisa mindhah proyek menyang panggonan sing trep kanggo sampeyan.

Tujuan utama proyek kasebut yaiku kemampuan kanggo ngirit pangembangan ing sistem file lan nyinkronake maneh liwat sistem kontrol versi, mbukak skrip ing CI, mriksa owah-owahan, lsp.

Variabel

Variabel minangka salah sawijining mekanisme kunci aplikasi. Sampeyan sing nggarap alat kaya TestMace bisa uga wis duwe ide babagan apa sing diomongake. Dadi, variabel minangka cara kanggo nyimpen data umum lan komunikasi antarane simpul. Analog, contone, yaiku variabel lingkungan ing Postman utawa Insomnia. Nanging, kita luwih maju lan ngembangake topik kasebut. Ing TestMace, variabel bisa disetel ing tingkat simpul. Sembarang. Ana uga mekanisme kanggo warisan variabel saka leluhur lan tumpang tindih variabel ing turunan. Kajaba iku, ana sawetara variabel sing dibangun, jeneng variabel sing dibangun diwiwiti $. Ing ngisor iki sawetara:

  • $prevStep - pranala menyang variabel saka simpul sadurunge
  • $nextStep - pranala menyang variabel saka simpul sabanjuré
  • $parent — то же самое, но только для предка
  • $response - respon saka server
  • $env - variabel lingkungan saiki
  • $dynamicVar - variabel dinamis sing digawe sajrone eksekusi skrip utawa query

$env - iki ateges variabel tingkat simpul Project biasa, Nanging, set variabel lingkungan diganti gumantung ing lingkungan sing dipilih.

Variabel diakses liwat ${variable_name}
Nilai variabel bisa dadi variabel liyane, utawa malah ekspresi kabeh. Contone, variabel url bisa dadi ekspresi kaya
http://${host}:${port}/${endpoint}.

Dhewe, kudu dicathet kamungkinan nemtokake variabel sajrone eksekusi skrip. Contone, ana asring perlu kanggo nyimpen data wewenang (token utawa kabeh header) sing teka saka server sawise login sukses. TestMace ngidini sampeyan nyimpen data kasebut menyang variabel dinamis salah sawijining leluhur. Kanggo ngindhari tabrakan karo variabel "statis" sing wis ana, variabel dinamis diselehake ing obyek sing kapisah $dynamicVar.

Skenario

Nggunakake kabeh fitur ing ndhuwur, sampeyan bisa mbukak kabeh skrip pitakon. Contone, nggawe entitas -> query entitas -> mbusak entitas. Ing kasus iki, contone, sampeyan bisa nggunakake simpul Folder kanggo klompok sawetara simpul RequestStep.

Autocompletion lan panyorot ekspresi

Kanggo karya sing trep karo variabel (lan ora mung) autocompletion perlu. Lan mesthi, nyorot nilai ekspresi supaya luwih gampang lan luwih trep kanggo njlentrehake apa variabel tartamtu padha. Iki persis yen luwih becik ndeleng sapisan tinimbang ngrungokake kaping satus:

TestMace - IDE kuat kanggo nggarap API

Wigati dicathet yen autocompletion ditindakake ora mung kanggo variabel, nanging uga, contone, kanggo header, nilai header tartamtu (contone, autocompletion kanggo header Content-Type), protokol lan liya-liyane. Dhaptar kasebut terus dianyari nalika aplikasi saya tambah akeh.

batalaken / baleni maneh

Undoing / redoing owahan iku bab banget trep, nanging sakperangan alesan iku ora dileksanakake nang endi wae (lan alat kanggo nggarap API ora pangecualian). Nanging kita dudu salah siji saka iku!) Kita wis ngleksanakake batalaken / redo saindhenging kabeh project, sing ngijini sampeyan kanggo mbatalake ora mung nyunting simpul tartamtu, nanging uga nggawe, mbusak, gerakan, etc. Operasi sing paling kritis mbutuhake konfirmasi.

Nggawe tes

Node Assertion tanggung jawab kanggo nggawe tes. Salah sawijining fitur utama yaiku kemampuan kanggo nggawe tes tanpa program, nggunakake editor sing dibangun.

Node Assertion kasusun saka sakumpulan asersi. Saben pratelan duwe jinis dhewe, saiki ana sawetara jinis pernyataan

  1. Mbandhingake nilai - mung mbandhingake 2 nilai. Ana sawetara operator comparison: padha, ora padha, luwih saka, luwih saka utawa padha, kurang saka, kurang saka utawa padha.

  2. Ngandhut nilai - mriksa kedadeyan substring ing senar.

  3. XPath - mriksa manawa pamilih ing XML ngemot nilai tartamtu.

  4. Pernyataan JavaScript minangka skrip javascript sewenang-wenang sing ngasilake bener nalika sukses lan salah yen gagal.

Aku Wigati sing mung pungkasan mbutuhake skills program saka pangguna, liyane 3 pratelan digawe nggunakake antarmuka grafis. Ing kene, contone, kaya apa dialog kanggo nggawe pernyataan mbandhingake nilai:

TestMace - IDE kuat kanggo nggarap API

Icing ing kue yaiku nggawe pernyataan kanthi cepet saka tanggapan, delengen!

TestMace - IDE kuat kanggo nggarap API

Nanging, pratelan kasebut duwe watesan sing jelas, sing sampeyan pengin nggunakake pernyataan javascript kanggo ngatasi. Lan ing kene TestMace uga nyedhiyakake lingkungan sing nyaman kanthi autocompletion, panyorot sintaks lan uga analisa statis.

Katrangan API

TestMace ngidini sampeyan ora mung nggunakake API, nanging uga kanggo document. Kajaba iku, katrangan kasebut uga duwe struktur hirarkis lan cocog sacara organik menyang proyek liyane. Kajaba iku, saiki bisa ngimpor deskripsi API saka format Swagger 2.0 / OpenAPI 3.0. Katrangan dhewe ora mung ngapusi bobot mati, nanging digabungake kanthi rapet karo proyek liyane, utamane, ngrampungake otomatis URL, header HTTP, paramèter pitakon, lan liya-liyane kasedhiya, lan ing mangsa ngarep kita bakal nambah tes. kanggo tundhuk respon karo gambaran API.

Nuduhake simpul

Kasus: sampeyan pengin nuduhake panjaluk sing ana masalah utawa malah kabeh skrip karo kolega utawa mung masangake menyang bug. TestMace nyakup kasus iki uga: aplikasi ngidini sampeyan nggawe serialisasi simpul lan malah subtree ing URL. Salin-tempel lan sampeyan bisa kanthi gampang nransfer panjalukan menyang mesin utawa proyek liyane.

Format panyimpenan proyek sing bisa diwaca manungsa

Saiki, saben simpul disimpen ing file sing kapisah kanthi ekstensi yml (kaya kasus simpul Assertion), utawa ing folder kanthi jeneng simpul lan file index.yml.
Contone, iki kaya file panyuwunan sing digawe ing review ing ndhuwur:

index.yml

children: []
variables: {}
type: RequestStep
assignVariables: []
requestData:
  request:
    method: GET
    url: 'https://next.json-generator.com/api/json/get/NJv-NT-U8'
  headers: []
  disabledInheritedHeaders: []
  params: []
  body:
    type: Json
    jsonBody: ''
    xmlBody: ''
    textBody: ''
    formData: []
    file: ''
    formURLEncoded: []
  strictSSL: Inherit
authData:
  type: inherit
name: Scratch 1

Nalika sampeyan bisa ndeleng, kabeh cetha banget. Yen dikarepake, format iki bisa gampang diowahi kanthi manual.

Hierarki folder ing sistem file rampung mbaleni hirarki simpul ing proyek kasebut. Contone, skrip kaya:

TestMace - IDE kuat kanggo nggarap API

Peta sistem file menyang struktur ing ngisor iki (mung hierarki folder sing ditampilake, nanging intine jelas)

TestMace - IDE kuat kanggo nggarap API

Sing nggawe proses review proyek luwih gampang.

Impor saka tukang pos

Sawise maca kabeh sing kasebut ing ndhuwur, sawetara pangguna pengin nyoba (bener?) Produk anyar utawa (apa ora guyon!) Gunakake kanthi lengkap ing proyek kasebut. Nanging, migrasi bisa mandheg kanthi akeh pangembangan ing Posman sing padha. Kanggo kasus kaya mengkono, TestMace ndhukung ngimpor koleksi saka Postman. Saiki, impor tanpa tes didhukung, nanging kita ora nolak ndhukung ing mangsa ngarep.

Rencana

Muga-muga akeh sing wis maca nganti saiki wis seneng karo produk kita. Nanging, ora kabeh! Bisa ing prodhuk ing ayunan lengkap lan kene sawetara fitur sing kita rencana kanggo nambah rauh.

Sinkronisasi awan

Salah sawijining fitur sing paling dijaluk. Saiki, kita ngusulake nggunakake sistem kontrol versi kanggo sinkronisasi, sing nggawe format luwih ramah kanggo jinis panyimpenan iki. Nanging, alur kerja iki ora cocog kanggo kabeh wong, mula kita ngrancang nambah mekanisme sinkronisasi sing dikenal kanggo akeh liwat server kita.

CLI

Kaya kasebut ing ndhuwur, produk tingkat IDE ora bisa ditindakake tanpa kabeh integrasi karo aplikasi utawa alur kerja sing wis ana. CLI persis apa sing dibutuhake kanggo nggabungake tes sing ditulis ing TestMace menyang proses integrasi sing terus-terusan. Pakaryan ing CLI lagi aktif; versi awal bakal miwiti proyek kasebut kanthi laporan konsol sing prasaja. Ing mangsa ngarep kita bakal nambah output laporan ing format JUnit.

Sistem plugin

Sanajan kabeh kekuwatan alat kita, set kasus sing mbutuhake solusi ora ana watesan. Sawise kabeh, ana tugas sing spesifik kanggo proyek tartamtu. Pramila ing mangsa ngarep kita bakal nambah SDK kanggo ngembangake plugins lan saben pangembang bakal bisa nambah fungsi sing dikarepake.

Nggedhekake sawetara jinis simpul

Set simpul iki ora nyakup kabeh kasus sing dibutuhake pangguna. Node sing direncanakake bakal ditambahake:

  • Simpul skrip - ngowahi lan nyelehake data nggunakake js lan API sing cocog. Nggunakake jinis simpul iki, sampeyan bisa nindakake kaya skrip pre-request lan post-request ing Postman.
  • Node GraphQL - dhukungan graphql
  • Node pratelan khusus - bakal ngidini sampeyan nggedhekake set pernyataan sing ana ing proyek kasebut
    Mesthi wae, iki dudu dhaptar pungkasan; bakal terus dianyari amarga, antara liya, tanggapan sampeyan.

FAQ

Apa bedane karo Tukang Pos?

  1. Konsep simpul, sing ngidini sampeyan meh tanpa wates ukuran fungsi proyek kasebut
  2. Format proyek sing bisa diwaca manungsa kanthi nyimpen ing sistem file, sing nyederhanakake karya nggunakake sistem kontrol versi
  3. Kemampuan kanggo nggawe tes tanpa program lan dhukungan js sing luwih maju ing editor tes (otomatis, analisa statis)
  4. Autocompletion majeng lan nyorot nilai variabel saiki

Apa iki produk open-source?

Ora, ing wayahe sumber ditutup, nanging ing mangsa ngarep kita nimbang kemungkinan mbukak sumber

Apa sampeyan manggon saka?)

Bebarengan karo versi gratis, kita rencana bakal ngeculake versi mbayar produk kasebut. Iku bakal utamané kalebu bab sing mbutuhake sisih server, contone, sinkronisasi.

kesimpulan

Proyek kita maju kanthi cepet menyang rilis sing stabil. Nanging, produk kasebut wis bisa digunakake, lan umpan balik positif saka pangguna awal minangka bukti. Kita aktif ngumpulake umpan balik, amarga tanpa kerjasama sing cedhak karo masyarakat ora mungkin kanggo mbangun alat sing apik. Sampeyan bisa nemokake kita ing kene:

Situs web resmi

Telegram

slack

Facebook

Tracker masalah

We look nerusake kanggo wishes lan saran!

Source: www.habr.com

Add a comment