TestMace - як IDE пуриқтидор барои кор бо API

Салом ба ҳама! Имрӯз мо мехоҳем ба ҷомеаи IT маҳсулоти худ - IDE-ро барои кор бо API пешниҳод кунем TestMace. Шояд баъзе аз шумо аллакай дар бораи мо аз он огоҳед мақолаҳои қаблӣ. Бо вуҷуди ин, ҳеҷ гуна баррасии ҳамаҷонибаи асбоб вуҷуд надорад, бинобар ин мо ин камбудии ногуворро бартараф мекунем.

TestMace - як IDE пуриқтидор барои кор бо API

Муваффақият

Ман мехостам аз он оғоз кунам, ки мо дар асл чӣ гуна ба ин ҳаёт омадем ва тасмим гирифтем, ки асбоби шахсии худро барои кори пешрафта бо API эҷод кунем. Биёед бо рӯйхати функсияҳое, ки маҳсулот бояд дошта бошад, оғоз кунем, ки дар бораи он, ба андешаи мо, мо гуфта метавонем, ки он "IDE барои кор бо API" аст:

  • Эҷод ва иҷрои дархостҳо ва скриптҳо (пайдарпаймоии дархостҳо)
  • Навиштани санҷишҳои гуногун
  • Насли санҷиш
  • Кор бо тавсифи API, аз ҷумла воридот аз форматҳо ба монанди Swagger, OpenAPI, WADL ва ғайра.
  • Дархостҳои масхаракунанда
  • Дастгирии хуб барои як ё якчанд забонҳо барои навиштани скриптҳо, аз ҷумла ҳамгироӣ бо китобхонаҳои маъмул
  • ва ғайра.

Рӯйхатро мувофиқи табъи шумо васеъ кардан мумкин аст. Ғайр аз он, муҳим аст, ки на танҳо худи IDE, балки як инфрасохтори муайян, аз қабили ҳамоҳангсозии абр, абзорҳои сатри фармон, хидмати мониторинги онлайн ва ғайра. Дар ниҳоят, тамоюлҳои солҳои охир ба мо на танҳо функсияҳои пурқуввати барнома, балки интерфейси гуворо низ дикта мекунанд.

Чунин асбоб ба кй лозим? Аён аст, ки ҳамаи онҳое, ки ҳадди аққал бо таҳия ва санҷиши APIҳо алоқаманданд, таҳиягарон ва озмоишгарон мебошанд =). Ғайр аз он, агар барои аввалинҳо аксар вақт иҷро кардани дархостҳои ягона ва скриптҳои оддӣ кифоя бошад, пас барои озмоишгарон ин яке аз воситаҳои асосӣ мебошад, ки дар қатори дигар чизҳо бояд механизми пурқуввати навиштани тестҳоро бо қобилияти иҷро кардани онҳо дар бар гирад. CI.

Ҳамин тавр, бо риояи ин дастурҳо мо ба эҷоди маҳсулоти худ шурӯъ кардем. Биёед бубинем, ки мо дар ин марҳила ба чӣ ноил шудаем.

Оғози зуд

Биёед бо аввалин шиносоӣ бо ариза оғоз кунем. Шумо метавонед онро зеркашӣ кунед дар сайти мо. Дар айни замон, ҳама 3 платформаи асосӣ дастгирӣ мешаванд - Windows, Linux, MacOS. Зеркашӣ, насб, оғоз. Вақте ки шумо онро бори аввал оғоз мекунед, шумо метавонед тирезаи зеринро бинед:

TestMace - як IDE пуриқтидор барои кор бо API

Барои эҷод кардани дархости аввалини худ, аломати плюсро дар болои майдони мундариҷа клик кунед. Ҷадвали дархост чунин менамояд:

TestMace - як IDE пуриқтидор барои кор бо API

Биёед онро муфассалтар дида бароем. Интерфейси дархост ба интерфейси муштариёни маъмули истироҳат хеле монанд аст, ки муҳоҷиратро аз абзорҳои шабеҳ осонтар мекунад. Биёед дархости аввалро ба URL гузорем https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - як IDE пуриқтидор барои кор бо API

Умуман, дар назари аввал, панели ҷавоб низ ҳеҷ гуна ногаҳонӣ намеорад. Бо вуҷуди ин, ман мехоҳам таваҷҷӯҳи шуморо ба чанд нукта ҷалб намоям:

  1. Ҷисми ҷавоб дар шакли дарахт тасвир шудааст, ки аввал мундариҷаи иттилоотиро илова мекунад ва дуюм ба шумо имкон медиҳад, ки баъзе хусусиятҳои ҷолибро илова кунед, ки дар зер
  2. Ҷадвали тасдиқҳо мавҷуд аст, ки рӯйхати санҷишҳоро барои дархости додашуда нишон медиҳад

Тавре ки шумо мебинед, асбоби мо метавонад ҳамчун муштарии истироҳати мувофиқ истифода шавад. Аммо, агар имкониятҳои он танҳо бо фиристодани дархостҳо маҳдуд мешуданд, мо дар ин ҷо намебудем. Минбаъд ман мафҳумҳои асосӣ ва функсияҳои TestMace-ро шарҳ медиҳам.

Мафҳумҳо ва хусусиятҳои асосӣ

Нод

Функсияи TestMace ба намудҳои гуногуни гиреҳҳо тақсим карда мешавад. Дар мисоли боло, мо кори гиреҳи RequestStep-ро нишон додем. Аммо, намудҳои зерини гиреҳҳо ҳоло дар барнома дастрасанд:

  • Қадами дархост. Ин гиреҳест, ки тавассути он шумо метавонед дархост эҷод кунед. Он метавонад танҳо як гиреҳи тасдиқро ҳамчун унсури кӯдак дошта бошад.
  • Тасдик. Гиреҳ барои навиштани санҷишҳо истифода мешавад. Метавонад танҳо гиреҳи кӯдаки гиреҳи RequestStep бошад.
  • Папка. Ба шумо имкон медиҳад, ки гиреҳҳои ҷузвдон ва 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 - як IDE пуриқтидор барои кор бо API

Қобили зикр аст, ки худкорпуркунӣ на танҳо барои тағирёбандаҳо, балки, масалан, барои сарлавҳаҳо, арзишҳои сарлавҳаҳои муайян (масалан, пуркунии худкор барои сарлавҳаи Content-Type), протоколҳо ва ғайра амалӣ карда мешавад. Рӯйхат бо афзоиши барнома мунтазам нав карда мешавад.

Бекор кардан/бозкор кардан

Барқарор кардан/аз нав анҷом додани тағирот як чизи хеле қулай аст, аммо бо баъзе сабабҳо он дар ҳама ҷо татбиқ карда намешавад (ва асбобҳо барои кор бо API истисно нестанд). Аммо мо яке аз онҳо нестем!) Мо баргардонида/redo-ро дар тамоми лоиҳа амалӣ кардем, ки ба шумо имкон медиҳад, ки на танҳо таҳриркунии гиреҳи мушаххас, балки эҷод, ҳазф, ҳаракат ва ғайраро низ бекор кунед. Амалиёти муҳимтарин тасдиқро талаб мекунад.

Эҷоди тестҳо

Гиреҳи тасдиқ барои эҷоди санҷишҳо масъул аст. Яке аз хусусиятҳои асосӣ ин қобилияти эҷоди тестҳо бидуни барномасозӣ бо истифода аз муҳаррирони дарунсохт мебошад.

Гиреҳи тасдиқ аз маҷмӯи тасдиқҳо иборат аст. Ҳар як тасдиқ намуди худро дорад; дар айни замон якчанд намуди тасдиқ вуҷуд дорад

  1. Қиматҳоро муқоиса кунед - танҳо 2 арзишро муқоиса кунед. Якчанд операторҳои муқоисавӣ мавҷуданд: баробар, баробар нест, бузургтар аз, бузургтар аз ё баробар, камтар аз, камтар ё баробар.

  2. Қиматро дарбар мегирад - пайдоиши зерсатрро дар сатр тафтиш мекунад.

  3. XPath - тафтиш мекунад, ки селектор дар XML дорои арзиши муайян аст.

  4. Тасдиқи JavaScript як скрипти javascript худсарона аст, ки ҳангоми муваффақият ҳақиқӣ ва дар нокомӣ бардурӯғ бармегардад.

Ман қайд мекунам, ки танҳо охирин аз корбар малакаҳои барномасозиро талаб мекунад, 3 тасдиқи дигар бо истифода аз интерфейси графикӣ сохта шудаанд. Дар ин ҷо, масалан, муколама барои эҷоди тасдиқи арзишҳои муқоисавӣ чунин аст:

TestMace - як IDE пуриқтидор барои кор бо API

Иҷрои торт ин эҷоди зуди изҳорот аз посухҳост, танҳо ба он нигоҳ кунед!

TestMace - як IDE пуриқтидор барои кор бо API

Бо вуҷуди ин, чунин изҳорот маҳдудиятҳои возеҳ доранд, ки шумо метавонед барои бартараф кардани онҳо як тасдиқи javascript истифода баред. Ва дар ин ҷо TestMace инчунин муҳити бароҳатро бо худкорпуркунӣ, равшансозии синтаксис ва ҳатто таҳлилгари статикӣ фароҳам меорад.

Тавсифи API

TestMace ба шумо имкон медиҳад, ки на танҳо API-ро истифода баред, балки онро ҳуҷҷатгузорӣ кунед. Ғайр аз он, худи тавсиф низ сохтори иерархӣ дорад ва ба таври органикӣ ба қисми боқимондаи лоиҳа мувофиқат мекунад. Илова бар ин, дар айни замон мумкин аст, ки тавсифи API-ро аз форматҳои Swagger 2.0 / OpenAPI 3.0 ворид кунед. Худи тавсиф на танҳо вазни мурдаро дар бар мегирад, балки бо боқимондаи лоиҳа зич муттаҳид карда шудааст, аз ҷумла, ба таври худкор анҷом додани URL-ҳо, сарлавҳаҳои HTTP, параметрҳои дархост ва ғайра мавҷуд аст ва дар оянда мо нақша дорем, ки санҷишҳоро илова кунем. барои мувофиқати посух ба тавсифи API.

Гиреҳи мубодила

Ҳодиса: шумо мехоҳед дархости мушкилот ё ҳатто як скриптро бо ҳамкасбон мубодила кунед ё онро ба хато замима кунед. TestMace ин ҳолатро низ фаро мегирад: барнома ба шумо имкон медиҳад, ки ҳама гиреҳ ва ҳатто зердарахтро дар URL сериал кунед. Нусхабардорӣ-часбонед ва шумо метавонед ба осонӣ дархостро ба мошин ё лоиҳаи дигар интиқол диҳед.

Формати нигоҳдории лоиҳа, ки барои инсон хондан мумкин аст

Дар айни замон, ҳар як гиреҳ дар файли алоҳида бо тамдиди yml (чунон ки дар гиреҳи Assertion аст) ё дар ҷузвдон бо номи гиреҳ ва файли 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 - як IDE пуриқтидор барои кор бо API

Системаи файлиро ба сохтори зерин харита мекунад (танҳо иерархияи ҷузвдон нишон дода мешавад, аммо моҳият равшан аст)

TestMace - як IDE пуриқтидор барои кор бо API

Ин раванди баррасии лоиҳаро осон мекунад.

Воридот аз Postman

Пас аз хондани ҳама чизҳои дар боло зикршуда, баъзе корбарон мехоҳанд, ки маҳсулоти навро санҷанд (дуруст?) ё (чӣ дӯзах шӯхӣ намекунад!) онро дар лоиҳаи худ пурра истифода баранд. Бо вуҷуди ин, муҳоҷиратро тавассути шумораи зиёди пешрафтҳо дар ҳамон Почтачӣ боздоштан мумкин аст. Барои чунин ҳолатҳо, TestMace воридоти коллексияҳоро аз Postman дастгирӣ мекунад. Дар айни замон, воридоти бидуни санҷиш дастгирӣ карда мешавад, аммо мо дар оянда дастгирии онҳоро истисно намекунем.

Нақшаҳо

Умедворам, ки бисёре аз онҳое, ки то ин вақт хондаанд, маҳсулоти мо маъқуланд. Бо вуҷуди ин, ин ҳама нест! Кор дар болои маҳсулот босуръат идома дорад ва дар ин ҷо баъзе хусусиятҳое ҳастанд, ки мо нақша дорем ба наздикӣ илова кунем.

Синхронизатсияи абрӣ

Яке аз хусусиятҳои аз ҳама дархостшуда. Дар айни замон, мо пешниҳод менамоем, ки системаҳои идоракунии версияро барои ҳамоҳангсозӣ истифода барем, ки барои он мо форматро барои ин намуди нигоҳдорӣ бештар мувофиқ мегардонем. Аммо, ин ҷараёни корӣ барои ҳама мувофиқ нест, аз ин рӯ мо нақша дорем, ки тавассути серверҳои мо механизми синхронизатсия ба бисёриҳо шинос илова кунем.

CLI

Тавре ки дар боло зикр гардид, маҳсулоти сатҳи IDE наметавонанд бидуни ҳама гуна ҳамгироӣ бо замимаҳои мавҷуда ё ҷараёнҳои корӣ кор кунанд. CLI маҳз он чизест, ки барои ҳамгироии санҷишҳои дар TestMace навишташуда ба раванди муттаҳидсозии пайваста зарур аст. Кор дар CLI босуръат идома дорад; версияҳои аввал лоиҳаро бо гузориши оддии консол оғоз мекунанд. Дар оянда мо нақша дорем, ки баромади гузоришро дар формати JUnit илова кунем.

Системаи плагин

Бо вуҷуди тамоми қудрати асбоби мо, маҷмӯи парвандаҳое, ки ҳалли худро талаб мекунанд, беохир аст. Баъд аз ҳама, вазифаҳое ҳастанд, ки ба лоиҳаи мушаххас хосанд. Аз ин рӯ, мо дар оянда нақша дорем, ки SDK-ро барои таҳияи плагинҳо илова кунем ва ҳар як таҳиякунанда метавонад ба хоҳиши худ функсия илова кунад.

Васеъ кардани доираи намудҳои гиреҳ

Ин маҷмӯи гиреҳҳо на ҳама ҳолатҳоеро, ки корбар талаб мекунад, фаро мегирад. Гиреҳҳое, ки илова кардан ба нақша гирифта шудаанд:

  • Гиреҳи скрипт - маълумотро бо истифода аз js ва API мувофиқ табдил медиҳад ва ҷойгир мекунад. Бо истифода аз ин навъи гиреҳ, шумо метавонед корҳоеро ба мисли скриптҳои пеш аз дархост ва пас аз дархост дар Postman иҷро кунед.
  • Гиреҳи GraphQL - дастгирии graphql
  • Гиреҳи тасдиқи фармоишӣ - ба шумо имкон медиҳад, ки маҷмӯи тасдиқҳои мавҷударо дар лоиҳа васеъ кунед
    Табиист, ки ин рӯйхати ниҳоӣ нест; он аз ҳисоби фикру мулоҳизаҳои шумо пайваста нав карда мешавад.

Саволҳои зиёд такрормешуда

Шумо аз Postman чӣ фарқ доред?

  1. Консепсияи гиреҳҳо, ки ба шумо имкон медиҳад, ки функсияҳои лоиҳаро қариб беохир васеъ кунед
  2. Формати лоиҳаи аз ҷониби инсон хондашаванда бо захира кардани он дар системаи файлӣ, ки корро бо истифода аз системаҳои идоракунии версия осон мекунад
  3. Имконияти эҷоди тестҳо бидуни барномасозӣ ва дастгирии пешрафтаи js дар муҳаррири санҷиш (автопуркунӣ, анализатори статикӣ)
  4. Автопуркунии пешрафта ва равшансозии арзиши ҷории тағирёбандаҳо

Оё ин маҳсулоти кушодаасос аст?

Не, дар ҳоли ҳозир манобеъ бастаанд, аммо дар оянда имкони боз кардани манобеъро баррасӣ мекунем.

Шумо аз чӣ зиндагӣ мекунед?)

Дар баробари версияи ройгон, мо нақша дорем, ки версияи пулакии маҳсулотро нашр кунем. Он пеш аз ҳама чизҳоеро дар бар мегирад, ки тарафи серверро талаб мекунанд, масалан, ҳамоҳангсозӣ.

хулоса

Лоиҳаи мо бо ҷаҳиш ва ҳудуд ба сӯи нашри устувор ҳаракат мекунад. Бо вуҷуди ин, маҳсулотро аллакай истифода бурдан мумкин аст ва фикру мулоҳизаҳои мусбии корбарони аввалини мо далели ин аст. Мо фикру мулоҳизаҳоро фаъолона ҷамъ меорем, зеро бидуни ҳамкории зич бо ҷомеа асбоби хуб сохтан ғайриимкон аст. Шумо метавонед моро дар ин ҷо пайдо кунед:

Сомонаи расмӣ

телеграмма

суст

Facebook

Назоратчии мушкилот

Мо хоҳишу пешниҳодҳои шуморо интизорем!

Манбаъ: will.com

Илова Эзоҳ