TestMace - IDE yenye nguvu ya kufanya kazi na API

Salaam wote! Leo tunataka kuwasilisha kwa umma bidhaa zetu za IT - IDE ya kufanya kazi na API TestMace. Labda baadhi yenu tayari mnajua kuhusu sisi kutoka makala zilizopita. Hata hivyo, hakujawa na mapitio ya kina ya chombo, kwa hivyo tunashughulikia upungufu huu wa bahati mbaya.

TestMace - IDE yenye nguvu ya kufanya kazi na API

Motisha

Ningependa kuanza na jinsi, kwa kweli, tulivyokuja kwenye maisha haya na tukaamua kuunda zana yetu wenyewe ya kazi ya hali ya juu na API. Wacha tuanze na orodha ya utendaji ambayo bidhaa inapaswa kuwa nayo, ambayo, kwa maoni yetu, tunaweza kusema kuwa ni "IDE ya kufanya kazi na API":

  • Kuunda na kutekeleza maswali na hati (mlolongo wa maswali)
  • Kuandika aina mbalimbali za majaribio
  • Kizazi cha mtihani
  • Kufanya kazi na maelezo ya API, ikiwa ni pamoja na kuagiza kutoka kwa fomati kama vile Swagger, OpenAPI, WADL, n.k.
  • Maombi ya kejeli
  • Usaidizi mzuri kwa lugha moja au zaidi kwa maandishi ya kuandika, ikiwa ni pamoja na ushirikiano na maktaba maarufu
  • nk

Orodha inaweza kupanuliwa ili kuendana na ladha yako. Kwa kuongeza, ni muhimu kuunda sio tu IDE yenyewe, lakini pia miundombinu fulani, kama vile maingiliano ya wingu, zana za mstari wa amri, huduma ya ufuatiliaji mtandaoni, nk. Mwishowe, mwelekeo wa miaka ya hivi karibuni hutuamuru sio tu utendaji wa nguvu wa programu, lakini pia kiolesura chake cha kupendeza.

Nani anahitaji chombo kama hicho? Kwa wazi, wale wote ambao angalau kwa namna fulani wameunganishwa na ukuzaji na majaribio ya API ni watengenezaji na wajaribu =). Kwa kuongezea, ikiwa kwa zamani mara nyingi inatosha kutekeleza maswali moja na maandishi rahisi, basi kwa wanaojaribu hii ni moja ya zana kuu, ambayo, kati ya mambo mengine, inapaswa kujumuisha utaratibu wenye nguvu wa kuandika vipimo na uwezo wa kuziendesha. CI.

Kwa hiyo, kwa kufuata miongozo hii, tulianza kuunda bidhaa zetu. Wacha tuone kile tumefanikiwa katika hatua hii.

Kuanza kwa haraka

Wacha tuanze na mtu wa kwanza kufahamiana na programu. Unaweza kuipakua kwenye wavuti yetu. Kwa sasa, majukwaa yote makubwa 3 yanaungwa mkono - Windows, Linux, MacOS. Pakua, sakinisha, uzindue. Unapoizindua kwa mara ya kwanza, unaweza kuona dirisha lifuatalo:

TestMace - IDE yenye nguvu ya kufanya kazi na API

Bofya kwenye ishara ya kuongeza iliyo juu ya eneo la maudhui ili kuunda ombi lako la kwanza. Kichupo cha swali kinaonekana kama hii:

TestMace - IDE yenye nguvu ya kufanya kazi na API

Hebu tuangalie kwa undani zaidi. Kiolesura cha ombi kinafanana sana na kiolesura cha wateja maarufu wa mapumziko, ambayo hurahisisha uhamiaji kutoka kwa zana zinazofanana. Hebu tufanye ombi la kwanza kwa url https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - IDE yenye nguvu ya kufanya kazi na API

Kwa ujumla, kwa mtazamo wa kwanza, jopo la majibu pia haitoi mshangao wowote. Walakini, ningependa kuteka mawazo yako kwa vidokezo kadhaa:

  1. Mwili wa jibu unawakilishwa kwa namna ya mti, ambayo kwanza huongeza maudhui ya habari na pili inakuwezesha kuongeza vipengele vingine vya kuvutia ambavyo hapa chini.
  2. Kuna kichupo cha Madai, ambacho kinaonyesha orodha ya majaribio kwa ombi fulani

Kama unaweza kuona, zana yetu inaweza kutumika kama mteja rahisi wa kupumzika. Hata hivyo, hatungekuwa hapa ikiwa uwezo wake ungekuwa mdogo kwa kutuma maombi pekee. Ifuatayo, nitaelezea dhana za kimsingi na utendaji wa TestMace.

Dhana za Msingi na Sifa

Jua

Utendaji wa TestMace umegawanywa katika aina tofauti za nodi. Katika mfano hapo juu, tulionyesha uendeshaji wa nodi ya RequestStep. Walakini, aina zifuatazo za nodi sasa zinapatikana pia kwenye programu:

  • OmbiHatua. Hii ndio nodi ambayo unaweza kuunda ombi. Inaweza tu kuwa na nodi moja ya Madai kama kipengele cha mtoto.
  • Madai. Node hutumiwa kuandika vipimo. Inaweza tu kuwa nodi ya mtoto ya nodi ya RequestStep.
  • Folda. Hukuruhusu kupanga Folda na nodi za OmbiHatua ndani yake zenyewe.
  • Mradi. Hii ni nodi ya mizizi, iliyoundwa moja kwa moja wakati mradi unaundwa. Vinginevyo, inarudia utendakazi wa nodi ya Folda.
  • Kiungo. Unganisha kwa Folda au nodi ya OmbiHatua. Hukuruhusu kutumia tena hoja na hati.
  • nk

Nodes ziko katika scratches (jopo chini kushoto, kutumika kwa ajili ya kuunda haraka maswali "moja-off") na katika miradi (jopo juu kushoto), ambayo tutakaa juu yake kwa undani zaidi.

Mradi

Unapozindua programu, unaweza kugundua mstari mmoja wa Mradi kwenye kona ya juu kushoto. Huu ndio mzizi wa mti wa mradi. Unapoanza mradi, mradi wa muda unaundwa, njia ambayo inategemea mfumo wako wa uendeshaji. Wakati wowote unaweza kuhamisha mradi mahali panapokufaa.

Kusudi kuu la mradi ni uwezo wa kuhifadhi maendeleo katika mfumo wa faili na kusawazisha zaidi kupitia mifumo ya udhibiti wa toleo, endesha hati katika CI, kagua mabadiliko, nk.

Vighairi

Vigezo ni mojawapo ya mbinu muhimu za programu. Wale kati yenu wanaofanya kazi na zana kama TestMace wanaweza kuwa tayari wana wazo la kile tunachozungumza. Kwa hivyo, vigezo ni njia ya kuhifadhi data ya kawaida na kuwasiliana kati ya nodes. Analogi, kwa mfano, ni vigezo vya mazingira katika Postman au Insomnia. Hata hivyo, tulienda mbali zaidi na kuendeleza mada. Katika TestMace, vigezo vinaweza kuwekwa kwenye kiwango cha nodi. Yoyote. Pia kuna utaratibu wa kurithi viambatisho kutoka kwa mababu na vigeu vinavyopishana katika vizazi. Kwa kuongeza kuna idadi ya vigezo vilivyojengwa, majina ya vigezo vilivyojengwa huanza na $. Hapa kuna baadhi yao:

  • $prevStep - kiungo kwa vigezo vya nodi ya awali
  • $nextStep - kiungo kwa vigezo vya nodi inayofuata
  • $parent - kitu kimoja, lakini tu kwa babu
  • $response - majibu kutoka kwa seva
  • $env - vigezo vya mazingira ya sasa
  • $dynamicVar - Vigeu vinavyobadilika vilivyoundwa wakati wa utekelezaji wa hati au hoja

$env - hizi kimsingi ni anuwai za kiwango cha nodi za Mradi, hata hivyo, seti ya anuwai ya mazingira hubadilika kulingana na mazingira yaliyochaguliwa.

Tofauti hupatikana kupitia ${variable_name}
Thamani ya kigezo inaweza kuwa kigezo kingine, au hata usemi mzima. Kwa mfano, utofauti wa url unaweza kuwa usemi kama
http://${host}:${port}/${endpoint}.

Kando, inafaa kuzingatia uwezekano wa kugawa vijiti wakati wa utekelezaji wa hati. Kwa mfano, mara nyingi kuna haja ya kuhifadhi data ya idhini (ishara au kichwa kizima) kilichotoka kwa seva baada ya kuingia kwa mafanikio. TestMace hukuruhusu kuhifadhi data kama hiyo katika vigeuzo vya nguvu vya moja ya mababu. Ili kuepuka migongano na vigezo vya "tuli" vilivyopo tayari, vigezo vya nguvu vinawekwa kwenye kitu tofauti $dynamicVar.

Matukio

Kwa kutumia vipengele vyote hapo juu, unaweza kuendesha hati zote za hoja. Kwa mfano, kuunda huluki -> kuuliza huluki -> kufuta huluki. Katika kesi hii, kwa mfano, unaweza kutumia nodi ya Folda kuweka nodi kadhaa za RequestStep.

Kukamilisha kiotomatiki na kuangazia usemi

Kwa kazi rahisi na vigezo (na sio tu) kukamilisha otomatiki ni muhimu. Na bila shaka, kuangazia thamani ya usemi ili kurahisisha na kufaa zaidi kufafanua tofauti fulani ni sawa na nini. Hii ndio kesi wakati ni bora kuona mara moja kuliko kusikia mara mia:

TestMace - IDE yenye nguvu ya kufanya kazi na API

Inafaa kumbuka kuwa kukamilisha kiotomatiki hutekelezwa sio tu kwa anuwai, lakini pia, kwa mfano, kwa vichwa, maadili ya vichwa fulani (kwa mfano, kukamilisha kiotomatiki kwa kichwa cha Aina ya Yaliyomo), itifaki na mengi zaidi. Orodha hiyo inasasishwa kila mara kadiri programu inavyokua.

Tendua/rudia

Kutengua/kufanya upya mabadiliko ni jambo rahisi sana, lakini kwa sababu fulani halitekelezwi kila mahali (na zana za kufanya kazi na API sio ubaguzi). Lakini sisi si mmoja wao!) Tumetekeleza tengua/rudia katika mradi mzima, ambayo inakuwezesha kutendua si tu kuhariri nodi maalum, lakini pia kuundwa kwake, kufuta, harakati, nk. Shughuli muhimu zaidi zinahitaji uthibitisho.

Kuunda vipimo

Nodi ya Madai inawajibika kuunda majaribio. Moja ya sifa kuu ni uwezo wa kuunda vipimo bila programu, kwa kutumia wahariri waliojengwa.

Nodi ya Madai ina seti ya madai. Kila dai lina aina yake; kwa sasa kuna aina kadhaa za madai

  1. Linganisha maadili - inalinganisha tu maadili 2. Kuna waendeshaji kadhaa wa kulinganisha: sawa, si sawa, kubwa kuliko, kubwa kuliko au sawa na, chini ya, chini ya au sawa na.

  2. Ina thamani - hukagua kutokea kwa kamba ndogo katika mfuatano.

  3. XPath - huangalia kuwa kiteuzi katika XML kina thamani fulani.

  4. Madai ya JavaScript ni hati ya javascript ya kiholela ambayo inarejesha ukweli juu ya mafanikio na uwongo kwa kutofaulu.

Ninaona kuwa ya mwisho tu inahitaji ujuzi wa programu kutoka kwa mtumiaji, madai mengine 3 yanaundwa kwa kutumia kiolesura cha picha. Hapa, kwa mfano, ndivyo mazungumzo ya kuunda madai ya kulinganisha yanaonekana kama:

TestMace - IDE yenye nguvu ya kufanya kazi na API

Icing juu ya keki ni uumbaji wa haraka wa madai kutoka kwa majibu, angalia tu!

TestMace - IDE yenye nguvu ya kufanya kazi na API

Walakini, madai kama haya yana mapungufu dhahiri, ambayo unaweza kutaka kutumia madai ya javascript kushinda. Na hapa TestMace pia hutoa mazingira ya starehe na ukamilishaji kiotomatiki, uangaziaji wa sintaksia na hata kichanganuzi tuli.

Maelezo ya API

TestMace hukuruhusu sio tu kutumia API, lakini pia kuiandika. Zaidi ya hayo, maelezo yenyewe pia yana muundo wa kidaraja na yanalingana kihalisi katika mradi uliobaki. Kwa kuongeza, kwa sasa inawezekana kuleta maelezo ya API kutoka kwa fomati za Swagger 2.0 / OpenAPI 3.0. Maelezo yenyewe sio tu ya uzito uliokufa, lakini yameunganishwa kwa karibu na mradi uliobaki, haswa, ukamilishaji otomatiki wa URL, vichwa vya HTTP, vigezo vya hoja, n.k. unapatikana, na katika siku zijazo tunapanga kuongeza majaribio. kwa kufuata jibu na maelezo ya API.

Kushiriki nodi

Kisa: ungependa kushiriki ombi lenye matatizo au hata hati nzima na mwenzako au ambatisha kwa hitilafu. TestMace inashughulikia kesi hii pia: programu hukuruhusu kusasisha nodi yoyote na hata mti mdogo katika URL. Nakili-bandika na unaweza kuhamisha ombi kwa urahisi kwa mashine au mradi mwingine.

Umbizo la uhifadhi wa mradi unaoweza kusomeka na binadamu

Kwa sasa, kila nodi imehifadhiwa katika faili tofauti na kiendelezi cha yml (kama ilivyo kwa nodi ya Madai), au kwenye folda yenye jina la nodi na faili ya index.yml ndani yake.
Kwa mfano, hivi ndivyo faili ya ombi tulilofanya katika ukaguzi hapo juu inaonekana kama:

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

Kama unaweza kuona, kila kitu ni wazi sana. Ikiwa inataka, muundo huu unaweza kuhaririwa kwa urahisi.

Utawala wa folda katika mfumo wa faili hurudia kabisa uongozi wa nodi katika mradi huo. Kwa mfano, hati kama:

TestMace - IDE yenye nguvu ya kufanya kazi na API

Huweka mfumo wa faili kwa muundo ufuatao (uorodheshaji wa folda pekee ndio umeonyeshwa, lakini kiini kiko wazi)

TestMace - IDE yenye nguvu ya kufanya kazi na API

Ambayo hurahisisha mchakato wa kukagua mradi.

Ingiza kutoka kwa Postman

Baada ya kusoma yote yaliyo hapo juu, watumiaji wengine watataka kujaribu (sawa?) bidhaa mpya au (nini kuzimu sio mzaha!) tumia kabisa katika mradi wao. Hata hivyo, uhamiaji unaweza kusimamishwa na idadi kubwa ya maendeleo katika Postman huyo huyo. Kwa hali kama hizi, TestMace inaauni uagizaji wa makusanyo kutoka kwa Postman. Kwa sasa, uagizaji bila majaribio unaauniwa, lakini hatukatai kuauni katika siku zijazo.

Mipango

Natumaini kwamba wengi wa wale ambao wamesoma hadi hatua hii wamependa bidhaa zetu. Hata hivyo, si hivyo tu! Kazi kwenye bidhaa inaendelea kikamilifu na hapa kuna baadhi ya vipengele ambavyo tunapanga kuongeza hivi karibuni.

Usawazishaji wa wingu

Moja ya vipengele vilivyoombwa zaidi. Kwa sasa, tunapendekeza kutumia mifumo ya udhibiti wa matoleo kwa ulandanishi, ambayo tunafanya umbizo kuwa la kirafiki zaidi kwa aina hii ya hifadhi. Hata hivyo, mtiririko huu wa kazi haufai kila mtu, kwa hivyo tunapanga kuongeza utaratibu wa kusawazisha unaojulikana kwa wengi kupitia seva zetu.

CLI

Kama ilivyoelezwa hapo juu, bidhaa za kiwango cha IDE haziwezi kufanya bila kila aina ya miunganisho na programu zilizopo au mtiririko wa kazi. CLI ndiyo hasa inayohitajika ili kuunganisha majaribio yaliyoandikwa katika TestMace katika mchakato wa ujumuishaji unaoendelea. Kazi kwenye CLI inaendelea kikamilifu; matoleo ya mapema yatazindua mradi kwa ripoti rahisi ya kiweko. Katika siku zijazo tunapanga kuongeza matokeo ya ripoti katika umbizo la JUnit.

Mfumo wa programu-jalizi

Licha ya nguvu zote za chombo chetu, seti ya kesi zinazohitaji ufumbuzi hazina kikomo. Baada ya yote, kuna kazi ambazo ni maalum kwa mradi fulani. Ndiyo maana katika siku zijazo tunapanga kuongeza SDK kwa ajili ya kutengeneza programu-jalizi na kila msanidi ataweza kuongeza utendakazi kwa kupenda kwao.

Kupanua anuwai ya aina za nodi

Seti hii ya nodi haijumuishi kesi zote zinazohitajika na mtumiaji. Nodi ambazo zimepangwa kuongezwa:

  • Nodi ya hati - inabadilisha na kuweka data kwa kutumia js na API inayolingana. Kwa kutumia aina hii ya nodi, unaweza kufanya mambo kama vile ombi la awali na hati za baada ya ombi katika Postman.
  • Nodi ya GraphQL - msaada wa graphql
  • Nodi maalum ya madai - itakuruhusu kupanua seti ya madai yaliyopo katika mradi
    Kwa kawaida, hii sio orodha ya mwisho; itasasishwa kila mara kwa sababu, kati ya mambo mengine, maoni yako.

Maswali

Je, wewe ni tofauti gani na Postman?

  1. Wazo la nodi, ambayo hukuruhusu kuongeza utendakazi wa mradi karibu bila mwisho
  2. Umbizo la mradi unaoweza kusomeka na binadamu kwa kuihifadhi katika mfumo wa faili, ambao hurahisisha kazi kwa kutumia mifumo ya udhibiti wa matoleo
  3. Uwezo wa kuunda majaribio bila programu na usaidizi wa hali ya juu zaidi wa js katika kihariri cha jaribio (kukamilisha kiotomatiki, kichanganuzi tuli)
  4. Ukamilishaji wa hali ya juu kiotomatiki na uangaziaji wa thamani ya sasa ya vigeu

Je, hii ni bidhaa huria?

Hapana, kwa sasa vyanzo vimefungwa, lakini katika siku zijazo tunazingatia uwezekano wa kufungua vyanzo

Unaishi kwa kutumia nini?)

Pamoja na toleo la bure, tunapanga kutoa toleo la kulipwa la bidhaa. Kimsingi itajumuisha vitu vinavyohitaji upande wa seva, kwa mfano, maingiliano.

Hitimisho

Mradi wetu unaendelea kwa kasi na mipaka kuelekea kutolewa kwa utulivu. Hata hivyo, bidhaa inaweza tayari kutumika, na maoni mazuri kutoka kwa watumiaji wetu wa mapema ni uthibitisho wa hili. Tunakusanya maoni kikamilifu, kwa sababu bila ushirikiano wa karibu na jumuiya haiwezekani kujenga chombo kizuri. Unaweza kutupata hapa:

Tovuti rasmi

telegram

Slack

Facebook

Mfuatiliaji wa masuala

Tunatarajia matakwa yako na mapendekezo!

Chanzo: mapenzi.com

Kuongeza maoni