TestMace - APIekin lan egiteko IDE indartsua

Kaixo guztioi! Gaur informatikako publikoari gure produktua aurkeztu nahi diogu, APIekin lan egiteko IDE bat TestMace. Beharbada, zuetako batzuek dagoeneko ezagutzen duzue gure berri aurreko artikuluak. Hala ere, ez da tresnaren berrikuspen integralik egin, beraz, zorigaiztoko gabezia honi aurre egiten diogu.

TestMace - APIekin lan egiteko IDE indartsua

Motibazioa

Hasi nahiko nuke nola, hain zuzen ere, bizitza honetara iritsi eta APIarekin lan aurreraturako gure tresna propioa sortzea erabaki genuen. Has gaitezen produktu batek izan behar dituen funtzionalitateen zerrendatik, eta horri buruz, gure ustez, β€œAPIekin lan egiteko IDE” bat dela esan dezakegu:

  • Kontsultak eta script-ak sortzea eta exekutatzea (kontsulten sekuentziak)
  • Hainbat motatako probak idaztea
  • Proba sortzea
  • API deskribapenekin lan egitea, Swagger, OpenAPI, WADL, etab bezalako formatuetatik inportatzea barne.
  • Eskaerak burla
  • Laguntza ona gidoiak idazteko hizkuntza bat edo gehiagorentzat, liburutegi ezagunekin integratzea barne
  • eta abar.

Zerrenda zabal daiteke zure gustura egokitzeko. Gainera, garrantzitsua da IDE bera ez ezik, azpiegitura jakin bat sortzea ere, hodeiaren sinkronizazioa, komando lerroko tresnak, lineako monitorizazio zerbitzua, etab. Azkenean, azken urteotako joerak aplikazioaren funtzionaltasun indartsua ez ezik, interfaze atsegina ere agintzen digu.

Nork behar du horrelako tresna bat? Jakina, APIen garapenarekin eta probarekin gutxienez nolabait lotuta dauden guztiak garatzaileak eta probatzaileak dira =). Gainera, lehenengoentzat sarritan nahikoa bada kontsulta bakarrak eta script soilak exekutatzeko, probalarientzat hau da tresna nagusietako bat, zeinak, besteak beste, probak idazteko mekanismo indartsua barne hartu beharko luke, horiek exekutatzeko gaitasuna duena. CI.

Beraz, jarraibide hauek jarraituz, gure produktua sortzen hasi ginen. Ea zer lortu dugun etapa honetan.

Hasiera azkarra

Has gaitezen aplikazioa lehen ezagutzen. Deskargatu dezakezu gure webgunean. Momentuz, 3 plataforma nagusiak onartzen dira: Windows, Linux, MacOS. Deskargatu, instalatu, abiarazi. Lehen aldiz abiarazten duzunean, baliteke leiho hau ikustea:

TestMace - APIekin lan egiteko IDE indartsua

Egin klik eduki-eremuaren goialdean dagoen plus ikurrean zure lehen eskaera sortzeko. Kontsulta fitxak honela dauka:

TestMace - APIekin lan egiteko IDE indartsua

Ikus dezagun zehatzago. Eskaera-interfazea gainerako bezero ezagunen interfazearen oso antzekoa da, eta horrek erraztu egiten du antzeko tresnetatik migrazioa. Egin dezagun lehen eskaera url-era https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - APIekin lan egiteko IDE indartsua

Oro har, lehen begiratuan, erantzun panelak ere ez du ezustekorik ematen. Hala ere, zure arreta erakarri nahi dut zenbait puntutan:

  1. Erantzunaren gorputza zuhaitz moduan irudikatzen da, lehenik informazio edukia gehitzen duena eta, bigarrenik, ezaugarri interesgarri batzuk gehitzeko aukera ematen du.
  2. Baieztapenak fitxa bat dago, eskaera jakin baterako proben zerrenda bistaratzen duena

Ikus dezakezunez, gure tresna atseden hartzeko bezero eroso gisa erabil daiteke. Hala ere, ez ginateke hemen egongo bere gaitasunak eskaerak bidaltzera soilik mugatuko balira. Ondoren, TestMace-ren oinarrizko kontzeptuak eta funtzionalitateak azalduko ditut.

Oinarrizko kontzeptuak eta ezaugarriak

nodoaren

TestMace funtzionaltasuna nodo mota desberdinetan banatzen da. Goiko adibidean, RequestStep nodoaren funtzionamendua erakutsi dugu. Hala ere, aplikazioan hurrengo nodo mota hauek ere eskuragarri daude orain:

  • Eskatu Urratsera. Hau da eskaera bat sor dezakezun nodoa. Baieztapen-nodo bakarra izan dezake elementu ume gisa.
  • Baieztapena. Nodoa probak idazteko erabiltzen da. RequestStep nodoaren seme-alaba soilik izan daiteke.
  • Karpeta. Karpeta eta RequestStep nodoak bere baitan taldekatzeko aukera ematen du.
  • Proiektua. Hau erro-nodoa da, proiektua sortzen denean automatikoki sortua. Bestela, Karpeta nodoaren funtzionaltasuna errepikatzen du.
  • Esteka. Esteka Karpeta edo RequestStep nodora. Kontsultak eta script-ak berrerabiltzeko aukera ematen du.
  • eta abar.

Nodoak scratchetan (beheko ezkerreko panela, "bakarreko" kontsultak azkar sortzeko erabiltzen dena) eta proiektuetan (goialdeko ezkerreko panela), xehetasun gehiagorekin sakonduko dugun.

Proiektu

Aplikazioa abiarazten duzunean, baliteke proiektuaren lerro bakar bat nabaritzea goiko ezkerreko izkinan. Hau da proiektuaren zuhaitzaren erroa. Proiektu bat hasten duzunean, aldi baterako proiektu bat sortzen da, zeinaren bidea zure sistema eragilearen araberakoa da. Edonoiz eraman dezakezu proiektua zuretzat komeni den leku batera.

Proiektuaren helburu nagusia fitxategi-sisteman garapenak gorde eta bertsio-kontrol sistemen bidez gehiago sinkronizatzea da, script-ak CIn exekutatu, aldaketak berrikustea, etab.

aldagai

Aldagaiak aplikazio baten funtsezko mekanismoetako bat dira. TestMace bezalako tresnekin lan egiten duzuenok baliteke lehendik ere zertaz ari garen ideia bat izatea. Beraz, aldagaiak datu komunak gordetzeko eta nodoen artean komunikatzeko modu bat dira. Analogo bat, adibidez, Postman edo Insomnioaren ingurune-aldagaiak dira. Hala ere, harago joan ginen eta gaia garatu genuen. TestMace-n, aldagaiak nodo mailan ezar daitezke. Edozein. Arbasoetatik aldagaiak heredatzeko eta ondorengoen aldagaiak gainjartzeko mekanismo bat ere badago. Horrez gain, barne-aldagai batzuk daude, barne-aldagaien izenak hasten dira $. Hona hemen horietako batzuk:

  • $prevStep β€” aurreko nodoaren aldagaietarako esteka
  • $nextStep β€” hurrengo nodoko aldagaietarako esteka
  • $parent - gauza bera, baina arbasoarentzat bakarrik
  • $response - zerbitzariaren erantzuna
  • $env - egungo ingurune-aldagaiak
  • $dynamicVar - script edo kontsultaren exekuzioan sortutako aldagai dinamikoak

$env - Funtsean, proiektuaren nodo-mailako aldagai arruntak dira, hala ere, ingurune-aldagaien multzoa aukeratutako ingurunearen arabera aldatzen da.

Aldagaiaren bidez sartzen da ${variable_name}
Aldagai baten balioa beste aldagai bat izan daiteke, edo baita adierazpen oso bat ere. Adibidez, url aldagaia bezalako adierazpena izan daiteke
http://${host}:${port}/${endpoint}.

Bereiz, azpimarratzekoa da script exekuzioan aldagaiak esleitzeko aukera. Esate baterako, sarritan saio-hasi ondoren zerbitzaritik etorritako baimen-datuak (token bat edo goiburu osoa) gorde beharra dago. TestMace-k datu horiek arbasoetako baten aldagai dinamikoetan gordetzeko aukera ematen du. Lehendik dauden aldagai "estatikoekin" talkak saihesteko, aldagai dinamikoak objektu bereizi batean jartzen dira. $dynamicVar.

Eszenatokiak

Goiko eginbide guztiak erabiliz, kontsulta-script osoak exekutatu ditzakezu. Adibidez, entitate bat sortzea -> entitate bat kontsultatzea -> entitate bat ezabatzea. Kasu honetan, adibidez, Folder nodoa erabil dezakezu RequestStep hainbat nodo taldekatzeko.

Osaketa automatikoa eta espresioa nabarmentzea

Aldagaiekin lan erosoa egiteko (eta ez bakarrik) osatze automatikoa beharrezkoa da. Eta noski, adierazpide baten balioa nabarmentzea aldagai jakin bat zer den berdina den argitzea errazagoa eta erosoagoa izan dadin. Horixe da, hain zuzen, hobe denean behin ikustea ehun aldiz entzutea baino:

TestMace - APIekin lan egiteko IDE indartsua

Azpimarratzekoa da osaketa automatikoa aldagaietarako ez ezik, adibidez, goiburuetarako, goiburu batzuen balioetarako (adibidez, osatze automatikoa eduki-motarako goibururako), protokoloetarako eta askoz gehiago inplementatzen dela. Zerrenda etengabe eguneratzen da aplikazioa hazten doan heinean.

Desegin/berregin

Aldaketak desegin/berregin egitea oso gauza erosoa da, baina arrazoiren bategatik ez dago edonon ezartzen (eta APIekin lan egiteko tresnak ez dira salbuespena). Baina ez gara horietako bat!) Proiektu osoan zehar desegin/berregin ezarri dugu, eta horri esker, nodo zehatz bat editatzeaz gain, sortu, ezabatzea, mugimendua, etab. Eragiketa kritikoenek berrespena behar dute.

Probak sortzea

Assertion nodoa probak sortzeaz arduratzen da. Ezaugarri nagusietako bat programaziorik gabe probak sortzeko gaitasuna da, integratutako editoreak erabiliz.

Baieztapen-nodo bat baieztapen multzo batek osatzen du. Baieztapen bakoitzak bere mota du; momentuz hainbat baieztapen mota daude

  1. Konparatu balioak - 2 balio besterik ez ditu konparatzen. Hainbat konparazio-operadore daude: berdina, ez berdina, baino handiagoa, handiagoa edo berdina, txikiagoa, txikiagoa edo berdina.

  2. Balioa dauka - kate batean azpikate bat agertzea egiaztatzen du.

  3. XPath - XML-en hautatzaileak balio jakin bat duela egiaztatzen du.

  4. JavaScript baieztapena javascript script arbitrarioa da, arrakastaz egiazkoa eta hutsegitean faltsua itzultzen duena.

Ohartu naiz azkenak soilik programatzeko trebetasunak behar dituela erabiltzaileari, beste 3 baieztapenak interfaze grafiko baten bidez sortzen direla. Hona hemen, adibidez, alderatzeko balioen baieztapena sortzeko elkarrizketa-koadroa nolakoa den:

TestMace - APIekin lan egiteko IDE indartsua

Erantzunetatik baieztapenak azkar sortzea da pastelaren goitza, begiratu besterik ez dago!

TestMace - APIekin lan egiteko IDE indartsua

Hala ere, baieztapen horiek ageriko mugak dituzte, eta baliteke javascript baieztapen bat erabili nahi izatea gainditzeko. Eta hemen TestMace-k ingurune erosoa ere eskaintzen du osatze automatikoa, sintaxia nabarmentzea eta baita analizatzaile estatiko batekin ere.

APIaren deskribapena

TestMace-k APIa erabiltzeko aukera ematen du, baita dokumentatzeko ere. Gainera, deskribapenak berak ere egitura hierarkikoa du eta organikoki egokitzen da proiektuaren gainontzekoetan. Horrez gain, gaur egun Swagger 2.0 / OpenAPI 3.0 formatuetatik API deskribapenak inportatzeko aukera dago. Deskribapenak berak ez du pisu hila bakarrik, proiektuaren gainontzekoekin estuki integratuta dago, bereziki, URLak, HTTP goiburuak, kontsulta-parametroak eta abar automatikoki osatzea eskuragarri dago, eta etorkizunean probak gehitzeko asmoa dugu. erantzuna APIaren deskribapena betetzeko.

Partekatzeko nodoa

Kasua: eskaera arazotsu bat edo baita script oso bat lankide batekin partekatu nahi duzu edo besterik gabe akats bati erantsi. TestMace-k kasu hau ere estaltzen du: aplikazioak edozein nodo eta baita azpizuhaitz bat ere URL batean serializatzeko aukera ematen du. Kopiatu-itsatsi eta erraz transferitu dezakezu eskaera beste makina edo proiektu batera.

Gizakiek irakur dezaketen proiektuak biltegiratzeko formatua

Momentuz, nodo bakoitza yml luzapena duen fitxategi bereizi batean gordetzen da (Assertion nodoarekin gertatzen den bezala), edo nodoaren izena eta index.yml fitxategia dituen karpeta batean.
Adibidez, hauxe da goiko berrikuspenean egin dugun eskaera fitxategiak:

aurkibidea.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

Ikusten duzunez, dena oso argi dago. Nahi izanez gero, formatu hau eskuz erraz edita daiteke.

Fitxategi-sistemako karpeten hierarkiak guztiz errepikatzen du proiektuko nodoen hierarkia. Adibidez, honelako gidoi bat:

TestMace - APIekin lan egiteko IDE indartsua

Fitxategi-sistema ondoko egiturarekin mapatzen du (karpeten hierarkia bakarrik erakusten da, baina funtsa argia da)

TestMace - APIekin lan egiteko IDE indartsua

Horrek proiektuaren berrikuspen prozesua errazten du.

Postmanetik inportatu

Aurreko guztia irakurri ondoren, erabiltzaile batzuek produktu berri bat probatu nahi izango dute (ezta?) edo (zer arraio ez da txantxetan!) guztiz erabili euren proiektuan. Hala ere, Postari bereko garapen ugarik eten dezake migrazioa. Kasu horietan, TestMace-k Postman-eko bildumak inportatzea onartzen du. Momentuz, probarik gabeko inportazioak onartzen dira, baina ez dugu baztertzen etorkizunean eustea.

Planak

Espero dut orain arte irakurri duten askok gure produktua gustatu izana. Hala ere, hori ez da guztia! Produktuaren lana pil-pilean dago eta hona hemen laster gehitzeko asmoa dugun ezaugarri batzuk.

Hodeiaren sinkronizazioa

Gehien eskatutako ezaugarrietako bat. Momentuz, sinkronizaziorako bertsioak kontrolatzeko sistemak erabiltzea proposatzen dugu, eta horretarako biltegiratze mota honetarako formatua atseginagoa egiten ari gara. Hala ere, lan-fluxu hau ez da guztiontzat egokia, beraz, askorentzat ezaguna den sinkronizazio mekanismo bat gehitzeko asmoa dugu gure zerbitzarien bidez.

CLI

Arestian esan bezala, IDE mailako produktuek ezin dute lehendik dauden aplikazioekin edo lan-fluxuekin mota guztietako integraziorik egin gabe. CLI TestMace-n idatzitako probak etengabeko integrazio-prozesuan integratzeko behar dena da. CLI-ren lana pil-pilean dago; hasierako bertsioek proiektua abiaraziko dute kontsola-txosten sinple batekin. Etorkizunean txostenen irteera JUnit formatuan gehitzeko asmoa dugu.

Plugin sistema

Gure tresnaren botere guztia izan arren, irtenbideak behar dituzten kasuen multzoa mugagabea da. Azken finean, proiektu jakin bati dagozkion zereginak daude. Horregatik, etorkizunean pluginak garatzeko SDK bat gehitzeko asmoa dugu eta garatzaile bakoitzak bere gustura funtzionalitatea gehitzeko aukera izango du.

Nodo moten sorta zabaltzea

Nodo multzo honek ez ditu erabiltzaileak eskatzen dituen kasu guztiak hartzen. Gehitzeko asmoa duten nodoak:

  • Script nodoa - datuak js eta dagokion APIa erabiliz bihurtzen eta jartzen ditu. Nodo mota hau erabiliz, Postman-en aurre-eskaera eta eskaera osteko script-ak bezalako gauzak egin ditzakezu.
  • GraphQL nodoa - graphql euskarria
  • Baieztapen-nodo pertsonalizatua - proiektuan dauden baieztapenen multzoa zabaltzeko aukera emango dizu
    Jakina, hau ez da behin betiko zerrenda; etengabe eguneratuko da, besteak beste, zure iritzia dela eta.

ohiko galderak

Zertan ezberdintzen zara Postmanengandik?

  1. Nodoen kontzeptua, proiektuaren funtzionaltasuna ia etengabe eskalatzeko aukera ematen duena
  2. Gizakiek irakurtzeko moduko proiektuaren formatua fitxategi-sistema batean gordeta, eta horrek lana errazten du bertsioak kontrolatzeko sistemak erabiliz
  3. Programaziorik gabe probak sortzeko gaitasuna eta js laguntza aurreratuagoa probaren editorean (osaketa automatikoa, analizatzaile estatikoa)
  4. Osatze automatiko aurreratua eta aldagaien uneko balioa nabarmentzea

Hau kode irekiko produktua al da?

Ez, momentuz iturriak itxita daude, baina etorkizunean iturriak irekitzeko aukera aztertzen ari gara

Zertaz bizi zara?)

Doako bertsioarekin batera, produktuaren ordainpeko bertsio bat kaleratzeko asmoa dugu. Batez ere zerbitzariaren aldea behar duten gauzak sartuko dira, adibidez, sinkronizazioa.

Ondorioa

Gure proiektua pausoz doa askapen egonkor baterantz. Hala ere, produktua dagoeneko erabil daiteke, eta gure lehen erabiltzaileen iritzi positiboak horren froga dira. Iritziak modu aktiboan biltzen ditugu, komunitatearekin lankidetza esturik gabe ezinezkoa delako tresna on bat eraikitzea. Hemen aurki gaitzakezu:

Webgune ofiziala

Telegrama

Galdutako

Facebook

Arazoen jarraipena

Zure nahiak eta iradokizunak espero ditugu!

Iturria: www.habr.com

Gehitu iruzkin berria