TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Hi kollha! Illum irridu nippreżentaw lill-pubbliku tal-IT il-prodott tagħna - IDE biex taħdem ma 'APIs TestMace. Forsi xi wħud minnkom diġà jafu dwarna minn artikoli preċedenti. Madankollu, ma kien hemm l-ebda reviżjoni komprensiva tal-għodda, għalhekk nindirizzaw dan in-nuqqas sfortunat.

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Motivazzjoni

Nixtieq nibda minn kif, fil-fatt, wasalna għal din il-ħajja u ddeċidejna li noħolqu l-għodda tagħna stess għal xogħol avvanzat bl-API. Ejja nibdew b'lista ta 'funzjonalità li prodott għandu jkollu, li dwarha, fl-opinjoni tagħna, nistgħu ngħidu li hija "IDE biex taħdem ma' APIs":

  • Il-ħolqien u l-eżekuzzjoni ta' mistoqsijiet u skripts (sekwenzi ta' mistoqsijiet)
  • Kitba ta 'diversi tipi ta' testijiet
  • Ġenerazzjoni tat-test
  • Ħidma b'deskrizzjonijiet API, inkluż l-importazzjoni minn formati bħal Swagger, OpenAPI, WADL, eċċ.
  • Talbiet mocking
  • Appoġġ tajjeb għal lingwa waħda jew aktar għall-kitba ta 'skripts, inkluża l-integrazzjoni ma' libreriji popolari
  • eċċ

Il-lista tista 'tiġi estiża biex taqbel mal-gosti tiegħek. Barra minn hekk, huwa importanti li toħloq mhux biss l-IDE innifsu, iżda wkoll ċerta infrastruttura, bħal sinkronizzazzjoni tas-sħab, għodod tal-linja tal-kmand, servizz ta 'monitoraġġ onlajn, eċċ. Fl-aħħar, ix-xejriet ta 'l-aħħar snin jiddettaw lilna mhux biss il-funzjonalità qawwija ta' l-applikazzjoni, iżda wkoll l-interface pjaċevoli tagħha.

Min għandu bżonn għodda bħal din? Ovvjament, dawk kollha li huma tal-inqas b'xi mod konnessi mal-iżvilupp u l-ittestjar tal-APIs huma żviluppaturi u testers =). Barra minn hekk, jekk għall-ewwel spiss ikun biżżejjed li tesegwixxi mistoqsijiet singoli u skripts sempliċi, allura għal dawk li jittestjaw din hija waħda mill-għodod ewlenin, li, fost affarijiet oħra, għandha tinkludi mekkaniżmu b'saħħtu għall-kitba ta 'testijiet bil-kapaċità li tmexxihom fi CI.

Allura, wara dawn il-linji gwida, bdejna noħolqu l-prodott tagħna. Ejja naraw x'ksibna f'dan l-istadju.

Bidu mgħaġġel

Nibdew bl-ewwel familjarità ma 'l-applikazzjoni. Tista' tniżżlu fuq il-websajt tagħna. Bħalissa, it-3 pjattaformi ewlenin kollha huma appoġġjati - Windows, Linux, MacOS. Niżżel, tinstalla, tniedi. Meta tniedih għall-ewwel darba, tista' tara t-tieqa li ġejja:

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Ikklikkja fuq is-sinjal plus fin-naħa ta' fuq taż-żona tal-kontenut biex toħloq l-ewwel talba tiegħek. It-tab tal-mistoqsija tidher bħal din:

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Ejja nħarsu lejha f'aktar dettall. L-interface tat-talba hija simili ħafna għall-interface tal-klijenti tal-mistrieħ popolari, li tagħmel il-migrazzjoni minn għodod simili aktar faċli. Ejja nagħmlu l-ewwel talba lill-url https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

B'mod ġenerali, mal-ewwel daqqa t'għajn, il-panel ta 'rispons ukoll ma jarmi l-ebda sorpriża. Madankollu, nixtieq niġbed l-attenzjoni tiegħek għal xi punti:

  1. Il-korp tar-rispons huwa ppreżentat fil-forma ta 'siġra, li l-ewwelnett iżid kontenut ta' informazzjoni u t-tieni jippermettilek iżżid xi karatteristiċi interessanti li dwarhom hawn taħt
  2. Hemm tab Asserzjonijiet, li turi lista ta’ testijiet għal talba partikolari

Kif tistgħu taraw, l-għodda tagħna tista 'tintuża bħala klijent ta' mistrieħ konvenjenti. Madankollu, aħna ma nkunux hawn jekk il-kapaċitajiet tagħha kienu limitati biss biex tibgħat talbiet. Sussegwentement, ser niddeskrivi l-kunċetti bażiċi u l-funzjonalità ta 'TestMace.

Kunċetti u Karatteristiċi Bażiċi

Knot

Il-funzjonalità ta' TestMace hija maqsuma f'tipi differenti ta' nodi. Fl-eżempju ta 'hawn fuq, urejna l-operazzjoni tan-node RequestStep. Madankollu, it-tipi ta 'nodi li ġejjin issa huma wkoll disponibbli fl-applikazzjoni:

  • TalbaPass. Dan huwa n-nodu li permezz tiegħu tista 'toħloq talba. Jista' jkollu biss node ta' Asserzjoni wieħed bħala element tifel.
  • Affermazzjoni. In-nodu jintuża biex jikteb it-testijiet. Jista' jkun biss node tifel tan-node RequestStep.
  • Folder. Jippermettilek tiġbor in-nodi Folder u RequestStep fihom infushom.
  • Proġett. Dan huwa l-għerq node, maħluqa awtomatikament meta jinħoloq il-proġett. Inkella, tirrepeti l-funzjonalità tan-node Folder.
  • Link. Link man-node Folder jew RequestStep. Jippermettilek tuża mill-ġdid mistoqsijiet u skripts.
  • eċċ

In-nodi jinsabu fil-grif (il-panel fin-naħa t'isfel tax-xellug, użat biex jinħolqu malajr mistoqsijiet "ta' darba") u fi proġetti (il-pannell fin-naħa ta 'fuq tax-xellug), li se nitkellmu fuqhom f'aktar dettall.

Proġett

Meta tniedi l-applikazzjoni, tista 'tinnota linja ta' Proġett waħedha fir-rokna ta 'fuq tax-xellug. Dan huwa l-għerq tas-siġra tal-proġett. Meta tibda proġett, jinħoloq proġett temporanju, li t-triq għalih tiddependi fuq is-sistema operattiva tiegħek. F'kull ħin tista' tmexxi l-proġett f'post konvenjenti għalik.

L-għan ewlieni tal-proġett huwa l-abbiltà li tissejvja l-iżviluppi fis-sistema tal-fajls u tkompli tissinkronizzahom permezz ta 'sistemi ta' kontroll tal-verżjoni, tmexxi skripts f'CI, tirrevedi bidliet, eċċ.

Varjabbli

Il-varjabbli huma wieħed mill-mekkaniżmi ewlenin ta' applikazzjoni. Dawk minnkom li jaħdmu b'għodda bħal TestMace jista' jkun li diġà għandhom idea ta' dak li qed nitkellmu. Allura, il-varjabbli huma mod kif taħżen data komuni u tikkomunika bejn in-nodi. Analogu, per eżempju, huma varjabbli ambjentali fil Postman jew Nuqqas ta 'rqad. Madankollu, morna aktar u żviluppajna s-suġġett. F'TestMace, il-varjabbli jistgħu jiġu stabbiliti fil-livell tan-nodi. Kwalunkwe. Hemm ukoll mekkaniżmu biex jirtu varjabbli mill-antenati u varjabbli li jikkoinċidu fid-dixxendenti. Barra minn hekk hemm numru ta 'varjabbli built-in, l-ismijiet tal-varjabbli built-in jibdew bihom $. Hawn xi wħud minnhom:

  • $prevStep — rabta mal-varjabbli tan-nodu preċedenti
  • $nextStep — link għall-varjabbli tan-nodu li jmiss
  • $parent - l-istess ħaġa, iżda biss għall-antenat
  • $response - rispons mis-server
  • $env - varjabbli ambjentali attwali
  • $dynamicVar - varjabbli dinamiċi maħluqa waqt l-eżekuzzjoni tal-iskript jew tal-mistoqsija

$env - dawn huma essenzjalment varjabbli ordinarji fil-livell tan-nodi tal-Proġett, madankollu, is-sett ta 'varjabbli ambjentali jinbidel skont l-ambjent magħżul.

Il-varjabbli huwa aċċessat permezz ${variable_name}
Il-valur ta' varjabbli jista' jkun varjabbli ieħor, jew saħansitra espressjoni sħiħa. Per eżempju, il-varjabbli url tista 'tkun espressjoni simili
http://${host}:${port}/${endpoint}.

Separatament, ta 'min jinnota l-possibbiltà li jiġu assenjati varjabbli waqt l-eżekuzzjoni tal-iskript. Pereżempju, ħafna drabi jkun hemm bżonn li tissejvja d-dejta tal-awtorizzazzjoni (token jew l-header kollu) li ġiet mis-server wara login b'suċċess. TestMace jippermettilek li tissejvja data bħal din f'varjabbli dinamiċi ta 'wieħed mill-antenati. Sabiex jiġu evitati ħabtiet ma 'varjabbli "statiċi" diġà eżistenti, varjabbli dinamiċi jitqiegħdu f'oġġett separat $dynamicVar.

Xenarji

Bl-użu tal-karatteristiċi kollha ta 'hawn fuq, tista' tħaddem skripts ta 'mistoqsijiet sħaħ. Pereżempju, ħolqien ta' entità -> mistoqsija ta' entità -> tħassir ta' entità. F'dan il-każ, pereżempju, tista 'tuża n-node Folder biex tiġbor diversi nodi RequestStep.

L-awtokompletazzjoni u l-enfasi tal-espressjoni

Għal xogħol konvenjenti b'varjabbli (u mhux biss) l-awtokompletazzjoni hija meħtieġa. U ovvjament, tenfasizza l-valur ta 'espressjoni biex tagħmilha aktar faċli u aktar konvenjenti li tiċċara x'inhu ugwali għal varjabbli partikolari. Dan huwa eżattament il-każ meta huwa aħjar li tara darba milli tisma 'mitt darba:

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Ta 'min jinnota li l-awtokompletazzjoni hija implimentata mhux biss għal varjabbli, iżda wkoll, pereżempju, għal headers, valuri ta' ċerti headers (pereżempju, awtokompletazzjoni għall-header Content-Type), protokolli u ħafna aktar. Il-lista tiġi aġġornata kontinwament hekk kif l-applikazzjoni tikber.

Ħoll/redo

It-tneħħija/redoing tal-bidliet hija ħaġa konvenjenti ħafna, iżda għal xi raġuni mhix implimentata kullimkien (u l-għodod biex taħdem ma 'APIs mhumiex eċċezzjoni). Imma aħna m'aħniex wieħed minn dawk!) Implimentajna undo/redo matul il-proġett kollu, li jippermettilek li tneħħa mhux biss editjar node speċifiku, iżda wkoll il-ħolqien, it-tħassir, il-moviment, eċċ. L-aktar operazzjonijiet kritiċi jeħtieġu konferma.

Il-ħolqien ta' testijiet

In-node Assertion huwa responsabbli għall-ħolqien tat-testijiet. Waħda mill-karatteristiċi ewlenin hija l-abbiltà li toħloq testijiet mingħajr programmar, bl-użu ta 'edituri integrati.

Nodu ta' Asserzjoni jikkonsisti f'sett ta' asserzjonijiet. Kull affermazzjoni għandha t-tip tagħha; bħalissa hemm diversi tipi ta 'affermazzjonijiet

  1. Qabbel il-valuri - sempliċement iqabbel 2 valuri. Hemm diversi operaturi ta' tqabbil: ugwali, mhux ugwali, akbar minn, akbar minn jew ugwali għal, inqas minn, inqas minn jew ugwali għal.

  2. Fih valur - jiċċekkja l-okkorrenza ta 'substring f'sekwenza.

  3. XPath - jiċċekkja li s-selettur fl-XML ikun fih ċertu valur.

  4. L-affermazzjoni JavaScript hija script javascript arbitrarju li jirritorna vera meta suċċess u falza meta falliment.

Ninnota li l-aħħar waħda biss teħtieġ ħiliet ta 'programmar mill-utent, it-3 asserzjonijiet l-oħra huma maħluqa bl-użu ta' interface grafiku. Hawn, pereżempju, kif tidher id-djalogu għall-ħolqien ta’ asserzjoni ta’ valuri ta’ paragun:

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Iċ-ċirasa fuq il-kejk hija l-ħolqien ta 'malajr ta' affermazzjonijiet minn tweġibiet, ara biss lejha!

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Madankollu, asserzjonijiet bħal dawn għandhom limitazzjonijiet ovvji, li tista' tkun trid tuża asserzjoni javascript biex tegħleb. U hawn TestMace jipprovdi wkoll ambjent komdu b'awtokompletazzjoni, enfasizzazzjoni tas-sintassi u anke analizzatur statiku.

Deskrizzjoni API

TestMace jippermettilek mhux biss tuża l-API, iżda wkoll tiddokumentaha. Barra minn hekk, id-deskrizzjoni nnifisha għandha wkoll struttura ġerarkika u tidħol organikament fil-bqija tal-proġett. Barra minn hekk, bħalissa huwa possibbli li jiġu importati deskrizzjonijiet API minn formati Swagger 2.0 / OpenAPI 3.0. Id-deskrizzjoni nnifisha ma tinsabx biss piż mejjet, iżda hija integrata mill-qrib mal-bqija tal-proġett, b'mod partikolari, l-awto-tlestija ta 'URLs, headers HTTP, parametri ta' mistoqsija, eċċ hija disponibbli, u fil-futur qed nippjanaw li nżidu testijiet għall-konformità tar-rispons mad-deskrizzjoni tal-API.

Qsim node

Każ: tixtieq taqsam talba problematika jew saħansitra kitba sħiħa ma' kollega jew sempliċement tehmeżha ma' bug. TestMace ikopri dan il-każ ukoll: l-applikazzjoni tippermettilek li tisserjelizza kwalunkwe node u anke subtree f'URL. Ikkopja-pejst u tista 'faċilment tittrasferixxi t-talba għal magna jew proġett ieħor.

Format tal-ħażna tal-proġett li jinqara mill-bniedem

Fil-mument, kull node huwa maħżun f'fajl separat bl-estensjoni yml (kif inhu l-każ man-node Assertion), jew f'folder bl-isem tan-node u l-fajl index.yml fih.
Pereżempju, hekk jidher il-fajl tat-talba li għamilna fir-reviżjoni ta' hawn fuq:

indiċi.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

Kif tistgħu taraw, kollox huwa ċar ħafna. Jekk mixtieq, dan il-format jista 'jiġi editjat faċilment manwalment.

Il-ġerarkija tal-folders fis-sistema tal-fajls tirrepeti kompletament il-ġerarkija tan-nodi fil-proġett. Per eżempju, skript bħal:

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Immappja s-sistema tal-fajls mal-istruttura li ġejja (tintwera biss il-ġerarkija tal-folders, iżda l-essenza hija ċara)

TestMace - IDE b'saħħtu biex taħdem ma 'APIs

Dan jagħmel il-proċess tar-reviżjoni tal-proġett aktar faċli.

Importazzjoni minn Puttinier

Wara li taqra dak kollu ta 'hawn fuq, xi utenti jkunu jridu jippruvaw (veru?) prodott ġdid jew (dak l-infern mhux qed jiċċajta!) jużawh kompletament fil-proġett tagħhom. Madankollu, il-migrazzjoni tista’ titwaqqaf b’numru kbir ta’ żviluppi fl-istess Puttinier. Għal każijiet bħal dawn, TestMace jappoġġja l-importazzjoni ta’ kollezzjonijiet minn Postman. Bħalissa, l-importazzjonijiet mingħajr testijiet huma appoġġjati, iżda ma neskludux li nappoġġjawhom fil-futur.

Pjanijiet

Nittama li ħafna minn dawk li qraw sa dan il-punt għoġbu l-prodott tagħna. Madankollu, dan mhux kollox! Ix-xogħol fuq il-prodott għadu għaddej u hawn xi karatteristiċi li qed nippjanaw li nżidu dalwaqt.

Sinkronizzazzjoni tas-sħab

Waħda mill-aktar karatteristiċi mitluba. Bħalissa, nipproponu li nużaw sistemi ta 'kontroll tal-verżjoni għas-sinkronizzazzjoni, li għalihom qed nagħmlu l-format aktar faċli għal dan it-tip ta' ħażna. Madankollu, dan il-fluss tax-xogħol mhuwiex adattat għal kulħadd, għalhekk qed nippjanaw li nżidu mekkaniżmu ta 'sinkronizzazzjoni familjari għal ħafna permezz tas-servers tagħna.

CLI

Kif imsemmi hawn fuq, il-prodotti fil-livell IDE ma jistgħux jgħaddu mingħajr kull tip ta 'integrazzjoni ma' applikazzjonijiet jew flussi tax-xogħol eżistenti. Is-CLI hija eżattament dak li huwa meħtieġ biex jintegra testijiet miktuba f'TestMace fil-proċess ta' integrazzjoni kontinwa. Ix-xogħol fuq is-CLI għadu għaddej; il-verżjonijiet bikrija se jniedu l-proġett b'rapport sempliċi tal-console. Fil-futur qed nippjanaw li nżidu l-output tar-rapport fil-format JUnit.

Sistema ta 'plugin

Minkejja l-qawwa kollha tal-għodda tagħna, is-sett ta 'każijiet li jeħtieġu soluzzjonijiet huwa illimitat. Wara kollox, hemm kompiti li huma speċifiċi għal proġett partikolari. Huwa għalhekk li fil-futur qed nippjanaw li nżidu SDK għall-iżvilupp tal-plugins u kull żviluppatur ikun jista 'jżid il-funzjonalità skont il-predisposizzjoni tiegħu.

Tespandi l-firxa ta 'tipi ta' nodi

Dan is-sett ta' nodi ma jkoprix il-każijiet kollha meħtieġa mill-utent. Nodi li huma ppjanati li jiżdiedu:

  • Script node - tikkonverti u tpoġġi d-dejta bl-użu ta 'js u l-API korrispondenti. Bl-użu ta 'dan it-tip ta' node, tista 'tagħmel affarijiet bħal skripts ta' qabel it-talba u ta 'wara t-talba fi Postman.
  • GraphQL node - appoġġ graphql
  • Nodu ta 'affermazzjoni personalizzat - se jippermettilek tespandi s-sett ta' affermazzjonijiet eżistenti fil-proġett
    Naturalment, din mhix lista finali; se tiġi aġġornata kontinwament minħabba, fost affarijiet oħra, ir-rispons tiegħek.

FAQ

Kif int differenti minn Postman?

  1. Il-kunċett ta 'nodi, li jippermettilek li kważi bla tarf tiskala l-funzjonalità tal-proġett
  2. Format ta 'proġett li jinqara mill-bniedem b'issejvjar f'sistema ta' fajls, li tissimplifika x-xogħol bl-użu ta 'sistemi ta' kontroll tal-verżjoni
  3. Kapaċità li toħloq testijiet mingħajr programmar u appoġġ js aktar avvanzat fl-editur tat-test (awtokompletazzjoni, analizzatur statiku)
  4. Komplezzjoni awtomatika avvanzata u enfasi tal-valur attwali tal-varjabbli

Dan huwa prodott open-source?

Le, bħalissa s-sorsi huma magħluqa, iżda fil-futur qed nikkunsidraw il-possibbiltà li niftħu s-sorsi

Minn xiex tgħix?)

Flimkien mal-verżjoni b'xejn, qed nippjanaw li nirrilaxxaw verżjoni mħallsa tal-prodott. Se tinkludi primarjament affarijiet li jeħtieġu naħa tas-server, pereżempju, sinkronizzazzjoni.

Konklużjoni

Il-proġett tagħna qed jimxi b'mod leaps u limiti lejn rilaxx stabbli. Madankollu, il-prodott diġà jista 'jintuża, u r-rispons pożittiv mill-utenti bikrija tagħna huwa prova ta' dan. Aħna niġbru rispons b'mod attiv, għax mingħajr kooperazzjoni mill-qrib mal-komunità huwa impossibbli li tinbena għodda tajba. Tista' ssibna hawn:

Websajt uffiċjali

Telegramma

Slack

facebook

Tracker tal-kwistjonijiet

Nistennew bil-ħerqa x-xewqat u s-suġġerimenti tiegħek!

Sors: www.habr.com

Żid kumment