TestMace - IDE kuat pikeun gawé bareng API

Halo sadayana! Dinten ieu kami hoyong nampilkeun ka publik IT produk urang - hiji IDE pikeun gawé bareng API TestMace. Sugan sababaraha anjeun geus nyaho ngeunaan urang ti artikel saméméhna. Nanging, teu acan aya ulasan anu komprehensif ngeunaan alat éta, ku kituna urang ngémutan kakurangan anu malang ieu.

TestMace - IDE kuat pikeun gawé bareng API

alesan

Abdi hoyong mimitian ku kumaha, kanyataanna, urang sumping ka kahirupan ieu sareng mutuskeun pikeun nyiptakeun alat sorangan pikeun damel maju sareng API. Hayu urang mimitian ku daptar pungsionalitas anu kedah gaduh produk, ngeunaan anu, dina pendapat urang, urang tiasa nyarios yén éta mangrupikeun "IDE pikeun damel sareng API":

  • Nyiptakeun sareng ngalaksanakeun patarosan sareng skrip (runtuyan patarosan)
  • Nulis rupa-rupa tés
  • Generasi tés
  • Gawe sareng déskripsi API, kalebet ngimpor tina format sapertos Swagger, OpenAPI, WADL, jsb.
  • Paménta moyok
  • Pangrojong anu saé pikeun hiji atanapi langkung basa pikeun nyerat naskah, kalebet integrasi sareng perpustakaan populér
  • jeung sajabana

Daptar bisa dimekarkeun pikeun nyocogkeun rasa anjeun. Leuwih ti éta, hal anu penting pikeun nyieun teu ukur IDE sorangan, tapi ogé infrastruktur tangtu, kayaning sinkronisasi awan, parabot garis paréntah, jasa ngawaskeun online, jsb. Tungtungna, tren taun-taun ayeuna ngarahkeun kami henteu ngan ukur fungsionalitas aplikasi anu kuat, tapi ogé antarmuka anu pikaresepeun.

Saha anu peryogi alat sapertos kitu? Jelas, sakabeh jalma anu sahenteuna kumaha bae disambungkeun jeung ngembangkeun sarta nguji API mangrupakeun pamekar jeung testers =). Sumawona, upami pikeun anu baheula sering cukup pikeun ngaéksekusi patarosan tunggal sareng skrip saderhana, maka pikeun panguji ieu mangrupikeun salah sahiji alat utama, anu, antara anu sanésna, kedah kalebet mékanisme anu kuat pikeun nyerat tés kalayan kamampuan pikeun ngajalankeunana. CI.

Janten, nuturkeun tungtunan ieu, urang mimiti nyiptakeun produk urang. Hayu urang tingali naon anu urang ngahontal dina tahap ieu.

Mimitian gancang

Hayu urang mimitian ku kenalan munggaran kalayan aplikasi. Anjeun tiasa ngundeur éta dina halaman wéb kami. Ayeuna, sadaya 3 platform utama dirojong - Windows, Linux, MacOS. Unduh, pasang, peluncuran. Nalika anjeun ngaluncurkeunana pikeun kahiji kalina, anjeun tiasa ningali jandela ieu:

TestMace - IDE kuat pikeun gawé bareng API

Klik tanda tambah di luhureun wewengkon eusi pikeun nyieun pamundut munggaran anjeun. Tab pamundut sapertos kieu:

TestMace - IDE kuat pikeun gawé bareng API

Hayu urang nempo eta dina leuwih jéntré. Antarbeungeut pamundut pisan sami sareng antarbeungeut klien sésana populér, anu ngajantenkeun migrasi tina alat anu sami langkung gampang. Hayu urang ngadamel pamundut heula ka url https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - IDE kuat pikeun gawé bareng API

Sacara umum, dina glance kahiji, panel respon ogé teu buang up kejutan nanaon. Nanging, kuring hoyong narik perhatian anjeun ka sababaraha titik:

  1. Awak réspon diwakilan dina bentuk tangkal, anu mimitina nambihan eusi inpormasi sareng kadua ngamungkinkeun anjeun pikeun nambihan sababaraha fitur anu pikaresepeun di handap ieu.
  2. Aya tab Assertions, nu mintonkeun daptar tés pikeun pamundut dibikeun

Sakumaha anjeun tiasa tingali, alat kami tiasa dianggo salaku klien istirahat anu saé. Nanging, urang moal aya di dieu upami kamampuanna diwatesan ngan ukur pikeun ngirim pamundut. Salajengna, kuring bakal ngagariskeun konsép dasar sareng fungsionalitas TestMace.

Konsep Dasar sarta Fitur

titik

fungsionalitas TestMace dibagi kana tipena béda titik. Dina conto di luhur, kami nunjukkeun operasi titik RequestStep. Nanging, jinis titik-titik ieu ayeuna ogé sayogi dina aplikasi:

  • RequestStep. Ieu mangrupikeun titik dimana anjeun tiasa nyiptakeun pamundut. Éta ngan ukur tiasa gaduh hiji titik Assertion salaku unsur anak.
  • Negeskeun. Node dipaké pikeun nulis tés. Ngan ukur tiasa janten titik anak tina titik RequestStep.
  • polder. Ngidinan anjeun pikeun ngakelompokkeun titik Polder sareng RequestStep dina diri.
  • Proyék. Ieu titik akar, dijieun sacara otomatis nalika proyek dijieun. Upami teu kitu, éta ngulang pungsionalitas titik Polder.
  • Tumbu. Tumbu ka Polder atanapi RequestStep titik. Ngidinan anjeun nganggo deui patarosan sareng skrip.
  • jeung sajabana

Titik-titikna aya dina goresan (panel di kénca handap, dianggo pikeun gancang nyiptakeun patarosan "hiji-off") sareng dina proyék (panel di belah kénca luhur), anu bakal urang bahas langkung rinci.

proyek

Nalika anjeun ngaluncurkeun aplikasi, anjeun tiasa perhatikeun garis Proyék nyalira di belah kénca juru luhur. Ieu akar tangkal proyék. Sawaktos Anjeun ngamimitian proyek, hiji proyék samentara dijieun, jalur nu gumantung kana sistem operasi Anjeun. Iraha waé anjeun tiasa ngalihkeun proyék ka tempat anu cocog pikeun anjeun.

Tujuan utama proyék nyaéta kamampuan pikeun ngahemat kamajuan dina sistem file sareng nyinkronkeunana deui ngaliwatan sistem kontrol versi, ngajalankeun skrip dina CI, marios perobahan, jsb.

Variabel

Variabel mangrupikeun salah sahiji mékanisme konci tina aplikasi. Anjeun anu damel sareng alat sapertos TestMace panginten parantos gaduh ide ngeunaan naon anu urang bahas. Janten, variabel mangrupikeun cara pikeun nyimpen data umum sareng komunikasi antar titik. Analog, contona, mangrupikeun variabel lingkungan dina Postman atanapi Insomnia. Nanging, urang langkung jauh sareng ngembangkeun topik. Dina TestMace, variabel tiasa disetél dina tingkat titik. Sakur. Aya ogé mékanisme pikeun inheriting variabel ti karuhun jeung tumpang tindihna variabel dina turunan. Sajaba ti éta, aya sababaraha diwangun-di variabel, nu ngaran-ngaran diwangun-di variabel dimimitian ku $. Ieu sababaraha di antarana:

  • $prevStep - numbu ka variabel tina titik saméméhna
  • $nextStep - numbu ka variabel tina titik salajengna
  • $parent - hal anu sarua, tapi ngan pikeun karuhun
  • $response - respon ti server
  • $env - variabel lingkungan ayeuna
  • $dynamicVar - variabel dinamis dijieun salila script atawa palaksanaan query

$env - ieu dasarna variabel tingkat titik Project biasa, kumaha oge, susunan variabel lingkungan robah gumantung kana lingkungan nu dipilih.

Variabel diaksés via ${variable_name}
Nilai variabel bisa mangrupa variabel sejen, atawa malah hiji sakabéh éksprési. Contona, variabel url bisa mangrupa ekspresi kawas
http://${host}:${port}/${endpoint}.

Kapisah, éta sia noting kamungkinan assigning variabel salila palaksanaan naskah. Contona, aya mindeng kudu ngahemat data otorisasina (token atawa sakabéh lulugu) nu datang ti server sanggeus login suksés. TestMace ngidinan Anjeun pikeun nyimpen data sapertos kana variabel dinamis salah sahiji karuhun. Pikeun ngahindarkeun tabrakan sareng variabel "statis" anu tos aya, variabel dinamis disimpen dina objék anu misah $dynamicVar.

Naskah

Ngagunakeun sakabéh fitur di luhur, anjeun tiasa ngajalankeun sakabéh skrip query. Contona, nyieun hiji éntitas -> querying hiji éntitas -> mupus hiji éntitas. Dina hal ieu, contona, anjeun tiasa nganggo titik Polder pikeun ngagolongkeun sababaraha titik RequestStep.

Autocompletion sareng panyorot ekspresi

Pikeun karya merenah jeung variabel (teu ngan) autocompletion perlu. Sarta tangtu, panyorot nilai hiji éksprési sangkan leuwih gampang jeung leuwih merenah pikeun netelakeun naon variabel tinangtu sarua. Ieu persis lamun leuwih hade ningali sakali ti ngadéngé saratus kali:

TestMace - IDE kuat pikeun gawé bareng API

Perhatos yén autocompletion dilaksanakeun henteu ngan ukur pikeun variabel, tapi ogé, contona, pikeun header, nilai header anu tangtu (contona, autocompletion pikeun header Type-Content), protokol sareng seueur deui. Daptar ieu terus diropéa nalika aplikasi tumuwuh.

Balikkeun / balikkeun deui

Undoing / redoing parobahan mangrupa hal pohara merenah, tapi pikeun sababaraha alesan teu dilaksanakeun di mana waé (jeung parabot pikeun gawé bareng API aya iwal). Tapi kami henteu salah sahijina!) Kami parantos ngalaksanakeun undo / redo sapanjang sadayana proyék, anu ngamungkinkeun anjeun ngabatalkeun henteu ngan ukur ngédit titik khusus, tapi ogé nyiptakeun, ngahapus, gerakan, jsb. Operasi paling kritis merlukeun konfirmasi.

Nyiptakeun tés

Titik Assertion tanggung jawab pikeun nyieun tés. Salah sahiji fitur utama nyaéta kamampuhan pikeun nyieun tés tanpa programming, ngagunakeun éditor diwangun-di.

Titik Assertion diwangun ku sakumpulan assertions. Unggal assertion boga tipe sorangan, ayeuna aya sababaraha jenis assertions

  1. Bandingkeun nilai - ngan ukur ngabandingkeun 2 nilai. Aya sababaraha operator ngabandingkeun: sarua, teu sarua, leuwih gede ti, leuwih gede atawa sarua jeung, kurang ti, kurang atawa sarua jeung.

  2. Ngandung nilai - mariksa lumangsungna substring dina string.

  3. XPath - pariksa yén pamilih dina XML ngandung nilai nu tangtu.

  4. Cindekna JavaScript mangrupikeun skrip javascript anu sawenang-wenang anu balik leres dina kasuksésan sareng palsu nalika gagal.

Kuring dicatet yén ngan hiji panungtungan merlukeun kaahlian programming ti pamaké, nu séjén 3 assertions dijieun maké panganteur grafis. Di dieu, contona, naon dialog pikeun nyieun hiji pernyataan ngabandingkeun nilai Sigana mah:

TestMace - IDE kuat pikeun gawé bareng API

The icing on jajan mangrupa kreasi gancang assertions tina réspon, ngan kasampak di dinya!

TestMace - IDE kuat pikeun gawé bareng API

Sanajan kitu, assertions misalna boga watesan atra, nu Anjeun meureun hoyong nganggo assertions JavaScript nungkulan. Sareng di dieu TestMace ogé nyayogikeun lingkungan anu nyaman sareng autocompletion, panyorot sintaksis sareng analisa statik.

Pedaran API

TestMace ngamungkinkeun anjeun henteu ngan ukur nganggo API, tapi ogé pikeun ngadokuméntasikeunana. Leuwih ti éta, déskripsi sorangan ogé boga struktur hirarkis tur fits organically kana sesa proyék. Salaku tambahan, ayeuna mungkin pikeun ngimpor déskripsi API tina format Swagger 2.0 / OpenAPI 3.0. Katerangan sorangan henteu ngan ukur ngabohong beurat maot, tapi raket terpadu sareng sesa proyék, khususna, parantosan otomatis tina URL, header HTTP, parameter query, jsb sayogi, sareng ka hareup urang rencanana pikeun nambihan tés. pikeun minuhan respon kalayan pedaran API.

Ngabagikeun titik

Kasus: anjeun hoyong ngabagikeun pamundut anu bermasalah atanapi bahkan sadayana naskah sareng kolega atanapi ngan saukur ngagantelkeun kana bug. TestMace nyertakeun hal ieu ogé: aplikasi ngidinan Anjeun pikeun serialize sagala titik komo subtree dina URL. Salin-témpél sareng anjeun tiasa kalayan gampang nransferkeun pamundut ka mesin atanapi proyék sanés.

format gudang proyék bisa dibaca manusa

Ayeuna, unggal titik disimpen dina file anu misah sareng ekstensi yml (sapertos dina titik Assertion), atanapi dina folder anu nami node sareng file index.yml di jerona.
Salaku conto, ieu mangrupikeun file pamundut anu kami lakukeun dina ulasan di luhur sapertos kieu:

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

Sakumaha anjeun tiasa tingali, sagalana jelas pisan. Upami hoyong, format ieu tiasa gampang diédit sacara manual.

Hierarki polder dina sistem file lengkep malikan deui hirarki titik dina proyék. Contona, skrip kawas:

TestMace - IDE kuat pikeun gawé bareng API

Peta sistem file kana struktur di handap ieu (ngan hierarki folder anu dipidangkeun, tapi hakekatna jelas)

TestMace - IDE kuat pikeun gawé bareng API

Hal ieu ngajadikeun prosés review proyék gampang.

Impor ti tukang pos

Sanggeus maca sakabéh di luhur, sababaraha pamaké bakal hoyong nyobian (bener?) Produk anyar atawa (naon sih teu bercanda!) lengkep ngagunakeun eta dina proyék maranéhanana. Sanajan kitu, migrasi bisa dieureunkeun ku angka nu gede ngarupakeun kamajuan dina Postman sarua. Pikeun kasus sapertos kitu, TestMace ngadukung ngimpor koleksi ti tukang pos. Di momen, impor tanpa tés dirojong, tapi urang teu maréntah kaluar ngarojong aranjeunna dina mangsa nu bakal datang.

Rencana

Kuring miharep yén loba jalma anu geus maca nepi ka titik ieu geus resep produk urang. Sanajan kitu, éta teu sakabéh! Gawé dina produk aya dina ayunan pinuh sarta di dieu aya sababaraha fitur nu urang rencanana pikeun nambahkeun pas.

Singkronisasi awan

Salah sahiji fitur anu paling dipénta. Di momen, urang ngajukeun ngagunakeun sistem kontrol versi pikeun sinkronisasi, nu urang nyieun format leuwih ramah pikeun jenis ieu gudang. Nanging, alur kerja ieu henteu cocog kanggo sadayana, janten kami ngarencanakeun pikeun nambihan mékanisme sinkronisasi anu akrab ku seueur anu ngalangkungan server kami.

CLI

Sakumaha didadarkeun di luhur, produk IDE-tingkat moal bisa ngalakukeun tanpa sagala sorts integrations kalawan aplikasi atawa workflows aya. CLI mangrupikeun naon anu diperyogikeun pikeun ngahijikeun tés anu ditulis dina TestMace kana prosés integrasi kontinyu. Gawé dina CLI nuju ayunan pinuh; versi awal bakal ngaluncurkeun proyék kalayan laporan konsol anu saderhana. Dina mangsa nu bakal datang urang rencanana pikeun nambahkeun kaluaran laporan dina format JUnit.

Sistim plugin

Sanaos sadaya kakuatan alat kami, sakumpulan kasus anu peryogi solusi henteu terbatas. Barina ogé, aya tugas anu husus pikeun proyék nu tangtu. Éta pisan sababna naha di mangsa nu bakal datang urang rencanana pikeun nambahkeun hiji SDK pikeun ngembangkeun plugins sarta unggal pamekar bakal tiasa nambahkeun fungsionalitas nu dipikahoyong.

Ngalegaan rentang jenis titik

Set titik ieu henteu nutupan sadaya kasus anu diperyogikeun ku pangguna. Node anu rencanana bakal ditambah:

  • Titik skrip - ngarobah sareng nempatkeun data nganggo js sareng API anu saluyu. Ngagunakeun tipe ieu titik, Anjeun bisa ngalakukeun hal kawas skrip pre-request jeung post-request di Postman.
  • titik GraphQL - rojongan graphql
  • Node assertion custom - bakal ngidinan Anjeun pikeun dilegakeun susunan assertions aya dina proyék
    Alami, ieu sanes daptar final; éta bakal terus diropéa alatan, diantara hal séjén, eupan balik anjeun.

FAQ

Kumaha anjeun béda ti tukang pos?

  1. Konsep titik, nu ngidinan Anjeun pikeun ampir endlessly skala pungsionalitas proyék
  2. Format proyék anu tiasa dibaca ku manusa sareng disimpen dina sistem file, anu nyederhanakeun padamelan nganggo sistem kontrol versi
  3. Kamampuhan pikeun nyiptakeun tés tanpa pamrograman sareng dukungan js anu langkung maju dina pangropéa tés (otomatis, analisa statik)
  4. Autocompletion canggih sareng panyorot nilai variabel ayeuna

Naha ieu produk open source?

Henteu, ayeuna sumberna ditutup, tapi ka hareup urang nimbang-nimbang kamungkinan pikeun muka sumberna

Naon hirup anjeun?)

Marengan vérsi gratis, kami ngarencanakeun ngaleupaskeun vérsi produk anu mayar. Ieu utamana bakal kaasup hal anu merlukeun sisi server, Contona, sinkronisasi.

kacindekan

Proyék kami nuju ngaléngkah ka arah pelepasan anu stabil. Nanging, produkna parantos tiasa dianggo, sareng eupan balik positif ti pangguna awal urang mangrupikeun buktina. Urang aktip ngumpulkeun eupan balik, sabab tanpa gawé babarengan deukeut jeung masarakat mustahil pikeun ngawangun alat alus. Anjeun tiasa mendakan kami di dieu:

ramatloka resmi

telegram

Slack

Facebook

Tracker masalah

Kami ngarepkeun kahayang anjeun sareng saran!

sumber: www.habr.com

Tambahkeun komentar