TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Silav hemû! Îro em dixwazin hilbera xwe pêşkêşî raya giştî ya IT-ê bikin - IDE-yek ji bo xebata bi API-yan re TestMace. Dibe ku hinek ji we ji niha ve li ser me dizanin gotarên berê. Lêbelê, vekolînek berfireh a amûrê tune ye, ji ber vê yekê em vê kêmasiya bêbext çareser dikin.

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Motivation

Ez dixwazim dest pê bikim ka, bi rastî, em çawa hatin vê jiyanê û biryar da ku em amûrê xwe ji bo xebata pêşkeftî bi API-yê re biafirînin. Ka em bi navnîşek fonksiyonên ku divê hilberek hebin dest pê bikin, li ser vê yekê, li gorî me, em dikarin bibêjin ku ew "IDE ji bo xebata bi API-yan re" ye:

  • Çêkirin û bicihanîna pirs û skrîptan (rêzikên pirsan)
  • Nivîsandina cûrbecûr ceribandinan
  • nifşê testê
  • Bi danasînên API-yê re dixebitin, tevî anîna ji formatên wekî Swagger, OpenAPI, WADL, hwd.
  • Daxwazên tinazkar
  • Piştgiriyek baş ji bo yek an çend zimanan ji bo nivîsandina nivîsan, tevî yekbûna bi pirtûkxaneyên populer
  • û vî awayî.

Navnîşa dikare were berfireh kirin ku li gorî tama we were. Digel vê yekê, girîng e ku meriv ne tenê IDE bixwe, lê di heman demê de binesaziyek diyarkirî jî biafirîne, wek hevdemkirina ewr, amûrên xeta fermanê, karûbarê çavdêriya serhêl, hwd. Di dawiyê de, meylên salên dawî ne tenê fonksiyona hêzdar a serîlêdanê, lê di heman demê de navbeynkariya wê ya xweş jî ji me re ferz dike.

Kî hewcedarê amûrek weha ye? Eşkere ye, hemî kesên ku bi kêmî ve bi pêşkeftin û ceribandina API-yê ve girêdayî ne pêşdebir û ceribandin =). Digel vê yekê, heke ji bo yên berê pir caran bes e ku meriv lêpirsînên yekane û nivîsarên hêsan bicîh bîne, wê hingê ji bo ceribandinan ev yek ji amûrên sereke ye, ku di nav tiştên din de, divê mekanîzmayek bi hêz ji bo nivîsandina testan bi şiyana meşandina wan vehewîne. CI.

Ji ber vê yekê, li dû van rêwerzan, me dest bi afirandina hilbera xwe kir. Ka em bibînin ka me di vê qonaxê de çi bi dest xistiye.

Destpêka bilez

Werin em bi nasîna yekem bi serîlêdanê re dest pê bikin. Hûn dikarin wê dakêşin li ser malpera me. Heya nuha, her 3 platformên sereke têne piştgirî kirin - Windows, Linux, MacOS. Daxistin, saz kirin, destpêkirin. Dema ku hûn yekem car dest pê dikin, hûn dikarin pencereya jêrîn bibînin:

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Li ser nîşana plusê ya li jorê qada naverokê bikirtînin da ku daxwaza xweya yekem biafirînin. Tabloya pirsê wiha xuya dike:

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Ka em bi berfirehî lê binêrin. Navbera daxwaznameyê pir dişibihe pêwendiya xerîdarên mayî yên populer, ku koçkirina ji amûrên wekhev hêsantir dike. Ka em daxwaza yekem ji url-ê re bikin https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Bi gelemperî, di nihêrîna pêşîn de, panela bersivê jî tu surprîz dernakeve. Lêbelê ez dixwazim bala we bikşînim ser çend xalan:

  1. Laşê bersivê di forma darekê de tê temsîl kirin, ku yekem naveroka agahdariyê zêde dike û ya duyemîn jî dihêle hûn hin taybetmendiyên balkêş ên ku li jêr lê zêde bikin.
  2. Tabloyek Daxuyaniyê heye, ku navnîşek ceribandinên ji bo daxwazek diyarkirî nîşan dide

Wekî ku hûn dikarin bibînin, amûra me dikare wekî xerîdarek mayî ya hêsan were bikar anîn. Lêbelê, heke kapasîteyên wê tenê bi şandina daxwazan sînordar bûn, em ê ne li vir bin. Dûv re, ez ê têgehên bingehîn û fonksiyonên TestMace destnîşan bikim.

Têgîn û Taybetmendiyên Bingehîn

Node

Karbidestiya TestMace li cûrbecûr girêkan tê dabeş kirin. Di mînaka li jor de, me xebata girêka RequestStep nîşan da. Lêbelê, celebên girêkên jêrîn naha di serîlêdanê de jî hene:

  • RequestStep. Ev girêka ku hûn dikarin daxwazek biafirînin ev e. Ew dikare tenê yek girêk Daxuyaniyê wekî hêmanek zarok hebe.
  • Îddîa. Node ji bo nivîsandina testan tê bikaranîn. Tenê dikare bibe girêka zarokê ya RequestStep.
  • Pêçek. Destûrê dide we ku hûn girêkên Peldanka û RequestStep di nav xwe de kom bikin.
  • Rêvename. Ev girêka root e, dema ku proje were afirandin bixweber tê afirandin. Wekî din, ew fonksiyona girêka Peldankê dubare dike.
  • Girêk. Girêdana Peldanka an RequestStep node. Destûrê dide we ku hûn pirs û nivîsan ji nû ve bikar bînin.
  • û vî awayî.

Nod di xêzikan de cih digirin (panelê li jêrê çepê, ji bo afirandina bilez pirsên "yek-yek" tê bikar anîn) û di projeyan de (panela li milê çepê jor), ku em ê bi hûrgulî li ser rawestin.

Projeyê

Dema ku hûn serîlêdanê dest pê dikin, dibe ku hûn li quncika çepê ya jorîn xetek Projeyek tenê bibînin. Ev koka dara projeyê ye. Dema ku hûn projeyek dest pê dikin, projeyek demkî tê afirandin, riya ku bi pergala xebitandina we ve girêdayî ye. Di her kêliyê de hûn dikarin projeyê veguherînin cîhek ji bo we rehet.

Armanca sereke ya projeyê ew e ku meriv pêşkeftinên di pergala pelan de hilîne û wan bi pergalên kontrolkirina guhertoyê re hevdeng bike, nivîsan di CI-yê de bimeşîne, guhertinên vekolînê, hwd.

Guhêrbar

Guherbar yek ji mekanîzmayên sereke yên serîlêdanê ne. Yên ji we yên ku bi amûrên mîna TestMace re dixebitin dibe ku berê xwedan ramanek be ku em li ser çi diaxivin. Ji ber vê yekê, guhêrbar rêyek e ku daneyên hevpar hilîne û di navbera girêkan de ragihîne. Mînakî, analogek di Postman an Bêxewî de guhêrbarên jîngehê ne. Lêbelê, em bêtir çûn û mijarê pêşve xistin. Di TestMace de, guhêrbar dikarin di asta nodê de bêne danîn. Herçiyek. Di heman demê de mekanîzmayek ji bo mîraskirina guhêrbaran ji bav û kalan û guhêrbarên li hevûdu di neviyan de heye. Ji bilî vê çend guherbarên çêkirî hene, navên guherbarên çêkirî bi dest pê dikin $. Li vir hinek ji wan hene:

  • $prevStep - girêdana guhêrbarên girêka berê
  • $nextStep - bi guherbarên girêka din ve girêdin
  • $parent - heman tişt, lê tenê ji bo bav û kalan
  • $response - bersiva ji server
  • $env - guherbarên jîngeha niha
  • $dynamicVar - guhêrbarên dînamîkî yên ku di dema cîbicîkirina nivîsê an pirsê de hatine afirandin

$env - ev bi bingehîn guhêrbarên asta girêka Projeya asayî ne, lêbelê, komek guhêrbarên jîngehê li gorî jîngeha hilbijartî diguhere.

Guherbar bi rê ve tê gihîştin ${variable_name}
Nirxa guhêrbarek dikare bibe guhêrbarek din, an jî hema bêjeyek tevahî. Mînakî, guhêrbar url dikare bêjeyek mîna be
http://${host}:${port}/${endpoint}.

Ji hev veqetandî, hêjayî gotinê ye ku îhtîmala tayînkirina guhêrbaran di dema darvekirina skrîptê de. Mînakî, bi gelemperî pêdivî ye ku daneyên destûrnameyê (nîşanek an sernavek tevahî) ku piştî têketinek serketî ji serverê hatî hilanîn. TestMace dihêle hûn daneyên weha di guhêrbarên dînamîkî yên yek ji bav û kalan de hilînin. Ji bo ku bi guhêrbarên "statîk" ên jixwe heyî re ji hevûdu rû nedin, guhêrbarên dînamîk di nesneyek cihê de têne danîn. $dynamicVar.

Senaryoyên

Bi karanîna hemî taybetmendiyên jorîn, hûn dikarin hemî nivîsarên pirsê bimeşînin. Mînakî, afirandina hebûnek -> lêpirsîna hebûnek -> jêbirina hebûnek. Di vê rewşê de, mînakî, hûn dikarin girêka Peldankê bikar bînin da ku çend girêkên RequestStep kom bikin.

Xweteqandin û ronîkirina derbirînê

Ji bo xebata hêsan a bi guherbaran (û ne tenê) temamkirina otomatîkî pêdivî ye. Û bê guman, ronîkirina nirxa biwêjekê da ku hêsantir û rehettir eşkere bike ka guhêrbarek taybetî bi çi re wekhev e. Ev tam rewşek e ku meriv carekê bibîne ji sed carî bihîstinê çêtir e:

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Hêjayî gotinê ye ku temamkirina otomatîkî ne tenê ji bo guhêrbaran, lê di heman demê de, ji bo nimûne, ji bo sernivîsan, nirxên hin sernavan (mînak, temamkirina otomatîkî ji bo sernavê Content-Type), protokol û hêj bêtir jî tête bicîh kirin. Her ku serîlêdan mezin dibe navnîş her gav tê nûve kirin.

Betal/vegerandin

Vegerandin/ji nû vekirina guhertinan tiştek pir hêsan e, lê ji ber hin sedeman ew li her deverê nayê bicîh kirin (û amûrên ji bo xebata bi API-yê re ne îstîsna ne). Lê em ne yek ji wan in!) Me di tevahiya projeyê de betalkirin/ji nû ve birin, ku destûrê dide te ku hûn ne tenê sererastkirina girêkek taybetî, lê di heman demê de afirandin, jêbirin, tevger û hwd jî betal bikin. Operasyonên herî krîtîk pejirandinê hewce dike.

Afirandina testan

Node Assertion ji çêkirina ceribandinan berpirsiyar e. Yek ji taybetmendiyên sereke şiyana afirandina ceribandinên bêyî bernamekirinê, bi karanîna edîtorên çêkirî ye.

Nodek Daxuyaniyê ji komek îddîayan pêk tê. Her îddîayek celebek xwe heye; niha çend celeb îddîa hene

  1. Nirxên berhev bikin - bi tenê 2 nirxan berhev dike. Çend operatorên danberhevê hene: wekhev, ne wekhev, mezintir, mezintir an wekhev, kêmtir, kêmtir an wekhev.

  2. Nirx dihewîne - peydabûna binerêzek di rêzekê de kontrol dike.

  3. XPath - kontrol dike ku hilbijêr di XML de nirxek diyar heye.

  4. Daxuyaniya JavaScript skrîptek javascriptê ya keyfî ye ku li ser serfiraziyê rast û li ser têkçûnê jî xelet vedigerîne.

Ez destnîşan dikim ku tenê ya paşîn jêhatîbûna bernamekirinê ji bikarhêner re hewce dike, 3 îdîayên din bi karanîna navgînek grafîkî têne afirandin. Li vir, bo nimûne, diyaloga ji bo afirandina danûstendinek nirxa berhevdanê wekî xuya dike:

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Xalê li ser kekê çêkirina bilez a îddîayan ji bersivan e, tenê lê binêre!

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Lêbelê, îdîayên weha xwedan tixûbên berbiçav hene, ku dibe ku hûn bixwazin ku îdiayek javascript bikar bînin da ku bi ser bikevin. Û li vir TestMace di heman demê de jîngehek rehet bi temamkirina otomatîkî, ronîkirina hevoksaziyê û tewra analyzerek statîk jî peyda dike.

Danasîna API

TestMace destûrê dide te ku hûn ne tenê API-ê bikar bînin, lê di heman demê de wê jî belge bikin. Wekî din, ravekirin bixwe jî xwedan avahiyek hiyerarşîk e û bi organîkî di nav projeyên mayî de cih digire. Wekî din, niha mimkun e ku hûn danasîna API-ê ji formatên Swagger 2.0 / OpenAPI 3.0 têxin. Danasîn bi xwe ne tenê giraniya mirinê derewan dike, lê ji nêz ve bi projeyên mayî re yekgirtî ye, nemaze, temamkirina otomatîkî ya URL-an, sernavên HTTP, parametreyên pirsê, hwd. heye, û di pêşerojê de em plan dikin ku ceribandinan lê zêde bikin. ji bo lihevhatina bersivê bi danasîna API-ê re.

Parvekirina girêk

Mesele: hûn dixwazin daxwazek bi pirsgirêk an tewra jî nivîsarek bi hevkarek xwe re parve bikin an jî bi tenê wê bi xeletiyek ve girêbidin. TestMace vê dozê jî vedigire: serîlêdan destûrê dide we ku hûn her girêk û tewra binedarek di URL-ê de rêzdar bikin. Kopî-paste bikin û hûn dikarin bi hêsanî daxwazê ​​li makîneyek an projeyek din veguherînin.

Forma hilanînê ya projeya ku ji hêla mirovan ve tê xwendin

Heya nuha, her girêk di peldankek cihêreng de bi dirêjkirina yml (wek ku di girêka Assertion de ye), an di peldankek bi navê girêk û pelê index.yml de tê hilanîn.
Mînakî, pelê daxwaziya ku me di vekolîna li jor de çêkiriye ev e:

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

Wekî ku hûn dikarin bibînin, her tişt pir zelal e. Ger bixwaze, ev format dikare bi hêsanî bi destan were guherandin.

Hiyerarşiya peldankan di pergala pelan de bi tevahî hiyerarşiya nodên di projeyê de dubare dike. Mînakî, skrîptek mîna:

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Pergala pelan bi strukturên jêrîn nexşe dike (tenê hiyerarşiya peldankê tê xuyang kirin, lê esas zelal e)

TestMace - IDE-ya hêzdar a ku bi API-yê re dixebite

Ev pêvajoya vekolîna projeyê hêsantir dike.

Import ji Postman

Piştî xwendina hemî jorîn, hin bikarhêner dê bixwazin ku (rast?) hilberek nû biceribînin an (çi dojeh ne henek e!) bi tevahî di projeya xwe de bikar bînin. Lêbelê, koçberî dikare ji hêla hejmarek mezin a pêşveçûnên di heman Postman de were rawestandin. Ji bo rewşên weha, TestMace piştgirî dide berhevkirina ji Postman. Heya nuha, îthalata bê ceribandin têne piştgirî kirin, lê em di pêşerojê de piştgirî nadin wan.

Plans

Hêvîdarim ku gelek ji wan kesên ku heta vê nuqteyê xwendiye berhema me ecibandibe. Lêbelê, ew ne hemî ye! Xebata li ser hilberê bi lez û bez e û li vir hin taybetmendiyên ku em plan dikin ku di demek nêzîk de lê zêde bikin hene.

Têkiliya hevdemkirinê

Yek ji taybetmendiyên herî tê xwestin. Heya nuha, em pêşniyar dikin ku pergalên kontrolkirina guhertoyê ji bo hevdengkirinê bikar bînin, ji bo vê yekê em ji bo vê celeb hilanînê formatê xweştir dikin. Lêbelê, ev karûbar ji bo her kesî ne maqûl e, ji ber vê yekê em plan dikin ku bi navgîniya serverên xwe ve mekanîzmayek hevdengkirinê ku ji gelek kesan re naskirî zêde bikin.

CLI

Wekî ku li jor behs kir, hilberên asta IDE nikarin bêyî hemî cûrbecûr entegrasyonên bi serîlêdanên heyî an tevgerên xebatê re bikin. CLI bi rastî ya ku hewce ye ku ceribandinên ku di TestMace de hatine nivîsandin di pêvajoya entegrasyonê ya domdar de yek bikin. Xebata li ser CLI bi tevahî dimeşe; guhertoyên destpêkê dê projeyê bi raporek konsolê ya hêsan dest pê bikin. Di pêşerojê de em plan dikin ku hilberîna raporê di formata JUnit de zêde bikin.

Pergala Plugin

Tevî hemî hêza amûra me, komek dozên ku çareseriyê hewce dike bêsînor e. Beriya her tiştî, peywirên ku ji bo projeyek taybetî taybetî ne hene. Ji ber vê yekê di pêşerojê de em plan dikin ku ji bo pêşdebirina pêvekan SDK zêde bikin û her pêşdebir dê karibe li gorî dilê xwe fonksiyonê zêde bike.

Berfirehkirina cûrbecûr celebên girêk

Ev koma girêkan hemî dozên ku ji hêla bikarhêner ve têne xwestin nagire. Nodên ku têne plan kirin ku werin zêdekirin:

  • Nodeya Skrîptê - bi karanîna js û API-ya têkildar daneyan vediguherîne û bi cîh dike. Bi karanîna vî rengî girêk, hûn dikarin tiştên wekî pêş-daxwaz û paş-daxwaznameyên li Postman-ê bikin.
  • GraphQL node - piştgiriya graphql
  • Nodeya îsbatkirina xwerû - dê bihêle ku hûn komek îdîayên heyî yên di projeyê de berfireh bikin
    Bi xwezayî, ev ne navnîşek paşîn e; ji ber, di nav tiştên din, nerînên we de, ew ê bi berdewamî were nûve kirin.

Pirs û Bersîv

Hûn ji Postman çawa cûda ne?

  1. Têgeha girêkan, ku dihêle hûn hema hema bêdawî fonksiyona projeyê mezin bikin
  2. Forma projeya ku ji hêla mirovî ve tê xwendin bi hilanîna wê di pergalek pelê de, ku bi karanîna pergalên kontrolkirina guhertoyê kar hêsan dike
  3. Qebûlbûna çêkirina testan bêyî bernamekirin û piştgirîya js ya pêşkeftî di edîtorê testê de (xweserî, analîzkerê statîk)
  4. Ototemamkirina pêşkeftî û ronîkirina nirxa heyî ya guhêrbaran

Ma ev hilberek çavkaniya vekirî ye?

Na, niha çavkanî girtî ne, lê di paşerojê de em îhtîmala vekirina çavkaniyan dinirxînin

Tu ji çi dijî?)

Li gel guhertoya belaş, em plan dikin ku guhertoyek dravê hilberê derxin. Ew ê di serî de tiştên ku ji aliyek serverê re hewce dike vedihewîne, mînakî hevdemkirinê.

encamê

Projeya me bi lez û bez ber bi berdanek bi îstîqrar ve diçe. Lêbelê, hilber dikare jixwe were bikar anîn, û bertekên erênî yên ji bikarhênerên meyên pêşîn delîla vê yekê ye. Em bi awayekî çalak bertek berhev dikin, ji ber ku bêyî hevkariyek nêzîk bi civakê re ne gengaz e ku amûrek baş were çêkirin. Hûn dikarin me li vir bibînin:

Malpera fermî

Têlxiram

Slack

facebook

Pirsgirêkên şopkar

Em li benda daxwaz û pêşniyarên we ne!

Source: www.habr.com

Add a comment