TestMace - yon IDE pwisan pou travay ak API

Bonjou tout moun! Jodi a nou vle prezante bay piblik IT pwodwi nou an - yon IDE pou travay ak APIs TestMace. Petèt kèk nan nou deja konnen sou nou de atik anvan yo. Sepandan, pa gen okenn revizyon konplè sou zouti a, kidonk nou adrese enpèfeksyon malere sa a.

TestMace - yon IDE pwisan pou travay ak API

Motivasyon

Mwen ta renmen kòmanse ak ki jan, an reyalite, nou te vini nan lavi sa a ak deside kreye pwòp zouti nou an pou travay avanse ak API a. Ann kòmanse ak yon lis fonksyonalite ke yon pwodwi ta dwe genyen, sou ki, nan opinyon nou, nou ka di ke li se yon "IDE pou travay ak APIs":

  • Kreye ak egzekite demann ak scripts (sekans demann)
  • Ekri divès kalite tès
  • Tès jenerasyon
  • Travay ak deskripsyon API, ki gen ladan enpòte soti nan fòma tankou Swagger, OpenAPI, WADL, elatriye.
  • Moke demann
  • Bon sipò pou youn oswa plis lang pou ekri Scripts, ki gen ladan entegrasyon ak bibliyotèk popilè
  • elatriye

Lis la ka elaji selon gou ou. Anplis, li enpòtan pou kreye pa sèlman IDE nan tèt li, men tou, yon sèten enfrastrikti, tankou nwaj senkronizasyon, zouti liy lòd, sèvis siveyans sou entènèt, elatriye. Nan fen a, tandans yo nan dènye ane yo dikte nou pa sèlman fonksyonalite pwisan nan aplikasyon an, men tou, koòdone bèl li yo.

Ki moun ki bezwen yon zouti konsa? Li evidan, tout moun ki omwen yon jan kanmenm konekte ak devlopman ak tès API yo se devlopè ak tèsteur =). Anplis, si pou ansyen an li souvan ase pou egzekite yon sèl requêtes ak scripts senp, Lè sa a, pou tèsteur sa a se youn nan zouti prensipal yo, ki, pami lòt bagay, ta dwe gen ladan yon mekanis pwisan pou ekri tès ak kapasite nan kouri yo nan. CI.

Se konsa, swiv direktiv sa yo, nou te kòmanse kreye pwodwi nou an. Ann wè sa nou reyalize nan etap sa a.

Vit kòmanse

Ann kòmanse ak yon premye konesans ak aplikasyon an. Ou ka telechaje li sou sit entènèt nou an. Nan moman sa a, tout 3 gwo platfòm yo sipòte - Windows, Linux, MacOS. Telechaje, enstale, lanse. Lè ou lanse li pou premye fwa, ou ka wè fenèt sa a:

TestMace - yon IDE pwisan pou travay ak API

Klike sou siy plis ki anlè zòn kontni an pou kreye premye demann ou an. Onglet rechèch la sanble sa a:

TestMace - yon IDE pwisan pou travay ak API

Ann gade li an plis detay. Koòdone demann lan trè menm jan ak koòdone nan kliyan rès popilè, ki fè migrasyon soti nan zouti ki sanble pi fasil. Ann fè premye demann nan url la https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - yon IDE pwisan pou travay ak API

An jeneral, nan premye gade, panèl repons lan tou pa voye okenn sipriz. Sepandan, mwen ta renmen atire atansyon ou sou kèk pwen:

  1. Se kò a nan repons lan reprezante nan fòm lan nan yon pye bwa, ki premye ajoute kontni enfòmasyon ak dezyèmman pèmèt ou ajoute kèk karakteristik enteresan sou ki anba a.
  2. Есть вкладка Assertions, в которой отображается список тестов для данного запроса

Kòm ou ka wè, zouti nou an ka itilize kòm yon kliyan rès pratik. Sepandan, nou pa t ap isit la si kapasite li yo te limite sèlman nan voye demann. Apre sa, mwen pral dekri konsèp debaz yo ak fonksyonalite TestMace.

Konsèp Debaz ak Karakteristik

Knot

Fonksyonalite TestMace divize an diferan kalite nœuds. Nan egzanp ki anwo a, nou demontre operasyon an nan ne RequestStep la. Sepandan, kalite nœuds sa yo disponib kounye a tou nan aplikasyon an:

  • RequestStep. Sa a se ne nan kote ou ka kreye yon demann. Li ka sèlman gen yon sèl Assertion ne kòm yon eleman pitit.
  • Afimasyon. Nœud la itilize pou ekri tès yo. Kapab sèlman yon ne pitit nan ne RequestStep la.
  • Dosye. Pèmèt ou gwoupe Dosye ak RequestStep nœuds nan tèt yo.
  • Pwojè. Sa a se ne rasin lan, ki te kreye otomatikman lè pwojè a kreye. Sinon, li repete fonksyonalite a nan ne a Dosye.
  • Link. Link nan Dosye oswa RequestStep ne. Pèmèt ou réutiliser requêtes Et scripts.
  • elatriye

Nœuds yo sitiye nan grafouyen (panèl ki anba a goch, yo itilize pou byen vit kreye "yon sèl-off" demann) ak nan pwojè (panèl la nan tèt goch), ki nou pral rete sou nan plis detay.

Pwojè

Lè ou lanse aplikasyon an, ou ta ka remake yon liy Pwojè sèl nan kwen an tèt gòch. Sa a se rasin pye bwa pwojè a. Lè ou kòmanse yon pwojè, se yon pwojè tanporè kreye, chemen an ki depann sou sistèm opere ou. A nenpòt ki lè ou ka deplase pwojè a nan yon kote ki bon pou ou.

Objektif prensipal pwojè a se kapasite pou konsève pou devlopman nan sistèm dosye a ak plis senkronize yo atravè sistèm kontwòl vèsyon, kouri scripts nan CI, revize chanjman, elatriye.

Varyab

Переменные — это один из ключевых механизмов приложения. Те из вас, кто работает с инструментами, подобными TestMace, возможно, уже поняли о чем пойдет речь. Итак, переменные — это способ сохранения общих данных и коммуникации между нодами. Аналогом, например, являются переменные среды в Postman или Insomnia. Однако мы пошли дальше и развили тему. В TestMace переменные можно устанавливать на уровне ноды. Любой. Также существует механизм наследования переменных от предков и перекрытия переменных в потомках. Помимо этого существует ряд встроенных переменных, имена встроенных переменных начинаются с $. Men kèk nan yo:

  • $prevStep - lyen nan varyab nan ne anvan an
  • $nextStep - lyen ak varyab nan pwochen ne
  • $parent - menm bagay la, men sèlman pou zansèt la
  • $response - repons ki soti nan sèvè a
  • $env - varyab anviwònman aktyèl yo
  • $dynamicVar - varyab dinamik ki te kreye pandan ekzekisyon script oswa demann

$env - sa yo se esansyèlman òdinè varyab nivo ne Pwojè, sepandan, seri a nan varyab anviwònman chanje depann sou anviwònman an chwazi.

Se varyab la jwenn aksè atravè ${variable_name}
Valè yon varyab kapab yon lòt varyab, oswa menm yon ekspresyon tout antye. Pou egzanp, varyab url la kapab yon ekspresyon tankou
http://${host}:${port}/${endpoint}.

Separeman, li vo anyen posiblite pou yo asiyen varyab pandan ekzekisyon script. Pou egzanp, gen souvan yon bezwen pou konsève pou done otorizasyon (yon siy oswa header a tout antye) ki soti nan sèvè a apre yon login siksè. TestMace pèmèt ou sove done sa yo nan varyab dinamik youn nan zansèt yo. Pou evite kolizyon ak varyab "estatik" ki deja egziste, yo mete varyab dinamik yo nan yon objè separe. $dynamicVar.

Senaryo

Sèvi ak tout karakteristik ki anwo yo, ou ka kouri tout scripts rechèch. Pou egzanp, kreye yon antite -> demann yon antite -> efase yon antite. Nan ka sa a, pou egzanp, ou ka itilize ne nan Dosye pou gwoup plizyè nœuds RequestStep.

Autocompletion ak ekspresyon en

Pou travay pratik ak varyab (e pa sèlman) otocompletion nesesè. Ak nan kou, mete aksan sou valè a nan yon ekspresyon fè li pi fasil ak pi pratik klarifye ki sa yon varyab patikilye egal a. Sa a se egzakteman ka a lè li pi bon wè yon fwa pase tande yon santèn fwa:

TestMace - yon IDE pwisan pou travay ak API

Li se vo anyen ke otokonplesyon aplike pa sèlman pou varyab, men tou, pou egzanp, pou headers, valè nan sèten header (pa egzanp, otocompletion pou Header Kontni-Type), pwotokòl ak plis ankò. Lis la toujou ap mete ajou pandan aplikasyon an ap grandi.

Defèt/refè

Defèt/refè chanjman se yon bagay trè pratik, men pou kèk rezon li pa aplike tout kote (ak zouti pou travay ak API yo pa gen okenn eksepsyon). Men, nou pa youn nan sa yo!) Nou te aplike defèt / refè nan tout pwojè a, ki pèmèt ou defèt pa sèlman koreksyon yon ne espesifik, men tou, kreyasyon li yo, efase, mouvman, elatriye. Operasyon ki pi kritik yo mande pou konfimasyon.

Kreye tès yo

Ne afimasyon responsab pou kreye tès yo. Youn nan karakteristik prensipal yo se kapasite pou kreye tès san pwogramasyon, lè l sèvi avèk editè entegre.

Yon ne afimasyon konsiste de yon seri afimasyon. Chak afimasyon gen kalite pwòp li yo; nan moman sa a gen plizyè kalite afimasyon

  1. Konpare valè - tou senpleman konpare 2 valè. Gen plizyè operatè konparezon: egal, pa egal, pi gran pase, pi gran pase oswa egal a, mwens pase, mwens pase oswa egal a.

  2. Gen valè - tcheke ensidan an nan yon substring nan yon fisèl.

  3. XPath - tcheke si seleksyon an nan XML gen yon sèten valè.

  4. Afimasyon JavaScript se yon script javascript abitrè ki retounen vre lè siksè ak fo lè echèk.

Mwen sonje ke se sèlman youn nan dènye mande pou ladrès pwogramasyon nan men itilizatè a, lòt 3 deklarasyon yo kreye lè l sèvi avèk yon koòdone grafik. Isit la, pou egzanp, se sa dyalòg la pou kreye yon afimasyon konpare valè sanble:

TestMace - yon IDE pwisan pou travay ak API

Glas la sou gato a se kreyasyon an rapid nan afimasyon nan repons, jis gade nan li!

TestMace - yon IDE pwisan pou travay ak API

Sepandan, deklarasyon sa yo gen limit evidan, ke ou ka vle sèvi ak yon deklarasyon javascript simonte. Ak isit la TestMace tou bay yon anviwònman konfòtab ak autocompletion, en sentaks ak menm yon analizè estatik.

Deskripsyon API

TestMace pèmèt ou pa sèlman sèvi ak API a, men tou pou dokimante li. Anplis, deskripsyon nan tèt li tou gen yon estrikti yerarchize ak adapte òganikman nan rès la nan pwojè a. Anplis de sa, li posib kounye a enpòte deskripsyon API soti nan fòma Swagger 2.0 / OpenAPI 3.0. Deskripsyon nan tèt li pa jis kouche pwa mouri, men se byen entegre ak rès la nan pwojè a, an patikilye, oto-konplete nan URL, HTTP headers, paramèt rechèch, elatriye ki disponib, ak nan lavni an nou planifye ajoute tès. pou konfòmite repons lan ak deskripsyon API a.

Pataje ne

Ka: ou ta renmen pataje yon demann pwoblèm oswa menm yon script antye ak yon kòlèg oswa tou senpleman tache li nan yon ensèk. TestMace kouvri ka sa a tou: aplikasyon an pèmèt ou seri nenpòt ne e menm yon subtree nan yon URL. Kopi-kole epi ou ka fasilman transfere demann lan nan yon lòt machin oswa pwojè.

Fòma depo pwojè lizib pou moun

Nan moman sa a, chak ne estoke nan yon fichye separe ak ekstansyon yml (tankou se ka a ak ne Assertion), oswa nan yon katab ki gen non an nan ne ak fichye index.yml nan li.
Pou egzanp, men sa dosye demann nou te fè nan revizyon ki anwo a sanble:

endèks.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

Kòm ou ka wè, tout bagay trè klè. Si ou vle, fòma sa a ka fasilman modifye manyèlman.

Yerachi a nan dosye nan sistèm nan dosye konplètman repete yerachi a nan nœuds nan pwojè a. Pou egzanp, yon script tankou:

TestMace - yon IDE pwisan pou travay ak API

Map sistèm dosye a nan estrikti sa a (sèlman yerachi katab la montre, men sans lan klè)

TestMace - yon IDE pwisan pou travay ak API

Sa fè pwosesis revizyon pwojè a pi fasil.

Enpòte soti nan Postman

Apre ou fin li tout sa ki anwo yo, kèk itilizatè yo pral vle eseye (byen?) yon nouvo pwodwi oswa (sa lanfè a pa p jwe!) konplètman itilize li nan pwojè yo. Sepandan, migrasyon ka sispann pa yon gwo kantite devlopman nan Postman nan menm. Pou ka sa yo, TestMace sipòte enpòte koleksyon nan Postman. Nan moman sa a, enpòtasyon san tès yo sipòte, men nou pa eskli sipòte yo nan lavni.

Plan

Mwen espere ke anpil nan moun ki te li jiska pwen sa a te renmen pwodwi nou an. Sepandan, sa a se pa tout! Travay sou pwodwi a se nan swing plen ak isit la se kèk karakteristik ke nou planifye ajoute byento.

Cloud senkronizasyon

Youn nan karakteristik ki pi mande yo. Nan moman sa a, nou pwopoze itilize sistèm kontwòl vèsyon pou senkronizasyon, pou ki nou ap fè fòma a pi zanmitay pou sa a kalite depo. Sepandan, workflow sa a pa apwopriye pou tout moun, kidonk nou planifye ajoute yon mekanis senkronizasyon abitye ak anpil moun atravè serveurs nou yo.

Klima

Kòm mansyone pi wo a, pwodwi nivo IDE pa ka fè san tout kalite entegrasyon ak aplikasyon ki egziste deja oswa workflows. CLI a se egzakteman sa ki nesesè pou entegre tès ki ekri nan TestMace nan pwosesis entegrasyon kontinyèl la. Travay sou CLI a an plen swing; premye vèsyon yo pral lanse pwojè a ak yon rapò konsole senp. Nan tan kap vini an nou planifye ajoute pwodiksyon rapò nan fòma JUnit.

Sistèm Plugin

Malgre tout pouvwa zouti nou an, seri ka ki mande solisyon yo san limit. Apre yo tout, gen travay ki espesifik nan yon pwojè an patikilye. Se poutèt sa nan tan kap vini an nou planifye ajoute yon SDK pou devlope grefon ak chak pwomotè yo pral kapab ajoute fonctionnalités nan gou yo.

Elaji seri a nan kalite ne

Sa a seri nœuds pa kouvri tout ka itilizatè a mande yo. Nœuds ki planifye pou ajoute:

  • Ne Script - konvèti epi mete done lè l sèvi avèk js ak API ki koresponn lan. Sèvi ak kalite ne sa a, ou ka fè bagay tankou scripts pre-demann ak apre-demann nan Postman.
  • GraphQL ne - sipò graphql
  • Ne afimasyon Custom - pral pèmèt ou elaji seri afimasyon ki egziste deja nan pwojè a
    Естественно, это не окончательный список, он будет постоянно пополняться за счет, в том числе, и вашего фидбека.

Kèk kesyon ak tout repons

Ki jan ou diferan de Postman?

  1. Konsèp la nan nœuds, ki pèmèt ou prèske infiniman echèl fonksyonalite a nan pwojè a
  2. Fòma pwojè lizib pou moun ak sove li nan yon sistèm dosye, ki senplifye travay lè l sèvi avèk sistèm kontwòl vèsyon
  3. Kapasite pou kreye tès san pwogramasyon ak sipò js pi avanse nan editè tès la (otokonplesyon, analizè estatik)
  4. Autocompletion avanse ak mete aksan sou valè aktyèl la nan varyab yo

Èske sa se yon pwodwi sous louvri?

Non, nan moman sa a sous yo fèmen, men nan lavni an ap konsidere posibilite pou ouvè sous yo

Nan kisa w ap viv?)

Ansanm ak vèsyon an gratis, nou planifye lage yon vèsyon peye nan pwodwi a. Li pral prensipalman gen ladan bagay ki mande pou yon bò sèvè, pou egzanp, senkronizasyon.

Konklizyon

Pwojè nou an ap deplase pa franchi ak limit nan direksyon pou yon lage ki estab. Sepandan, pwodwi a ka deja itilize, ak fidbak pozitif nan itilizatè bonè nou yo se prèv sa a. Nou aktivman kolekte fidbak, paske san koperasyon sere ak kominote a li enposib pou konstwi yon bon zouti. Ou ka jwenn nou isit la:

Ofisyèl sou sit wèb

Telegram

Kanson

Facebook

Pwoblèm tracker

Nou gade pou pi devan pou volonte ou ak sijesyon!

Sous: www.habr.com

Add nouvo kòmantè