Kial TestMace estas pli bona ol Postman

Kial TestMace estas pli bona ol Postman

Saluton al ĉiuj, jen vi iras TestMace! Eble multaj homoj scias pri ni de de niaj antaŭa artikoloj. Por tiuj, kiuj ĵus aliĝis: ni disvolvas IDE por labori kun la TestMace API. La plej ofta demando kiam vi komparas TestMace kun konkurantaj produktoj estas "Kiel vi diferencas de Postman?" Ni decidis, ke estas tempo doni detalan respondon al ĉi tiu demando. Malsupre ni skizis niajn avantaĝojn Poŝtisto.

Divido en nodojn

Se vi laboras kun Postman, tiam vi scias, ke la peta interfaco enhavas ĉiujn necesajn funkciojn. Estas skriptoj, testoj, kaj, fakte, la petoj mem. Ĉi tio faciligas por komencantoj, sed en grandaj scenaroj ĉi tiu aliro ne estas fleksebla. Kio se vi volas krei plurajn demandojn kaj fari agregadon sur ili? Kio se vi volas efektivigi skripton sen peto aŭ plurajn logike apartigitajn skriptojn en vico? Post ĉio, estus bona ideo apartigi testojn de regulaj utilaj skriptoj. Krome, la aliro "aldonu ĉiujn funkciojn en unu nodon" ne estas skalebla - la interfaco rapide troŝarĝiĝas.

TestMace komence dividas ĉiujn funkciojn en malsamajn specojn de nodoj. Ĉu vi ŝatus fari peton? Ĝi estas por vi peto paŝo nodo Ĉu vi volas skribi skripton? Ĝi estas por vi skripto nodo Ĉu vi bezonas provojn? Bonvolu - Aserto nodo Ho jes, vi ankoraŭ povas envolvi ĉi tiun tutan aferon dosierujo nodo Kaj ĉio ĉi povas esti facile kombinita unu kun la alia. Ĉi tiu aliro ne nur estas tre fleksebla, sed ankaŭ, laŭ la principo de ununura respondeco, permesas vin uzi nur tion, kion vi vere bezonas nuntempe. Kial mi bezonas skriptojn kaj testojn se mi volas nur fari peton?

Hom-legebla projektformato

Estas koncipa diferenco inter TestMace kaj Postman en la maniero kiel ili estas konservitaj. En Postman, ĉiuj petoj estas konservitaj ie en loka stokado. Se necesas dividi petojn inter pluraj uzantoj, tiam vi devas uzi la enkonstruitan sinkronigon. Fakte, ĉi tio estas ĝenerale akceptita aliro, sed ne sen ĝiaj malavantaĝoj. Kio pri datumsekureco? Post ĉio, la politiko de iuj kompanioj eble ne permesas stoki datumojn kun triaj. Tamen, ni pensas, ke TestMace havas ion pli bonan por proponi! Kaj la nomo de ĉi tiu plibonigo estas "homlegebla projekto-formato".

Ni komencu per tio, ke en TestMace, principe, ekzistas "projekta" ento. Kaj la aplikaĵo estis komence evoluigita kun okulo al stokado de projektoj en versio-kontrolsistemoj: la projektarbo estas preskaŭ unu-kontraŭ-unu projekciita sur la dosierstrukturon, yaml estas uzata kiel la konserva formato (sen kromaj krampoj kaj komoj), kaj la dosiero reprezentado de ĉiu nodo estas priskribita detale en la dokumentado kun komentoj. Sed plejofte vi ne rigardos tie - ĉiuj kamponomoj havas logikan nomojn.

Kion tio donas al la uzanto? Ĉi tio permesas vin ŝanĝi la laborfluon de la teamo tre flekseble, uzante konatajn alirojn. Ekzemple, programistoj povas stoki projekton en la sama deponejo kiel la backend. En branĉoj, krom ŝanĝi la kodbazon mem, la programisto povas korekti ekzistantajn demandajn skriptojn kaj testojn. Post fari ŝanĝojn al la deponejo (git, svn, mercurial - kion ajn vi plej ŝatas), CI (via plej ŝatata, ne altrudita de iu ajn) lanĉas nian konzola ilo testmace-cli, kaj la raporto ricevita post ekzekuto (ekzemple, en formato junit, kiu ankaŭ estas subtenata en testmace-cli) estas sendita al la taŭga sistemo. Kaj la supre menciita sekureca afero ne plu estas problemo.

Kiel vi povas vidi, TestMace ne trudas sian ekosistemon kaj paradigmon. Anstataŭe, ĝi konvenas facile en establitajn procezojn.

Dinamikaj Variabloj

TestMace sekvas la senkodan koncepton: se problemo povas esti solvita sen uzi kodon, ni provas provizi ĉi tiun ŝancon. Labori kun variabloj estas ĝuste la speco de funkcieco kie en la plej multaj kazoj vi povas fari sen programado.

Ekzemplo: ni ricevis respondon de la servilo, kaj ni volas konservi parton de la respondo en variablon. En Postman, en prova manuskripto (kiu estas stranga en si mem) ni skribus ion kiel:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Sed laŭ nia opinio, skribi skripton por tia simpla kaj ofte uzata scenaro aspektas superflua. Tial, en TestMace eblas asigni pecon de la respondo al variablo uzante la grafikan interfacon. Rigardu kiel simpla ĝi estas:

Kial TestMace estas pli bona ol Postman

Kaj nun kun ĉiu peto ĉi tiu dinamika variablo estos ĝisdatigita. Sed vi povas kontraŭi, argumentante, ke la aliro de Postman estas pli fleksebla kaj permesas al vi ne nur fari taskon, sed ankaŭ fari iun antaŭtraktadon. Jen kiel modifi la antaŭan ekzemplon:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Nu, tiucele TestMace havas skripto nodo, kiu kovras ĉi tiun scenaron. Por reprodukti la antaŭan kazon, sed jam ekzekutita de TestMace, vi devas krei skriptonodon sekvante la peton kaj uzi la sekvan kodon kiel skripto:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Kiel vi povas vidi, la konsisto de la nodoj ankaŭ bone servis ĉi tie. Kaj por tia simpla kazo kiel priskribita supre, vi povas simple atribui la esprimon ${crypto.MD5($response.data)} variablo kreita per la GUI!

Kreante testojn per GUI

Postman permesas krei testojn skribante skriptojn (en la kazo de Postman, ĉi tio estas JavaScript). Ĉi tiu aliro havas multajn avantaĝojn - preskaŭ senliman flekseblecon, haveblecon de pretaj solvoj ktp.

Tamen, la realo ofte estas tia (ni ne estas tiaj, la vivo estas tia), ke testilo ne havas programajn kapablojn, sed li ŝatus alporti profiton al la teamo nun. Por tiaj kazoj, sekvante la senkodan koncepton, TestMace permesas krei simplajn testojn per GUI sen uzi skribajn skriptojn. Jen, ekzemple, kiel aspektas la procezo krei teston, kiu komparas valorojn por egaleco:

Kial TestMace estas pli bona ol Postman

Tamen, krei testojn en grafika redaktilo ne forigas la eblecon skribante testojn en kodo. Ĉiuj samaj bibliotekoj estas ĉi tie kiel en la skriptonodo, kaj chai por verkado de provoj.

Situacioj ofte aperas kiam certa demando aŭ eĉ tuta skripto devas esti efektivigita plurfoje en malsamaj partoj de la projekto. Ekzemplo de tiaj petoj povus esti kutima plurfaza rajtigo, alportante la medion al la dezirata stato, ktp. Ĝenerale, parolante pri programlingvoj, ni ŝatus havi funkciojn reuzeblajn en malsamaj partoj de la aplikaĵo. En TestMace ĉi tiu funkcio estas plenumita de ligilo nodo Ĝi estas tre facile uzebla:
1) kreu demandon aŭ skripton
2) kreu nodon de tipo Link
3) en la parametroj, specifu ligilon al la skripto kreita en la unua paŝo

En pli progresinta versio, vi povas specifi kiuj dinamikaj variabloj de la skripto estas pasitaj al pli alta nivelo rilate al la ligo. Sonas konfuza? Ni diru, ke ni kreis Dosierujon kun la nomo krei-post, ene de kiu dinamika variablo estas asignita al ĉi tiu nodo postId. Nun en Link nodo krei-post-ligilo vi povas eksplicite specifi ke la variablo postId asignita al praulo krei-post-ligilo. Ĉi tiu mekanismo (denove, en programlingvo) povas esti uzata por redoni rezulton de "funkcio". Ĝenerale, ĝi estas mojosa, DRY estas en plena svingo kaj denove neniu linio de kodo estis difektita.

Kial TestMace estas pli bona ol Postman

Koncerne Postman, ekzistas funkcio-peto por reuzado de petoj pendanta ekde 2015, kaj ŝajnas ke ekzistas eĉ iuj sugestojke ili laboras pri ĉi tiu problemo. En ĝia nuna formo, Postman, kompreneble, havas la kapablon ŝanĝi la fadenon de ekzekuto, kiu en teorio verŝajne ebligas efektivigi similan konduton, sed ĉi tio estas pli malpura hako ol vere funkcia aliro.

Aliaj diferencoj

  • Pli granda kontrolo super la amplekso de variabloj. La plej malgranda amplekso en kiu variablo povas esti difinita en Postman estas kolekto. TestMace permesas vin difini variablojn por ajna demando aŭ dosierujo. En Postman Share kolekto permesas eksporti nur kolektojn, dum en TestMace kundivido funkcias por iu ajn nodo
  • TestMace subtenas heredeblaj kaplinioj, kiu povas esti anstataŭigita en infandemandojn defaŭlte. Leterportisto havas ion pri tio: la tasko, kaj ĝi estas eĉ fermita, sed ĝi estas proponita kiel solvo... uzi skriptojn. En TestMace, ĉi tio estas ĉio agordita per la GUI kaj ekzistas opcio por laŭvole malŝalti heredatajn titolojn en specifaj posteuloj.
  • Malfari/Refari. Funkcias ne nur dum redaktado de nodoj, sed ankaŭ dum movado, forigo, renomado kaj aliaj operacioj, kiuj ŝanĝas la strukturon de la projekto.
  • Dosieroj alkroĉitaj al petoj fariĝas parto de la projekto kaj estas konservitaj kun ĝi, estante perfekte sinkronigitaj, male al Postman. (Jes, vi ne plu bezonas mane elekti dosierojn ĉiufoje kiam vi komencas kaj translokigas ilin al kolegoj en arkivoj)

Trajtoj kiuj jam estas survoje

Ni ne povis rezisti la tenton levi la vualon de sekreteco super la venontaj eldonoj, precipe kiam la funkcieco estas tre bongusta kaj jam spertas antaŭ-eldonan poluradon. Do, ni renkontu.

Funkcioj

Kiel vi scias, Postman uzas tiel nomatajn dinamikajn variablojn por generi valorojn. La listo de ili estas impona kaj la vasta plimulto de funkcioj estas uzataj por generi falsajn valorojn. Ekzemple, por generi hazardan retpoŝton vi devas skribi:

{{$randomEmail}}

Tamen, ĉar ĉi tiuj estas variabloj (kvankam dinamikaj), ili ne povas esti uzataj kiel funkcioj: ili ne estas parametrigeblaj, tial ne eblos preni haŝon el ĉeno.

Ni planas aldoni "honestajn" funkciojn al TestMace. Ĝuste ene de ${} eblos ne nur aliri variablon, sed ankaŭ voki funkcion. Tiuj. se vi bezonas generi la konatan falsan retpoŝton, ni simple skribos

${faker.internet.email()}

Krom tio, ke ĝi estas funkcio, vi rimarkos, ke eblas voki metodon sur objekto. Kaj anstataŭ granda plata listo de dinamikaj variabloj, ni havas aron de logike grupigitaj objektoj.

Kio se ni volas kalkuli la hash de ŝnuro? Facile!

${crypto.MD5($dynamicVar.data)}

Vi rimarkos, ke vi eĉ povas pasi variablojn kiel parametrojn! Je ĉi tiu punkto, scivola leganto povas suspekti, ke io estas malĝusta...

Uzante JavaScript en Esprimoj

... Kaj pro bona kialo! Kiam la postuloj por funkcioj estis formitaj, ni subite venis al la konkludo, ke valida Javaskripto devus esti skribita en esprimoj. Do nun vi rajtas skribi esprimojn kiel:

${1 + '' + crypto.MD5('asdf')}

Kaj ĉio ĉi sen skriptoj, ĝuste en la enigokampoj!

Koncerne Postman, ĉi tie oni povas uzi nur variablojn, kaj kiam oni provas skribi la plej etan esprimon, la validigilo malbenas kaj rifuzas kalkuli ĝin.

Kial TestMace estas pli bona ol Postman

Altnivela aŭtomata kompletigo

Nuntempe TestMace havas norman aŭtokompleton, kiu aspektas jene:

Kial TestMace estas pli bona ol Postman

Ĉi tie, krom la aŭtokompleta linio, estas indikite, al kio apartenas tiu ĉi linio. Ĉi tiu mekanismo funkcias nur en esprimoj ĉirkaŭitaj de krampoj ${}.

Kiel vi povas vidi, oni aldonis vidajn markilojn, kiuj indikas la tipon de variablo (ekzemple ŝnuro, nombro, tabelo, ktp.). Vi ankaŭ povas ŝanĝi la aŭtomatajn reĝimojn (ekzemple, vi povas elekti aŭtomatan kompletigo per variabloj aŭ kaplinioj). Sed eĉ ĉi tio ne estas la plej grava afero!

Unue, aŭtomata kompletigo funkcias eĉ en esprimoj (kie eblas). Jen kiel ĝi aspektas:

Kial TestMace estas pli bona ol Postman

Kaj due, aŭtomata kompletigo nun disponeblas en skriptoj. Rigardu kiel ĝi funkcias!

Kial TestMace estas pli bona ol Postman

Ne utilas kompari ĉi tiun funkcion kun Postman - aŭtomata kompletigo estas limigita nur al senmovaj listoj de variabloj, kaplinioj kaj iliaj valoroj (korektu min se mi forgesis ion). Skriptoj ne estas aŭtomate kompletigitaj :)

konkludo

Oktobro markis jaron ekde la komenco de nia produkto-disvolviĝo. Dum ĉi tiu tempo, ni sukcesis fari multajn aferojn kaj, en iuj rilatoj, renkontis niajn konkurantojn. Sed estu kiel ajn, nia celo estas fari vere oportunan ilon por labori kun APIoj. Ni ankoraŭ havas multan laboron por fari, jen malglata plano por la disvolviĝo de nia projekto por la venonta jaro: https://testmace.com/roadmap.

Viaj sugestoj permesos al ni pli bone navigi la abundon da funkcioj, kaj via subteno donas al ni forton kaj konfidon, ke ni faras la ĝustan aferon. Okazas, ke hodiaŭ estas grava tago por nia projekto - la tago, kiam TestMace estis publikigita Produkta Ĉaso. Bonvolu subteni nian projekton, ĝi estas tre grava por ni. Plie, estas tenta oferto sur nia PH-paĝo hodiaŭ, kaj ĝi estas limigita

fonto: www.habr.com

Aldoni komenton