TestMace – tehokas IDE API:iden kanssa työskentelyyn

Hei kaikki! Tänään haluamme esitellä IT-yleisölle tuotteemme - IDE:n API-työskentelyyn TestMace. Ehkä jotkut teistä jo tietävät meistä aikaisemmat artikkelit. Työkalua ei kuitenkaan ole tehty kattavasti, joten korjaamme tämän valitettavan puutteen.

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Motivaatio

Haluaisin aloittaa siitä, kuinka itse asiassa tulimme tähän elämään ja päätimme luoda oman työkalumme edistyneeseen työhön API:n kanssa. Aloitetaan luettelosta toiminnallisuuksista, jotka tuotteessa pitäisi olla ja joista voimme mielestämme sanoa, että se on "IDE API-sovellusten kanssa työskentelemiseen":

  • Kyselyjen ja komentosarjojen luominen ja suorittaminen (kyselysekvenssit)
  • Erilaisten testien kirjoittaminen
  • Testisukupolvi
  • Työskentely API-kuvausten kanssa, mukaan lukien tuonti sellaisista muodoista kuin Swagger, OpenAPI, WADL jne.
  • Pilkkaavia pyyntöjä
  • Hyvä tuki yhdelle tai useammalle kielelle skriptien kirjoittamiseen, mukaan lukien integrointi suosittujen kirjastojen kanssa
  • jne.

Listaa voi laajentaa oman maun mukaan. Lisäksi on tärkeää luoda paitsi itse IDE, myös tietty infrastruktuuri, kuten pilvisynkronointi, komentorivityökalut, online-valvontapalvelu jne. Loppujen lopuksi viime vuosien trendit sanelevat meille paitsi sovelluksen tehokkaan toiminnallisuuden, myös sen miellyttävän käyttöliittymän.

Kuka tarvitsee tällaisen työkalun? Ilmeisesti kaikki ne, jotka ovat ainakin jollain tavalla yhteydessä API:iden kehittämiseen ja testaamiseen, ovat kehittäjiä ja testaajia =). Lisäksi, jos ensimmäisille riittää usein yksittäisten kyselyjen ja yksinkertaisten komentosarjojen suorittaminen, niin testaajille tämä on yksi tärkeimmistä työkaluista, jonka tulisi muun muassa sisältää tehokkaan mekanismin testien kirjoittamiseen ja kyky suorittaa niitä CI.

Joten näitä ohjeita noudattaen aloimme luoda tuotettamme. Katsotaan mitä olemme saavuttaneet tässä vaiheessa.

Nopea aloitus

Aloitetaan ensimmäisestä tutustumisesta sovellukseen. Voit ladata sen verkkosivuillamme. Tällä hetkellä tuetaan kaikkia kolmea suurta alustaa - Windows, Linux, MacOS. Lataa, asenna, käynnistä. Kun käynnistät sen ensimmäisen kerran, saatat nähdä seuraavan ikkunan:

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Luo ensimmäinen pyyntösi napsauttamalla sisältöalueen yläosassa olevaa plusmerkkiä. Kyselyvälilehti näyttää tältä:

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Katsotaanpa sitä tarkemmin. Pyyntöliittymä on hyvin samankaltainen kuin suosittujen lepoasiakkaiden käyttöliittymä, mikä helpottaa siirtymistä vastaavista työkaluista. Tehdään ensimmäinen pyyntö URL-osoitteeseen https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Yleensä ensi silmäyksellä vastauspaneeli ei myöskään tuota yllätyksiä. Haluaisin kuitenkin kiinnittää huomionne joihinkin seikkoihin:

  1. Vastauksen runko esitetään puun muodossa, joka ensinnäkin lisää tietosisältöä ja toiseksi mahdollistaa mielenkiintoisten ominaisuuksien lisäämisen, joista alla
  2. Siellä on Assertions-välilehti, joka näyttää luettelon tietyn pyynnön testeistä

Kuten näet, työkaluamme voidaan käyttää kätevänä lepoasiakkaana. Emme kuitenkaan olisi täällä, jos sen ominaisuudet rajoittuisivat vain pyyntöjen lähettämiseen. Seuraavaksi hahmotan TestMacen peruskäsitteet ja toiminnallisuuden.

Peruskäsitteet ja ominaisuudet

solmu

TestMace-toiminnallisuus on jaettu erityyppisiin solmuihin. Yllä olevassa esimerkissä esitimme RequestStep-solmun toiminnan. Seuraavan tyyppiset solmut ovat kuitenkin nyt saatavilla sovelluksessa:

  • RequestStep. Tämä on solmu, jonka kautta voit luoda pyynnön. Sillä voi olla vain yksi Assertion-solmu lapsielementtinä.
  • Väite. Solmua käytetään testien kirjoittamiseen. Voi olla vain RequestStep-solmun lapsisolmu.
  • Kansio. Voit ryhmitellä kansio- ja RequestStep-solmut itseensä.
  • Projekti. Tämä on juurisolmu, joka luodaan automaattisesti projektin luomisen yhteydessä. Muussa tapauksessa se toistaa kansiosolmun toiminnallisuuden.
  • Linkki. Linkki Folder- tai RequestStep-solmuun. Mahdollistaa kyselyjen ja komentosarjojen uudelleenkäytön.
  • jne.

Solmut sijaitsevat naarmuissa (vasemmalla alhaalla oleva paneeli, jota käytetään "kertaluonteisten" kyselyiden nopeaan luomiseen) ja projekteissa (paneeli vasemmassa yläkulmassa), joita käsittelemme tarkemmin.

Hanke

Kun käynnistät sovelluksen, saatat huomata vasemmassa yläkulmassa yksinäisen Project-rivin. Tämä on projektipuun juuri. Kun aloitat projektin, luodaan väliaikainen projekti, jonka polku riippuu käyttöjärjestelmästäsi. Voit milloin tahansa siirtää projektin sinulle sopivaan paikkaan.

Projektin päätarkoituksena on kyky tallentaa tiedostojärjestelmän kehitystä ja synkronoida niitä edelleen versionhallintajärjestelmien kautta, ajaa skriptejä CI:ssä, tarkastella muutoksia jne.

muuttujat

Muuttujat ovat yksi sovelluksen tärkeimmistä mekanismeista. Niillä teistä, jotka työskentelevät TestMacen kaltaisten työkalujen kanssa, voi jo olla käsitys siitä, mistä puhumme. Joten muuttujat ovat tapa tallentaa yhteistä dataa ja viestiä solmujen välillä. Analogia ovat esimerkiksi ympäristömuuttujat Postmanissa tai Insomniassa. Menimme kuitenkin pidemmälle ja kehitimme aihetta. TestMacessa muuttujat voidaan asettaa solmutasolla. Minkä tahansa. On myös olemassa mekanismi muuttujien perimiseksi esivanhemmilta ja päällekkäisten muuttujien perimiseksi jälkeläisissä. Lisäksi on joukko sisäänrakennettuja muuttujia, joiden nimet alkavat $. Tässä on joitain niistä:

  • $prevStep — linkki edellisen solmun muuttujiin
  • $nextStep — linkki seuraavan solmun muuttujiin
  • $parent - sama asia, mutta vain esi-isälle
  • $response - vastaus palvelimelta
  • $env - nykyiset ympäristömuuttujat
  • $dynamicVar - komentosarjan tai kyselyn suorittamisen aikana luodut dynaamiset muuttujat

$env - nämä ovat oleellisesti tavallisia projektisolmutason muuttujia, mutta ympäristömuuttujien joukko muuttuu valitun ympäristön mukaan.

Muuttujaa käytetään kautta ${variable_name}
Muuttujan arvo voi olla toinen muuttuja tai jopa koko lauseke. Esimerkiksi url-muuttuja voi olla lauseke, kuten
http://${host}:${port}/${endpoint}.

Erikseen on syytä huomata mahdollisuus määrittää muuttujia komentosarjan suorittamisen aikana. Usein on esimerkiksi tarpeen tallentaa valtuutustiedot (tunnus tai koko otsikko), jotka tulivat palvelimelta onnistuneen kirjautumisen jälkeen. TestMacen avulla voit tallentaa tällaiset tiedot yhden esivanhemman dynaamisiin muuttujiin. Jotta vältetään törmäykset jo olemassa olevien "staattisten" muuttujien kanssa, dynaamiset muuttujat sijoitetaan erilliseen objektiin $dynamicVar.

skenaariot

Kaikkia yllä olevia ominaisuuksia käyttämällä voit suorittaa kokonaisia ​​kyselykomentosarjoja. Esimerkiksi kokonaisuuden luominen -> kokonaisuuden kysely -> kokonaisuuden poistaminen. Tässä tapauksessa voit esimerkiksi käyttää Folder-solmua useiden RequestStep-solmujen ryhmittelyyn.

Automaattinen täydennys ja lausekkeiden korostus

Muuttujien (eikä vain) automaattinen täydennys on välttämätöntä, jotta se olisi kätevää. Ja tietysti korostamalla lausekkeen arvoa, jotta on helpompi ja kätevämpi selventää, mitä tietty muuttuja on yhtä suuri. Juuri näin, kun on parempi nähdä kerran kuin kuulla sata kertaa:

TestMace – tehokas IDE API:iden kanssa työskentelyyn

On syytä huomata, että automaattinen täydennys ei ole toteutettu vain muuttujille, vaan myös esimerkiksi otsikoille, tiettyjen otsikoiden arvoille (esimerkiksi Content-Type-otsikon automaattinen täydennys), protokollille ja paljon muuta. Listaa päivitetään jatkuvasti sovelluksen kasvaessa.

Kumoa/toista

Muutosten kumoaminen/uudelleen tekeminen on erittäin kätevä asia, mutta jostain syystä sitä ei ole otettu käyttöön kaikkialla (eikä työkalut API-työskentelyyn ole poikkeus). Mutta me emme ole yksi niistä!) Olemme ottaneet käyttöön kumoa/uudelleen tekemistä koko projektin ajan, jolloin voit kumota tietyn solmun muokkaamisen lisäksi myös sen luomisen, poistamisen, siirron jne. Kriittisimmät toiminnot vaativat vahvistuksen.

Testien luominen

Assertion-solmu vastaa testien luomisesta. Yksi tärkeimmistä ominaisuuksista on kyky luoda testejä ilman ohjelmointia sisäänrakennettujen editorien avulla.

Väitesolmu koostuu joukosta väitteitä. Jokaisella väitteellä on oma tyyppinsä; tällä hetkellä väitteitä on useita

  1. Vertaile arvoja - vertaa vain kahta arvoa. Vertailuoperaattoreita on useita: yhtä suuri, ei yhtä suuri, suurempi kuin, suurempi tai yhtä suuri kuin, pienempi kuin, pienempi tai yhtä suuri kuin.

  2. Sisältää arvon - tarkistaa alimerkkijonon esiintymisen merkkijonossa.

  3. XPath - tarkistaa, että XML:n valitsin sisältää tietyn arvon.

  4. JavaScript-väite on mielivaltainen JavaScript-komentosarja, joka palauttaa totta onnistuessa ja epätosi epäonnistuessa.

Huomaan, että vain viimeinen vaatii käyttäjältä ohjelmointitaitoja, muut 3 väitettä luodaan graafisen käyttöliittymän avulla. Esimerkiksi tältä valintaikkuna arvojen vertailuvahvistuksen luomiseksi näyttää:

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Kirsikka kakun päällä on nopea väitteiden luominen vastauksista, katsokaa vain!

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Tällaisilla väitteillä on kuitenkin ilmeisiä rajoituksia, joiden voittamiseksi kannattaa käyttää javascript-väittämää. Ja tässä TestMace tarjoaa myös mukavan ympäristön automaattisella täydennyksellä, syntaksin korostuksella ja jopa staattisella analysaattorilla.

API-kuvaus

TestMacen avulla voit paitsi käyttää API:ta myös dokumentoida sen. Lisäksi itse kuvauksella on hierarkkinen rakenne ja se sopii orgaanisesti muuhun projektiin. Lisäksi tällä hetkellä on mahdollista tuoda API-kuvauksia Swagger 2.0 / OpenAPI 3.0 -muodoista. Itse kuvaus ei ole vain kuollutta painoa, vaan se on tiiviisti integroitu muuhun projektiin, erityisesti URL-osoitteiden automaattinen täydennys, HTTP-otsikot, kyselyparametrit jne. on saatavilla, ja tulevaisuudessa aiomme lisätä testejä. jotta vastaus on API-kuvauksen mukainen.

Jakamissolmu

Case: haluat jakaa ongelmallisen pyynnön tai jopa koko skriptin kollegasi kanssa tai yksinkertaisesti liittää sen virheeseen. TestMace kattaa myös tämän tapauksen: sovelluksen avulla voit serialisoida minkä tahansa solmun ja jopa alipuun URL-osoitteessa. Kopioi-liitä ja siirrät pyynnön helposti toiselle koneelle tai projektiin.

Ihmisten luettava projektin tallennusmuoto

Tällä hetkellä jokainen solmu on tallennettu erilliseen tiedostoon yml-tunnisteella (kuten Assertion-solmun tapauksessa) tai kansioon, jossa on solmun nimi ja index.yml-tiedosto.
Esimerkiksi yllä olevassa katsauksessa tekemämme pyyntötiedosto näyttää tältä:

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

Kuten näet, kaikki on hyvin selvää. Haluttaessa tätä muotoa voidaan helposti muokata manuaalisesti.

Tiedostojärjestelmän kansioiden hierarkia toistaa täysin projektin solmujen hierarkian. Esimerkiksi skripti, kuten:

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Yhdistää tiedostojärjestelmän seuraavaan rakenteeseen (vain kansiohierarkia näytetään, mutta olemus on selvä)

TestMace – tehokas IDE API:iden kanssa työskentelyyn

Tämä helpottaa projektin tarkistusprosessia.

Tuo Postmanista

Luettuaan kaikki yllä olevat käyttäjät haluavat kokeilla (eikö?) uutta tuotetta tai (mitä helvettiä ei leikkiä!) käyttää sitä kokonaan projektissaan. Muuttoliikkeen voi kuitenkin pysäyttää suurella määrällä saman Postimiehen kehitystä. Tällaisissa tapauksissa TestMace tukee kokoelmien tuontia Postmanista. Tällä hetkellä tuontia ilman testejä tuetaan, mutta emme sulje pois niiden tukemista tulevaisuudessa.

suunnitelmat

Toivon, että monet tähän asti lukeneet ovat pitäneet tuotteestamme. Siinä ei kuitenkaan vielä kaikki! Työ tuotteen parissa on täydessä vauhdissa, ja tässä on joitain ominaisuuksia, jotka aiomme lisätä pian.

Pilven synkronointi

Yksi kysytyimmistä ominaisuuksista. Tällä hetkellä ehdotamme versionhallintajärjestelmien käyttöä synkronointiin, minkä vuoksi teemme tämän tyyppiselle tallennusmuodolle ystävällisemmän formaatin. Tämä työnkulku ei kuitenkaan sovi kaikille, joten aiomme lisätä palvelimiemme kautta monille tutun synkronointimekanismin.

CLI

Kuten edellä mainittiin, IDE-tason tuotteet eivät tule toimeen ilman kaikenlaisia ​​integraatioita olemassa olevien sovellusten tai työnkulkujen kanssa. CLI on juuri se, mitä tarvitaan TestMacessa kirjoitettujen testien integroimiseen jatkuvaan integrointiprosessiin. Työ CLI:n parissa on täydessä vauhdissa; varhaiset versiot käynnistävät projektin yksinkertaisella konsoliraportilla. Jatkossa aiomme lisätä raportin tulosteen JUnit-muodossa.

Plugin järjestelmä

Kaikesta työkalumme tehosta huolimatta ratkaisuja vaativien tapausten joukko on rajaton. Loppujen lopuksi on tehtäviä, jotka liittyvät tiettyyn projektiin. Siksi aiomme tulevaisuudessa lisätä SDK:n laajennusten kehittämiseen ja jokainen kehittäjä voi lisätä toimintoja mielensä mukaan.

Solmutyyppien valikoiman laajentaminen

Tämä solmujoukko ei kata kaikkia käyttäjän vaatimia tapauksia. Lisättävät solmut:

  • Komentosarjasolmu - muuntaa ja sijoittaa tiedot js:n ja vastaavan API:n avulla. Tämän tyyppisen solmun avulla voit tehdä esimerkiksi ennakko- ja pyynnön jälkeisiä komentosarjoja Postmanissa.
  • GraphQL-solmu - graphql-tuki
  • Mukautettu vahvistussolmu - antaa sinun laajentaa projektin olemassa olevien väitteiden joukkoa
    Tämä ei tietenkään ole lopullinen lista, vaan sitä päivitetään jatkuvasti muun muassa palautteenne vuoksi.

FAQ

Miten eroat Postimaasta?

  1. Solmukonsepti, jonka avulla voit skaalata projektin toimintoja lähes loputtomasti
  2. Ihmisen luettava projektimuoto, jossa se tallennetaan tiedostojärjestelmään, mikä yksinkertaistaa työtä versionhallintajärjestelmien avulla
  3. Mahdollisuus luoda testejä ilman ohjelmointia ja edistyneempi js-tuki testieditorissa (automaattinen täydennys, staattinen analysaattori)
  4. Edistynyt automaattinen täydennys ja muuttujien nykyisen arvon korostus

Onko tämä avoimen lähdekoodin tuote?

Ei, tällä hetkellä lähteet ovat kiinni, mutta tulevaisuudessa harkitsemme mahdollisuutta lähteiden avaamiseen

Mistä sinä elät?)

Ilmaisen version lisäksi aiomme julkaista maksullisen version tuotteesta. Se sisältää ensisijaisesti asioita, jotka vaativat palvelinpuolen, esimerkiksi synkronoinnin.

Johtopäätös

Projektimme etenee harppauksin kohti vakaata julkaisua. Tuotetta voidaan kuitenkin jo käyttää, ja varhaisten käyttäjiemme positiivinen palaute on todiste tästä. Keräämme aktiivisesti palautetta, sillä ilman tiivistä yhteistyötä yhteisön kanssa on mahdotonta rakentaa hyvää työkalua. Löydät meidät täältä:

Virallinen sivusto

Telegram

New Rose Hotel

Facebook

Ongelmien seuranta

Odotamme toiveitasi ja ehdotuksiasi!

Lähde: will.com

Lisää kommentti