TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Kumusta tanan! Karon gusto namong ipresentar sa publiko sa IT ang among produkto - usa ka IDE alang sa pagtrabaho sa mga API TestMace. Tingali ang uban kaninyo nahibalo na bahin kanamo gikan sa miaging mga artikulo. Bisan pa, wala’y komprehensibo nga pagrepaso sa himan, busa among gitubag kini nga dili maayo nga kakulangan.

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Pag-awhag

Gusto kong magsugod kung giunsa, sa tinuud, mianhi kami sa kini nga kinabuhi ug nakahukom sa paghimo sa among kaugalingon nga himan alang sa abante nga trabaho sa API. Magsugod kita sa usa ka lista sa pag-andar nga kinahanglan adunay usa ka produkto, kung diin, sa among opinyon, makaingon kami nga kini usa ka "IDE alang sa pagtrabaho kauban ang mga API":

  • Paghimo ug pagpatuman sa mga pangutana ug mga script (mga han-ay sa mga pangutana)
  • Pagsulat sa lainlaing mga klase sa pagsulay
  • Pagsulay nga henerasyon
  • Ang pagtrabaho sa mga paghulagway sa API, lakip ang pag-import gikan sa mga format sama sa Swagger, OpenAPI, WADL, ug uban pa.
  • Pagbiaybiay nga mga hangyo
  • Maayo nga suporta alang sa usa o daghang mga pinulongan alang sa pagsulat sa mga script, lakip ang paghiusa sa mga sikat nga librarya
  • ug uban pa.

Ang lista mahimong palapdan aron mohaum sa imong lami. Dugang pa, hinungdanon ang paghimo dili lamang sa IDE mismo, apan usa usab ka piho nga imprastraktura, sama sa pag-synchronize sa panganod, mga tool sa linya sa command, serbisyo sa pag-monitor sa online, ug uban pa. Sa katapusan, ang mga uso sa bag-ohay nga mga tuig nagdiktar kanamo dili lamang sa kusgan nga pag-andar sa aplikasyon, apan usab sa iyang matahum nga interface.

Kinsa ang nagkinahanglan sa ingon nga himan? Dayag nga, ang tanan nga adunay bisan unsang paagi nga konektado sa pag-uswag ug pagsulay sa mga API mga developer ug tester =). Dugang pa, kung alang sa nauna kanunay nga igo nga ipatuman ang usa ka pangutana ug yano nga mga script, nan alang sa mga tigsulay kini usa sa mga nag-unang himan, nga, taliwala sa ubang mga butang, kinahanglan nga maglakip sa usa ka kusgan nga mekanismo alang sa pagsulat sa mga pagsulay nga adunay kaarang sa pagpadagan niini. CI.

Busa, sa pagsunod niini nga mga giya, nagsugod kami sa paghimo sa among produkto. Atong tan-awon kung unsa ang atong nakab-ot sa kini nga yugto.

Paspas nga pagsugod

Magsugod kita sa usa ka una nga kaila sa aplikasyon. Mahimo nimo kini i-download sa among website. Sa pagkakaron, ang tanang 3 ka dagkong mga plataporma gisuportahan - Windows, Linux, MacOS. Pag-download, pag-install, paglansad. Kung gilansad nimo kini sa unang higayon, mahimo nimong makita ang mosunod nga bintana:

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

I-klik ang plus sign sa ibabaw sa content area aron paghimo sa imong unang hangyo. Ang tab sa pangutana ingon niini:

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Atong tan-awon kini sa mas detalyado. Ang interface sa hangyo susama kaayo sa interface sa mga sikat nga kliyente sa pagpahulay, nga nagpadali sa paglalin gikan sa parehas nga mga himan. Himoon nato ang unang hangyo sa url https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Sa kinatibuk-an, sa una nga pagtan-aw, ang panel sa pagtubag wala usab maghatag bisan unsang mga sorpresa. Bisan pa, gusto nako nga ipunting ang imong atensyon sa pipila ka mga punto:

  1. Ang lawas sa tubag girepresentahan sa porma sa usa ka kahoy, nga una nga nagdugang sulud sa kasayuran ug ikaduha nagtugot kanimo sa pagdugang pipila nga makapaikag nga mga bahin kung diin sa ubos
  2. Adunay tab nga Assertions, nga nagpakita sa usa ka lista sa mga pagsulay alang sa gihatag nga hangyo

Sama sa imong nakita, ang among himan mahimong magamit ingon usa ka kombenyente nga kliyente sa pagpahulay. Bisan pa, wala kami dinhi kung ang mga kapabilidad niini limitado lamang sa pagpadala sa mga hangyo. Sunod, akong i-outline ang batakang mga konsepto ug gamit sa TestMace.

Pangunang mga Konsepto ug Mga Kinaiya

Node

Ang pag-andar sa TestMace gibahin sa lainlaing mga lahi sa mga node. Sa pananglitan sa ibabaw, among gipakita ang operasyon sa RequestStep node. Bisan pa, ang mosunod nga mga matang sa mga node magamit na usab sa aplikasyon:

  • RequestLakang. Kini ang node diin mahimo ka makahimo usa ka hangyo. Mahimo ra kini nga adunay usa ka Assertion node isip elemento sa bata.
  • Pagpahayag. Ang node gigamit sa pagsulat sa mga pagsulay. Mahimo ra nga usa ka bata nga node sa RequestStep node.
  • Folder. Nagtugot kanimo sa paggrupo sa Folder ug RequestStep nodes sulod sa ilang kaugalingon.
  • Proyekto. Kini ang root node, awtomatik nga gihimo kung ang proyekto gihimo. Kung dili, gisubli niini ang pagpaandar sa Folder node.
  • Link. Link sa Folder o RequestStep node. Nagtugot kanimo sa paggamit pag-usab sa mga pangutana ug mga script.
  • ug uban pa.

Ang mga node nahimutang sa mga garas (ang panel sa ubos sa wala, gigamit alang sa dali nga paghimo sa "one-off" nga mga pangutana) ug sa mga proyekto (ang panel sa ibabaw nga wala), nga atong hisgotan sa mas detalyado.

Ang proyekto

Kung gilansad nimo ang aplikasyon, mahimo nimong mamatikdan ang usa ka linya sa Project sa taas nga wala nga suok. Kini ang gamut sa punoan sa proyekto. Kung magsugod ka sa usa ka proyekto, usa ka temporaryo nga proyekto ang gihimo, ang agianan diin nagdepende sa imong operating system. Bisan unsang orasa mahimo nimong ibalhin ang proyekto sa usa ka lugar nga kombenyente alang kanimo.

Ang nag-unang katuyoan sa proyekto mao ang abilidad sa pagluwas sa mga kalamboan sa file system ug dugang nga pag-synchronize niini pinaagi sa mga sistema sa pagkontrol sa bersyon, pagpadagan sa mga script sa CI, pagrepaso sa mga pagbag-o, ug uban pa.

Mga variable

Ang mga variable usa sa mga yawe nga mekanismo sa usa ka aplikasyon. Kamo nga nagtrabaho sa mga himan sama sa TestMace tingali adunay ideya kung unsa ang among gihisgutan. Busa, ang mga variable usa ka paagi sa pagtipig sa komon nga datos ug pagpakigsulti tali sa mga node. Ang usa ka analogue, pananglitan, mga variable sa palibot sa Postman o Insomnia. Bisan pa, nagpadayon kami ug gipauswag ang hilisgutan. Sa TestMace, ang mga variable mahimong ibutang sa lebel sa node. Bisan unsa. Adunay usab usa ka mekanismo sa pagpanunod sa mga variable gikan sa mga katigulangan ug nagsapaw nga mga variable sa mga kaliwat. Dugang pa adunay daghang mga built-in nga mga variable, ang mga ngalan sa mga built-in nga variable nagsugod sa $. Ania ang pipila niini:

  • $prevStep - link sa mga variable sa miaging node
  • $nextStep — link sa mga variable sa sunod nga node
  • $parent - ang sama nga butang, apan alang lamang sa katigulangan
  • $response - tubag gikan sa server
  • $env - kasamtangan nga mga variable sa palibot
  • $dynamicVar - dinamikong mga baryable nga gihimo atol sa script o query execution

$env - kini sa esensya ordinaryo nga Project node level variables, bisan pa, ang set sa environment variables mausab depende sa pinili nga environment.

Ang variable ma-access pinaagi sa ${variable_name}
Ang bili sa usa ka variable mahimong lain nga variable, o bisan usa ka tibuuk nga ekspresyon. Pananglitan, ang variable sa url mahimong usa ka ekspresyon nga sama
http://${host}:${port}/${endpoint}.

Sa tinuud, angay nga matikdan ang posibilidad sa pag-assign sa mga variable sa panahon sa pagpatuman sa script. Pananglitan, adunay kanunay nga panginahanglan sa pagtipig sa data sa pagtugot (usa ka timaan o ang tibuok nga header) nga gikan sa server human sa malampuson nga pag-login. Gitugotan ka sa TestMace nga i-save ang ingon nga datos sa mga dinamikong variable sa usa sa mga katigulangan. Aron malikayan ang pagbangga sa naa na nga "static" nga mga variable, ang mga dinamikong variable gibutang sa usa ka lahi nga butang $dynamicVar.

Mga senaryo

Gamit ang tanan nga mga bahin sa ibabaw, mahimo nimong ipadagan ang tibuuk nga mga script sa pangutana. Pananglitan, paghimo ug entidad -> pagpangutana sa usa ka entidad -> pagtangtang sa usa ka entidad. Sa kini nga kaso, pananglitan, mahimo nimong gamiton ang Folder node sa paggrupo sa daghang mga RequestStep node.

Autocompletion ug pag-highlight sa ekspresyon

Alang sa kombenyente nga trabaho nga adunay mga variable (ug dili lamang) gikinahanglan ang autocompletion. Ug siyempre, gipasiugda ang bili sa usa ka ekspresyon aron mas sayon ​​ug mas sayon ​​​​ang pagpatin-aw kung unsa ang usa ka partikular nga variable nga katumbas. Mao gyud kini ang kahimtang kung mas maayo nga makakita kausa kaysa makadungog usa ka gatos ka beses:

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Angayan nga matikdan nga ang autocompletion gipatuman dili lamang alang sa mga variable, apan usab, pananglitan, alang sa mga header, mga kantidad sa pipila ka mga header (pananglitan, autocompletion alang sa Content-Type header), mga protocol ug daghan pa. Ang lista kanunay nga gi-update samtang ang aplikasyon motubo.

Pag-undo/pag-usab

Ang pag-undo/pag-usab sa mga pagbag-o usa ka kombenyente nga butang, apan sa pipila ka rason wala kini gipatuman bisan asa (ug ang mga himan alang sa pagtrabaho uban sa mga API walay eksepsiyon). Apan dili kami usa niana!) Gipatuman namo ang pag-undo/pag-usab sa tibuok nga proyekto, nga nagtugot kanimo sa pag-undo dili lamang sa pag-edit sa usa ka piho nga node, kondili usab sa paghimo niini, pagtangtang, paglihok, ug uban pa. Ang labing kritikal nga mga operasyon nanginahanglan kumpirmasyon.

Paghimo mga pagsulay

Ang Assertion node maoy responsable sa paghimo og mga pagsulay. Usa sa mga nag-unang bahin mao ang abilidad sa paghimo sa mga pagsulay nga walay programming, gamit ang mga built-in nga editor.

Ang usa ka Assertion node naglangkob sa usa ka hugpong sa mga assertion. Ang matag pagpahayag adunay kaugalingon nga tipo; sa pagkakaron adunay daghang mga klase sa pagpahayag

  1. Itandi ang mga kantidad - gitandi lang ang 2 nga mga kantidad. Adunay ubay-ubay nga mga operator sa pagtandi: managsama, dili managsama, mas dako sa, mas dako o katumbas sa, ubos sa, ubos o katumbas sa.

  2. Naglangkob og bili - nagsusi sa pagkahitabo sa usa ka substring sa usa ka hilo.

  3. XPath - nagsusi nga ang tigpili sa XML adunay usa ka piho nga kantidad.

  4. Ang pagpahayag sa JavaScript usa ka arbitraryong script sa javascript nga nagbalik nga tinuod sa kalampusan ug sayup sa kapakyasan.

Namatikdan nako nga ang katapusan ra ang nanginahanglan mga kahanas sa pagprograma gikan sa tiggamit, ang uban nga 3 nga mga pahayag gihimo gamit ang usa ka graphical interface. Dinhi, pananglitan, kung unsa ang hitsura sa diyalogo alang sa paghimo usa ka pagtandi sa pagpahayag sa mga kantidad:

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Ang icing sa cake mao ang dali nga paghimo sa mga pahayag gikan sa mga tubag, tan-awa lang kini!

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Bisan pa, ang ingon nga mga pagpahayag adunay klaro nga mga limitasyon, nga mahimo nimong gamiton ang usa ka javascript nga pahayag aron mabuntog. Ug dinhi ang TestMace naghatag usab ug komportable nga palibot nga adunay autocompletion, syntax highlighting ug bisan usa ka static analyzer.

Deskripsyon sa API

Gitugotan ka sa TestMace dili lamang sa paggamit sa API, apan usab sa pagdokumento niini. Dugang pa, ang paghulagway mismo adunay usab usa ka hierarchical nga istruktura ug mohaum sa organiko sa nahabilin nga proyekto. Dugang pa, posible karon ang pag-import sa mga paghulagway sa API gikan sa mga format sa Swagger 2.0 / OpenAPI 3.0. Ang paghulagway sa iyang kaugalingon dili lamang bakak nga gibug-aton, apan hugot nga gihiusa uban sa uban nga mga proyekto, sa partikular, ang auto-pagkompleto sa mga URL, HTTP header, pangutana parameter, ug uban pa anaa, ug sa umaabot nagplano kami sa pagdugang sa mga pagsulay alang sa pagsunod sa tubag sa paghulagway sa API.

Pagpaambit sa node

Kaso: gusto nimong ipaambit ang usa ka problema nga hangyo o bisan usa ka tibuuk nga script sa usa ka kauban o i-attach lang kini sa usa ka bug. Ang TestMace naglangkob usab niini nga kaso: ang aplikasyon nagtugot kanimo sa pag-serialize sa bisan unsang node ug bisan sa usa ka subtree sa usa ka URL. Kopyaha-paste ug dali nimo mabalhin ang hangyo sa laing makina o proyekto.

Mabasa sa tawo nga pormat sa pagtipig sa proyekto

Sa pagkakaron, ang matag node gitipigan sa usa ka bulag nga file nga adunay yml extension (sama sa kaso sa Assertion node), o sa usa ka folder nga adunay ngalan sa node ug ang index.yml file niini.
Pananglitan, kini ang hitsura sa file sa hangyo nga among gihimo sa pagsusi sa taas:

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

Sama sa imong nakita, ang tanan klaro kaayo. Kung gusto, kini nga pormat dali nga ma-edit sa mano-mano.

Ang hierarchy sa mga folder sa file system hingpit nga gisubli ang hierarchy sa mga node sa proyekto. Pananglitan, usa ka script sama sa:

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Mapa ang file system sa mosunod nga istruktura (ang folder hierarchy lang ang gipakita, pero klaro ang esensya)

TestMace - usa ka gamhanan nga IDE alang sa pagtrabaho uban sa mga API

Gipadali niini ang proseso sa pagrepaso sa proyekto.

Import gikan sa Postman

Human mabasa ang tanan sa ibabaw, ang pipila ka mga tiggamit gusto nga mosulay (dili ba?) Usa ka bag-ong produkto o (unsa ang impyerno nga dili kataw-anan!) hingpit nga gamiton kini sa ilang proyekto. Bisan pa, ang paglalin mahimong mapahunong sa daghang mga pag-uswag sa parehas nga Postman. Alang sa ingon nga mga kaso, gisuportahan sa TestMace ang pag-import sa mga koleksyon gikan sa Postman. Sa pagkakaron, ang mga import nga walay mga pagsulay gisuportahan, apan wala namo isalikway ang pagsuporta kanila sa umaabot.

Mga plano

Nanghinaut ko nga daghan sa mga nakabasa hangtod niining puntoha ang nakagusto sa among produkto. Apan, dili lang kana! Ang pagtrabaho sa produkto anaa sa bug-os nga paglihok ug ania ang pipila ka mga bahin nga plano namong idugang sa dili madugay.

Pag-synchronize sa panganod

Usa sa labing gihangyo nga mga bahin. Sa pagkakaron, among gisugyot ang paggamit sa mga sistema sa pagkontrol sa bersyon alang sa pag-synchronize, diin among gihimo ang format nga mas mahigalaon alang niining matang sa pagtipig. Bisan pa, kini nga dagan sa trabaho dili angay alang sa tanan, mao nga nagplano kami nga magdugang usa ka mekanismo sa pag-synchronize nga pamilyar sa kadaghanan pinaagi sa among mga server.

CLI

Sama sa nahisgutan sa ibabaw, ang mga produkto sa lebel sa IDE dili mahimo kung wala ang tanan nga mga klase sa panagsama sa mga naglungtad nga aplikasyon o mga daloy sa trabaho. Ang CLI mao gyud ang gikinahanglan aron mahiusa ang mga pagsulay nga gisulat sa TestMace sa padayon nga proseso sa paghiusa. Ang pagtrabaho sa CLI anaa sa bug-os nga paglihok; ang unang mga bersyon maglunsad sa proyekto nga adunay usa ka yano nga taho sa console. Sa umaabot kami nagplano sa pagdugang sa report output sa JUnit format.

Sistema sa plugin

Bisan pa sa tanan nga gahum sa among himan, ang hugpong sa mga kaso nga nanginahanglan mga solusyon walay kinutuban. Human sa tanan, adunay mga buluhaton nga espesipiko sa usa ka partikular nga proyekto. Mao nga sa umaabot nagplano kami nga magdugang usa ka SDK alang sa pagpalambo sa mga plugins ug ang matag developer makahimo sa pagdugang sa pagpaandar sa ilang gusto.

Pagpalapad sa han-ay sa mga matang sa node

Kini nga hugpong sa mga node wala maglakip sa tanan nga mga kaso nga gikinahanglan sa tiggamit. Mga node nga giplano nga idugang:

  • Script node - nag-convert ug nagbutang sa datos gamit ang js ug ang katugbang nga API. Gamit kini nga matang sa node, mahimo nimo ang mga butang sama sa pre-request ug post-request nga mga script sa Postman.
  • GraphQL node - suporta sa graphql
  • Custom assertion node - magtugot kanimo sa pagpalapad sa set sa kasamtangan nga mga assertion sa proyekto
    Siyempre, dili kini usa ka katapusang lista; kini kanunay nga gi-update tungod sa, taliwala sa ubang mga butang, ang imong feedback.

FAQ

Unsa ka lahi sa Postman?

  1. Ang konsepto sa mga node, nga nagtugot kanimo sa halos walay katapusan nga pagsukod sa pagpaandar sa proyekto
  2. Mabasa sa tawo nga pormat sa proyekto uban ang pagtipig niini sa usa ka file system, nga nagpasimple sa trabaho gamit ang mga sistema sa pagkontrol sa bersyon
  3. Abilidad sa paghimo og mga pagsulay nga walay programming ug mas abante nga suporta sa js sa test editor (autocompletion, static analyzer)
  4. Ang advanced autocompletion ug pag-highlight sa kasamtangan nga bili sa mga variable

Kini ba usa ka open-source nga produkto?

Dili, sa pagkakaron ang mga tinubdan sirado, apan sa umaabot atong gikonsiderar ang posibilidad sa pag-abli sa mga tinubdan

Unsa ang imong gikinabuhian?)

Uban sa libre nga bersyon, nagplano kami nga buhian ang usa ka bayad nga bersyon sa produkto. Nag-una kini nga maglakip sa mga butang nga nanginahanglan usa ka bahin sa server, pananglitan, pag-synchronize.

konklusyon

Ang among proyekto naglihok sa mga paglukso ug mga utlanan padulong sa usa ka lig-on nga pagpagawas. Bisan pa, ang produkto mahimo nang magamit, ug ang positibo nga feedback gikan sa among unang mga tiggamit mao ang pamatuod niini. Aktibo kami nga nangolekta og feedback, tungod kay kung walay suod nga kooperasyon sa komunidad imposible ang paghimo og maayong himan. Makita nimo kami dinhi:

Opisyal nga website

telegrama

nga tapulan

Facebook

Tracker sa mga isyu

Kami nagpaabut sa imong mga gusto ug mga sugyot!

Source: www.habr.com

Idugang sa usa ka comment