TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Бәріңе сәлем! Бүгін біз АТ жұртшылығына өз өнімімізді - API интерфейстерімен жұмыс істеуге арналған IDE ұсынғымыз келеді TestMace. Мүмкін сіздердің кейбіреулеріңіз біз туралы бұрыннан білетін шығар алдыңғы мақалалар. Дегенмен, құралды жан-жақты шолу болған жоқ, сондықтан біз бұл өкінішті кемшілікті шешеміз.

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Мотивация

Мен бұл өмірге қалай келгенімізден және API-мен кеңейтілген жұмыс үшін өз құралымызды жасауды шешкеннен бастағым келеді. Өнімде болуы керек функциялар тізімінен бастайық, ол туралы, біздің ойымызша, бұл «API интерфейстерімен жұмыс істеуге арналған IDE» деп айта аламыз:

  • Сұраулар мен сценарийлерді жасау және орындау (сұраулар тізбегі)
  • Әр түрлі тесттер жазу
  • Сынақ генерациясы
  • API сипаттамаларымен жұмыс істеу, соның ішінде Swagger, OpenAPI, WADL және т.б. пішімдерден импорттау.
  • Күлкілі сұраулар
  • Сценарийлерді жазу үшін бір немесе бірнеше тілге жақсы қолдау, соның ішінде танымал кітапханалармен біріктіру
  • және т.б.

Тізімді сіздің талғамыңызға қарай кеңейтуге болады. Сонымен қатар, IDE-нің өзін ғана емес, сонымен қатар белгілі бір инфрақұрылымды, мысалы, бұлтты синхрондау, пәрмен жолы құралдары, онлайн бақылау қызметі және т.б. құру маңызды. Ақыр соңында, соңғы жылдардағы үрдістер бізге қосымшаның қуатты функционалдығын ғана емес, сонымен қатар оның жағымды интерфейсін де талап етеді.

Мұндай құрал кімге керек? Әлбетте, кем дегенде қандай да бір түрде API әзірлеу және тестілеумен байланысты барлық адамдар әзірлеушілер мен тестерлер =). Оның үстіне, егер біріншісі үшін көбінесе жалғыз сұраулар мен қарапайым сценарийлерді орындау жеткілікті болса, онда тестерлер үшін бұл негізгі құралдардың бірі болып табылады, ол басқа нәрселермен қатар тесттерді жазудың күшті механизмін қамтуы керек, оларды іске қосу мүмкіндігі бар. CI.

Осылайша, осы нұсқауларды орындай отырып, біз өз өнімімізді жасай бастадық. Осы кезеңде қандай жетістіктерге жеткенімізді көрейік.

Жылдам бастау

Қолданбамен бірінші танысудан бастайық. Сіз оны жүктей аласыз біздің сайтта. Қазіргі уақытта барлық 3 негізгі платформаға қолдау көрсетіледі - Windows, Linux, MacOS. Жүктеп алыңыз, орнатыңыз, іске қосыңыз. Сіз оны бірінші рет іске қосқан кезде келесі терезені көре аласыз:

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Бірінші сұрауды жасау үшін мазмұн аймағының жоғарғы жағындағы қосу белгісін басыңыз. Сұрау қойындысы келесідей көрінеді:

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Оны толығырақ қарастырайық. Сұраныс интерфейсі танымал демалыс клиенттерінің интерфейсіне өте ұқсас, бұл ұқсас құралдардан көшіруді жеңілдетеді. URL мекенжайына бірінші сұранысты жасайық https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Тұтастай алғанда, бір қарағанда, жауап беру тақтасы ешқандай тосынсый туғызбайды. Дегенмен, мен сіздердің назарларыңызды кейбір мәселелерге аударғым келеді:

  1. Жауаптың негізгі бөлігі ағаш түрінде ұсынылған, ол біріншіден ақпараттық мазмұнды қосады, ал екіншіден төменде көрсетілген қызықты мүмкіндіктерді қосуға мүмкіндік береді.
  2. Берілген сұрауға арналған сынақтар тізімін көрсететін Бекітулер қойындысы бар

Көріп отырғаныңыздай, біздің құралды ыңғайлы демалыс клиенті ретінде пайдалануға болады. Алайда оның мүмкіндіктері тек сұрау жіберумен шектелсе, біз бұл жерде болмас едік. Әрі қарай, мен TestMace бағдарламасының негізгі тұжырымдамалары мен функционалдығын сипаттаймын.

Негізгі ұғымдар мен мүмкіндіктер

Түйін

TestMace функционалдығы түйіндердің әртүрлі түрлеріне бөлінеді. Жоғарыдағы мысалда біз RequestStep түйінінің жұмысын көрсеттік. Дегенмен, енді қолданбада түйіндердің келесі түрлері де қолжетімді:

  • Сұрау қадамы. Бұл сұрауды жасауға болатын түйін. Оның еншілес элементі ретінде тек бір бекіту түйіні болуы мүмкін.
  • Бекіту. Түйін сынақтарды жазу үшін пайдаланылады. Тек RequestStep түйінінің еншілес түйіні болуы мүмкін.
  • Қалта. Folder және RequestStep түйіндерін өз ішінде топтастыруға мүмкіндік береді.
  • Жоба. Бұл жоба жасалған кезде автоматты түрде жасалған түбірлік түйін. Әйтпесе, ол Қалта түйінінің функционалдығын қайталайды.
  • Сілтеме. Қалтаға немесе RequestStep түйініне сілтеме. Сұраулар мен сценарийлерді қайта пайдалануға мүмкіндік береді.
  • және т.б.

Түйіндер сызаттарда (төменгі сол жақтағы панель, «бір реттік» сұрауларды жылдам жасау үшін пайдаланылады) және жобаларда (жоғарғы сол жақтағы панель) орналасқан, біз оларға толығырақ тоқталамыз.

Жоба

Қолданбаны іске қосқан кезде жоғарғы сол жақ бұрышта жалғыз Жоба жолын байқауыңыз мүмкін. Бұл жоба ағашының түбірі. Жобаны іске қосқан кезде уақытша жоба жасалады, оның жолы операциялық жүйеге байланысты болады. Кез келген уақытта жобаны өзіңізге ыңғайлы жерге жылжыта аласыз.

Жобаның негізгі мақсаты – файлдық жүйедегі әзірлемелерді сақтау және оларды нұсқаларды басқару жүйелері арқылы одан әрі синхрондау, CI-де сценарийлерді іске қосу, өзгерістерді қарау және т.б.

Айнымалылар

Айнымалылар қолданбаның негізгі механизмдерінің бірі болып табылады. TestMace сияқты құралдармен жұмыс істейтіндеріңізде біз не туралы айтып жатқанымыз туралы түсінік болуы мүмкін. Сонымен, айнымалылар жалпы деректерді сақтау және түйіндер арасында байланысу тәсілі болып табылады. Аналог, мысалы, Postman немесе Insomnia ішіндегі орта айнымалылары. Дегенмен, біз ары қарай жүріп, тақырыпты дамыта түстік. TestMace бағдарламасында айнымалы мәндерді түйін деңгейінде орнатуға болады. Кез келген. Сондай-ақ ата-бабалардан айнымалыларды мұралау және ұрпақтардағы қайталанатын айнымалыларды алу механизмі бар. Сонымен қатар, кірістірілген айнымалылар саны бар, кірістірілген айнымалылардың атаулары мынадан басталады: $. Мұнда олардың кейбіреулері бар:

  • $prevStep — алдыңғы түйіннің айнымалыларына сілтеме
  • $nextStep — келесі түйіннің айнымалыларына сілтеме
  • $parent - бір нәрсе, бірақ тек ата-баба үшін
  • $response - серверден жауап
  • $env - ағымдағы орта айнымалылары
  • $dynamicVar - сценарий немесе сұранысты орындау кезінде жасалған динамикалық айнымалылар

$env - бұл негізінен жоба түйіні деңгейінің кәдімгі айнымалылары, дегенмен ортаның айнымалы мәндерінің жиыны таңдалған ортаға байланысты өзгереді.

Айнымалыға қол жеткізу арқылы жүзеге асырылады ${variable_name}
Айнымалының мәні басқа айнымалы немесе тіпті тұтас өрнек болуы мүмкін. Мысалы, url айнымалысы сияқты өрнек болуы мүмкін
http://${host}:${port}/${endpoint}.

Сценарийді орындау кезінде айнымалыларды тағайындау мүмкіндігін бөлек атап өткен жөн. Мысалы, сәтті кіруден кейін серверден келген авторизация деректерін (таңбалауыш немесе бүкіл тақырып) сақтау қажеттілігі жиі туындайды. TestMace мұндай деректерді тектердің бірінің динамикалық айнымалыларына сақтауға мүмкіндік береді. Бұрыннан бар «статикалық» айнымалылармен соқтығысуды болдырмау үшін динамикалық айнымалылар бөлек нысанға орналастырылады. $dynamicVar.

Сценарийлер

Жоғарыда аталған мүмкіндіктердің барлығын пайдаланып, бүкіл сұрау сценарийлерін іске қосуға болады. Мысалы, нысанды жасау -> нысанды сұрау -> нысанды жою. Бұл жағдайда, мысалы, бірнеше RequestStep түйіндерін топтау үшін Қалта түйінін пайдалануға болады.

Автотолтыру және өрнекті бөлектеу

Айнымалылармен ыңғайлы жұмыс істеу үшін (тек қана емес) автотолтыру қажет. Және, әрине, белгілі бір айнымалының неге тең екенін түсіндіруді жеңілдету және ыңғайлы ету үшін өрнектің мәнін бөлектеу. Жүз рет естігеннен бір рет көрген жақсы болған жағдайда дәл осылай болады:

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Автотолтыру тек айнымалылар үшін ғана емес, сонымен қатар, мысалы, тақырыптар, белгілі бір тақырыптардың мәндері (мысалы, Content-Type тақырыбы үшін автотолтыру), хаттамалар және т.б. үшін жүзеге асырылатынын атап өткен жөн. Қолданбаның өсуіне қарай тізім үнемі жаңартылып отырады.

Болдырмау/қайталау

Өзгерістерді болдырмау/қайта жасау өте ыңғайлы нәрсе, бірақ қандай да бір себептермен ол барлық жерде жүзеге асырылмайды (және API интерфейстерімен жұмыс істеу құралдары ерекшелік емес). Бірақ біз олардың бірі емеспіз!) Біз бүкіл жоба бойына кері қайтару/қайталау мүмкіндігін іске асырдық, бұл белгілі бір түйінді өңдеуді ғана емес, оны жасауды, жоюды, жылжытуды және т.б. болдырмауға мүмкіндік береді. Ең маңызды операциялар растауды қажет етеді.

Тесттерді құру

Бекіту түйіні сынақтарды жасауға жауап береді. Негізгі мүмкіндіктердің бірі - кіріктірілген редакторларды пайдалана отырып, бағдарламалаусыз тесттер құру мүмкіндігі.

Бекіту түйіні бекітулер жиынынан тұрады. Әрбір бекітудің өз түрі бар, қазіргі уақытта бекітудің бірнеше түрі бар

  1. Мәндерді салыстыру - жай ғана 2 мәнді салыстырады. Бірнеше салыстыру операторлары бар: тең, тең емес, үлкен, үлкен немесе тең, кіші, кіші немесе тең.

  2. Мәні бар - жолда ішкі жолдың пайда болуын тексереді.

  3. XPath - XML-дегі селекторда белгілі бір мән бар екенін тексереді.

  4. JavaScript бекітуі – сәтті болғанда ақиқат және сәтсіздікте жалған мәнін қайтаратын ерікті JavaScript сценарийі.

Соңғысы ғана пайдаланушыдан бағдарламалау дағдыларын талап ететінін ескертемін, қалған 3 бекіту графикалық интерфейс арқылы жасалады. Міне, мысалы, салыстыру мәндерін бекітуді құру диалогы келесідей:

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Торттағы глазурь - бұл жауаптардан тез арада бекіту, оған қараңыз!

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Дегенмен, мұндай бекітулердің айқын шектеулері бар, оларды жеңу үшін JavaScript бекітуін пайдаланғыңыз келуі мүмкін. Мұнда TestMace сонымен қатар автотолтыру, синтаксисті бөлектеу және тіпті статикалық анализатормен ыңғайлы ортаны қамтамасыз етеді.

API сипаттамасы

TestMace API интерфейсін пайдалануға ғана емес, оны құжаттауға да мүмкіндік береді. Сонымен қатар, сипаттаманың өзі де иерархиялық құрылымға ие және жобаның қалған бөлігіне органикалық түрде сәйкес келеді. Бұған қоса, қазіргі уақытта API сипаттамаларын Swagger 2.0 / OpenAPI 3.0 пішімінен импорттауға болады. Сипаттаманың өзі жай ғана салмақ түсірмейді, бірақ жобаның қалған бөлігімен тығыз біріктірілген, атап айтқанда, URL мекенжайларын, HTTP тақырыптарын, сұрау параметрлерін және т.б. автоматты түрде толтыру қол жетімді және болашақта біз сынақтарды қосуды жоспарлап отырмыз. жауаптың API сипаттамасына сәйкестігі үшін.

Ортақ түйін

Жағдай: сіз проблемалық сұрауды немесе тіпті бүкіл сценарийді әріптесіңізбен бөліскіңіз немесе оны қатеге тіркегіңіз келеді. TestMace бұл жағдайды да қамтиды: қолданба кез келген түйінді және тіпті URL мекенжайындағы ішкі ағашты сериялауға мүмкіндік береді. Көшіру-қою және сұрауды басқа машинаға немесе жобаға оңай тасымалдауға болады.

Адам оқи алатын жобаны сақтау пішімі

Қазіргі уақытта әрбір түйін yml кеңейтімі бар жеке файлда (Бекіту түйініндегідей) немесе түйіннің аты және ондағы index.yml файлы бар қалтада сақталады.
Мысалы, жоғарыдағы шолуда біз жасаған сұрау файлы келесідей:

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

Көріп отырғаныңыздай, бәрі өте түсінікті. Қажет болса, бұл пішімді қолмен оңай өңдеуге болады.

Файлдық жүйедегі қалталар иерархиясы жобадағы түйіндердің иерархиясын толығымен қайталайды. Мысалы, сценарий:

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Файлдық жүйені келесі құрылыммен салыстырады (тек қалта иерархиясы көрсетіледі, бірақ мәні түсінікті)

TestMace - API интерфейстерімен жұмыс істеуге арналған қуатты IDE

Бұл жобаны қарау процесін жеңілдетеді.

Пошташыдан импорттау

Жоғарыда айтылғандардың барлығын оқығаннан кейін, кейбір пайдаланушылар жаңа өнімді сынап көргісі келеді (дұрыс?) немесе (бұл не әзіл емес!) оны өз жобасында толығымен қолданғысы келеді. Дегенмен, көші-қонды сол Пошташыдағы көптеген әзірлемелер арқылы тоқтатуға болады. Мұндай жағдайлар үшін TestMace Postman жинақтарын импорттауды қолдайды. Қазіргі уақытта сынақсыз импортқа қолдау көрсетілуде, бірақ болашақта оларды қолдауды жоққа шығармаймыз.

жоспарлары

Осы уақытқа дейін оқығандардың көпшілігі біздің өнімге ұнады деп үміттенемін. Дегенмен, бұл бәрі емес! Өніммен жұмыс қарқынды жүріп жатыр және біз жақын арада қосуды жоспарлап отырған кейбір мүмкіндіктер.

Бұлтты синхрондау

Ең көп сұралатын мүмкіндіктердің бірі. Қазіргі уақытта біз синхрондау үшін нұсқаларды басқару жүйелерін пайдалануды ұсынамыз, ол үшін сақтаудың осы түрі үшін пішімді ыңғайлы етіп жасаймыз. Дегенмен, бұл жұмыс процесі барлығына жарамайды, сондықтан біз серверлеріміз арқылы көпшілікке таныс синхрондау механизмін қосуды жоспарлап отырмыз.

CLI

Жоғарыда айтылғандай, IDE деңгейіндегі өнімдер бұрыннан бар қолданбалармен немесе жұмыс үрдістерімен интеграциялардың барлық түрлерінсіз жасай алмайды. CLI - бұл TestMace-те жазылған сынақтарды үздіксіз интеграциялау процесіне біріктіру үшін қажет нәрсе. CLI бойынша жұмыс қарқынды жүріп жатыр; бастапқы нұсқалар жобаны қарапайым консоль есебімен іске қосады. Болашақта JUnit пішімінде есеп шығаруды қосуды жоспарлап отырмыз.

Плагин жүйесі

Біздің құралдың барлық күшіне қарамастан, шешімдерді қажет ететін жағдайлардың жиынтығы шексіз. Өйткені, белгілі бір жобаға тән тапсырмалар бар. Сондықтан болашақта біз плагиндерді әзірлеуге арналған SDK қосуды жоспарлап отырмыз және әрбір әзірлеуші ​​​​өз қалауы бойынша функционалдылықты қоса алады.

Түйін түрлерінің ауқымын кеңейту

Бұл түйіндер жинағы пайдаланушы талап ететін барлық жағдайларды қамтымайды. Қосылуы жоспарланған түйіндер:

  • Сценарий түйіні - js және сәйкес API көмегімен деректерді түрлендіреді және орналастырады. Түйіннің осы түрін пайдалана отырып, Postman бағдарламасында алдын ала сұрау және сұраудан кейінгі сценарийлер сияқты әрекеттерді орындауға болады.
  • GraphQL түйіні – graphql қолдауы
  • Теңшелетін бекіту түйіні - жобадағы бар бекітулер жинағын кеңейтуге мүмкіндік береді
    Әрине, бұл соңғы тізім емес, ол басқа нәрселермен қатар сіздің пікіріңізге байланысты үнемі жаңартылып отырады.

FAQ

Пошташыдан қандай айырмашылығыңыз бар?

  1. Жобаның функционалдығын шексіз дерлік масштабтауға мүмкіндік беретін түйіндер тұжырымдамасы
  2. Нұсқаларды басқару жүйелерімен жұмысты жеңілдететін файлдық жүйеде сақтай отырып, адам оқи алатын жоба пішімі
  3. Бағдарламалаусыз тесттер жасау мүмкіндігі және тест редакторында кеңейтілген JS қолдауы (автотолтыру, статикалық анализатор)
  4. Жетілдірілген автотолтыру және айнымалылардың ағымдағы мәнін бөлектеу

Бұл ашық бастапқы өнім ме?

Жоқ, қазіргі уақытта дереккөздер жабық, бірақ болашақта дереккөздерді ашу мүмкіндігін қарастырып жатырмыз.

Сіз немен өмір сүресіз?)

Тегін нұсқамен қатар біз өнімнің ақылы нұсқасын шығаруды жоспарлап отырмыз. Ол ең алдымен сервер жағын қажет ететін нәрселерді қамтиды, мысалы, синхрондау.

қорытынды

Біздің жоба тұрақты шығарылымға қарай серпілуде. Дегенмен, өнімді қазірдің өзінде пайдалануға болады және біздің алғашқы пайдаланушыларымыздың оң пікірлері мұның дәлелі болып табылады. Біз кері байланысты белсенді түрде жинаймыз, өйткені қауымдастықпен тығыз байланыссыз жақсы құрал құру мүмкін емес. Бізді мына жерден таба аласыз:

Ресми сайт

Telegram

бостық

Facebook

Мәселелерді бақылаушы

Сіздің тілектеріңіз бен ұсыныстарыңызды күтеміз!

Ақпарат көзі: www.habr.com

пікір қалдыру