Салом ба ҳама!
Тақсим ба гиреҳҳо
Агар шумо бо Postman кор кунед, пас шумо медонед, ки интерфейси дархост тамоми функсияҳои заруриро дар бар мегирад. Скриптҳо, санҷишҳо ва воқеан худи дархостҳо мавҷуданд. Ин барои шурӯъкунандагон осонтар мекунад, аммо дар сенарияҳои калон ин равиш чандир нест. Чӣ мешавад, агар шумо хоҳед, ки якчанд дархост эҷод кунед ва дар онҳо ҷамъоварӣ кунед? Чӣ мешавад, агар шумо хоҳед, ки скриптро бидуни дархост ё якчанд скриптҳои аз ҷиҳати мантиқӣ ҷудошуда дар як саф иҷро кунед? Дар ниҳоят, хуб мебуд, ки санҷишҳоро аз скриптҳои маъмулии коммуналӣ ҷудо кунед. Илова бар ин, равиши "ҳамаи функсияҳоро ба як гиреҳ илова кардан" миқёспазир нест - интерфейс зуд пурбор мешавад.
TestMace дар аввал тамоми функсияҳоро ба намудҳои гуногуни гиреҳҳо тақсим мекунад. Мехоҳед дархост пешниҳод кунед? Он барои шумост
Формати лоиҳа, ки барои одамон хонда мешавад
Байни TestMace ва Postman дар тарзи нигоҳдории онҳо фарқияти консептуалӣ вуҷуд дорад. Дар Postman, ҳама дархостҳо дар ҷое дар анбори маҳаллӣ нигоҳ дошта мешаванд. Агар зарурати мубодилаи дархостҳо байни якчанд корбар вуҷуд дошта бошад, пас шумо бояд ҳамоҳангсозии дарунсохтро истифода баред. Дар асл, ин як равиши аз ҷониби умум қабулшуда аст, аммо на бе камбудиҳои он. Дар бораи амнияти додаҳо чӣ гуфтан мумкин аст? Дар ниҳоят, сиёсати баъзе ширкатҳо имкон намедиҳад, ки маълумот бо шахсони сеюм нигоҳ дошта шавад. Бо вуҷуди ин, мо фикр мекунем, ки TestMace чизи беҳтаре барои пешниҳод дорад! Ва номи ин такмил "формати лоиҳаи барои инсон хондашаванда" мебошад.
Биёед бо он оғоз кунем, ки дар TestMace, аслан як субъекти "лоиҳа" мавҷуд аст. Ва барнома дар аввал бо мақсади нигоҳ доштани лоиҳаҳо дар системаҳои идоракунии версия таҳия шуда буд: дарахти лоиҳа тақрибан як ба як ба сохтори файл пешбинӣ шудааст, yaml ҳамчун формати нигоҳдорӣ (бе қавс ва вергулҳои иловагӣ) истифода мешавад ва Намоиши файли ҳар як гиреҳ дар ҳуҷҷатҳо бо шарҳҳо муфассал тавсиф шудааст. Аммо дар аксари ҳолатҳо шумо ба он ҷо нигоҳ намекунед - ҳамаи номҳои майдонҳо номҳои мантиқӣ доранд.
Ин ба корбар чӣ медиҳад? Ин ба шумо имкон медиҳад, ки ҷараёни кори дастаро бо истифода аз равишҳои шинос хеле чандир тағйир диҳед. Масалан, таҳиягарон метавонанд лоиҳаро дар ҳамон як анбори пуштибон нигоҳ доранд. Дар филиалҳо, ба ғайр аз тағир додани худи пойгоҳи код, таҳиякунанда метавонад скриптҳо ва санҷишҳои мавҷудаи дархостро ислоҳ кунад. Пас аз ворид кардани тағирот ба анбор (git, svn, mercurial - ҳар чизе ки ба шумо маъқул аст), CI (дӯстдоштаи шумо, ки аз ҷониби касе муқаррар карда нашудааст) утилитаи консолии моро оғоз мекунад
Тавре ки шумо мебинед, TestMace экосистема ва парадигмаи худро таҳмил намекунад. Ба ҷои ин, он ба равандҳои муқарраршуда ба осонӣ мувофиқат мекунад.
Тағйирёбандаҳои динамикӣ
TestMace консепсияи бе кодро риоя мекунад: агар мушкилотро бидуни истифодаи код ҳал кардан мумкин бошад, мо кӯшиш мекунем, ки ин имкониятро фароҳам орем. Кор бо тағирёбандаҳо маҳз як намуди функсияест, ки дар аксари ҳолатҳо шумо метавонед бидуни барномасозӣ кор кунед.
Мисол: мо аз сервер посух гирифтем ва мо мехоҳем як қисми посухро ба тағирёбанда захира кунем. Дар Postman, дар скрипти санҷишӣ (ки худ аҷиб аст) мо чунин менависем:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);
Аммо ба назари мо, навиштани скрипт барои чунин сенарияи содда ва зуд-зуд истифодашаванда зиёдатист. Аз ин рӯ, дар TestMace бо истифода аз интерфейси графикӣ як пораи ҷавобро ба тағирёбанда таъин кардан мумкин аст. Бингар, ки чӣ қадар оддӣ аст:
Ва ҳоло бо ҳар як дархост ин тағирёбандаи динамикӣ нав карда мешавад. Аммо шумо метавонед эътироз кунед ва баҳс кунед, ки равиши Postman чандиртар аст ва ба шумо имкон медиҳад, ки на танҳо супориш диҳед, балки инчунин коркарди пешакиро анҷом диҳед. Ин аст тарзи тағир додани мисоли қаблӣ:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));
Хуб, бо ин мақсад TestMace дорад
const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));
Тавре ки шумо мебинед, таркиби гиреҳҳо дар ин ҷо низ хуб хизмат мекарданд. Ва барои чунин ҳолати оддӣ, ки дар боло тавсиф шудааст, шумо метавонед танҳо ифодаро таъин кунед ${crypto.MD5($response.data)}
тағирёбанда тавассути GUI сохта шудааст!
Эҷоди санҷишҳо тавассути GUI
Postman ба шумо имкон медиҳад, ки тавассути навиштани скриптҳо санҷишҳо эҷод кунед (дар мавриди Postman, ин JavaScript аст). Ин равиш бартариҳои зиёд дорад - чандирии қариб номаҳдуд, мавҷудияти қарорҳои тайёр ва ғайра.
Аммо воқеият аксар вақт чунин аст (мо ин тавр нестем, зиндагӣ чунин аст), ки озмоишгар малакаи барномасозӣ надорад, аммо мехоҳад худи ҳозир ба даста фоида расонад. Барои чунин ҳолатҳо, пас аз консепсияи бе код, TestMace ба шумо имкон медиҳад, ки бидуни муроҷиат ба навиштани скриптҳо тавассути GUI санҷишҳои оддӣ эҷод кунед. Дар ин ҷо, масалан, раванди эҷоди санҷиш, ки арзишҳоро барои баробарӣ муқоиса мекунад, чунин аст:
Бо вуҷуди ин, эҷод кардани санҷишҳо дар муҳаррири графикӣ ин имконро аз байн намебарад
Имконияти иҷро кардани скрипти мавҷуда тавассути истинод (гиреҳи пайванд)
Вазъиятҳо аксар вақт ба вуҷуд меоянд, ки дархости муайян ё ҳатто тамоми скриптро дар қисмҳои гуногуни лоиҳа якчанд маротиба иҷро кардан лозим аст. Намунаи чунин дархостҳо метавонад иҷозати фармоишии бисёрмарҳала, ба ҳолати дилхоҳ овардани муҳити зист ва ғайра бошад. Умуман, дар мавриди забонҳои барномасозӣ сухан ронем, мо мехоҳем функсияҳое дошта бошем, ки дар қисмҳои гуногуни барнома дубора истифода шаванд. Дар TestMace ин вазифаро иҷро мекунад
1) дархост ё скрипт эҷод кунед
2) гиреҳи навъи Link эҷод кунед
3) дар параметрҳо, истиноди скрипти дар қадами аввал сохташударо муайян кунед
Дар версияи пешрафта, шумо метавонед муайян кунед, ки кадом тағирёбандаҳои динамикӣ аз скрипт нисбат ба пайванд ба сатҳи баландтар интиқол дода мешаванд. Садо печида аст? Фарз мекунем, ки мо папкаеро бо ном офаридаем эҷод-пост, ки дар дохили он як тағирёбандаи динамикӣ ба ин гиреҳ таъин шудааст postId
. Ҳоло дар гиреҳи Link эҷод-пайванд-пайванд шумо метавонед ба таври возеҳ муайян кунед, ки тағирёбанда postId
ба аҷдод таъин шудааст эҷод-пайванд-пайванд. Ин механизм (боз дар забони барномасозӣ) метавонад барои баргардонидани натиҷа аз "функсия" истифода шавад. Умуман, ин сард аст, DRY дар авҷ аст ва боз ягон сатри код осеб надидааст.
Дар мавриди Postman, дархости хусусият барои истифодаи дубораи дархостҳо мавҷуд аст
Дигар фарқиятҳо
- Назорати бештари доираи тағирёбандаҳо. Миқёси хурдтарин, ки дар дохили он тағирёбанда дар Postman муайян карда мешавад, коллексия мебошад. TestMace ба шумо имкон медиҳад, ки тағирёбандаҳоро барои ҳама дархост ё ҷузвдон муайян кунед. Дар коллексияи Share Postman ба шумо имкон медиҳад, ки танҳо коллексияҳоро содир кунед, дар ҳоле ки дар TestMace мубодила барои ҳама гиреҳ кор мекунад
- TestMace дастгирӣ мекунад
сарлавҳаҳои меросӣ , ки онро бо нобаёнӣ ба дархостҳои кӯдак иваз кардан мумкин аст. Почтачӣ дар ин бора чизе дорад:вазифа , ва он ҳатто баста аст, аммо он ҳамчун ҳалли пешниҳод карда мешавад ...скриптҳоро истифода баред . Дар TestMace, ин ҳама тавассути GUI танзим карда мешавад ва имкони ғайрифаъол кардани сарлавҳаҳои меросӣ дар наслҳои мушаххас мавҷуд аст. - Бекор кардан/Бозгардон. На танҳо ҳангоми таҳрири гиреҳҳо, балки ҳангоми интиқол, нест кардан, тағир додани ном ва дигар амалиётҳое, ки сохтори лоиҳаро тағир медиҳанд, кор мекунад
- Файлҳои ба дархост замимашуда як қисми лоиҳа мешаванд ва бо он нигоҳ дошта мешаванд, дар ҳоле ки ба таври комил ҳамоҳанг карда мешаванд, баръакси Postman. (Бале, ба шумо дигар лозим нест, ки ҳар дафъа оғоз кардани файлҳоро дастӣ интихоб кунед ва онҳоро ба ҳамкорони бойгонӣ интиқол диҳед)
Хусусиятҳое, ки аллакай дар роҳ ҳастанд
Мо натавонистем ба васвасаи бардоштан пардаи махфият дар болои релизҳои навбатӣ муқобилат кунем, хусусан вақте ки функсия хеле болаззат аст ва аллакай аз сайқал додани пеш аз нашр мегузарад. Пас, биёед вохӯрем.
Функсияҳо
Тавре ки шумо медонед, Postman барои тавлиди арзишҳо тағирёбандаҳои ба ном динамикиро истифода мебарад.
{{$randomEmail}}
Аммо, азбаски инҳо тағирёбандаанд (ҳарчанд динамикӣ бошанд), онҳоро ҳамчун функсия истифода бурдан мумкин нест: онҳо параметризатсия карда намешаванд, бинобар ин аз сатр хэш гирифтан ғайриимкон хоҳад буд.
Мо нақша дорем, ки ба TestMace функсияҳои "одилона" илова кунем. Дар дохили ${} на танҳо ба тағирёбанда дастрасӣ пайдо кардан мумкин аст, балки инчунин функсияро даъват кардан мумкин аст. Онхое. агар ба шумо лозим аст, ки почтаи электронии қалбакӣ эҷод кунед, мо танҳо менависем
${faker.internet.email()}
Илова бар он, ки он функсия аст, шумо хоҳед дид, ки имкон дорад, ки методро дар объект даъват кунед. Ва ба ҷои рӯйхати бузурги тағирёбандаҳои динамикӣ, мо маҷмӯи объектҳои аз ҷиҳати мантиқӣ гурӯҳбандӣшударо дорем.
Чӣ мешавад, агар мо хоҳем, ки хэши сатрро ҳисоб кунем? Ба осонӣ!
${crypto.MD5($dynamicVar.data)}
Шумо хоҳед дид, ки шумо ҳатто метавонед тағирёбандаҳоро ҳамчун параметр гузаронед! Дар ин лаҳза хонандаи пуртаҷриба метавонад гумон кунад, ки чизе нодуруст аст ...
Истифодаи JavaScript дар ифодаҳо
... Ва бо сабаби хуб! Вақте ки талабот ба функсияҳо ташаккул меёфт, мо ногаҳон ба хулосае омадем, ки JavaScript дуруст бояд дар ифодаҳо навишта шавад. Ҳамин тавр, шумо ҳоло озод ҳастед, ки ибораҳои зеринро нависед:
${1 + '' + crypto.MD5('asdf')}
Ва ҳамаи ин бе скриптҳо, рост дар майдонҳои вуруд!
Дар мавриди Postman, дар ин ҷо шумо метавонед танҳо тағирёбандаҳоро истифода баред ва вақте ки шумо кӯчактарин ифодаро нависед, валидатор лаънат мекунад ва аз ҳисоб кардани он худдорӣ мекунад.
Автопуркунии пешрафта
Дар айни замон TestMace дорои худкорпуркунии стандартӣ мебошад, ки чунин менамояд:
Дар ин чо ба гайр аз хатти автоматй пурра ба чй тааллук доштани ин сатр нишон дода мешавад. Ин механизм танҳо дар ифодаҳое кор мекунад, ки бо қавс ${} иҳота шудаанд.
Тавре ки шумо мебинед, маркерҳои визуалӣ илова карда шудаанд, ки намуди тағирёбандаро нишон медиҳанд (масалан, сатр, адад, массив ва ғ.). Шумо инчунин метавонед усулҳои пуркунии худкорро тағир диҳед (масалан, шумо метавонед пуркунии худкорро бо тағирёбандаҳо ё сарлавҳаҳо интихоб кунед). Аммо ҳатто ин чизи муҳимтарин нест!
Аввалан, пуркунии худкор ҳатто дар ифодаҳо кор мекунад (ҳар ҷое ки имконпазир бошад). Чунин ба назар мерасад:
Ва дуюм, ҳоло худкор пурракунӣ дар скриптҳо дастрас аст. Бубинед, ки он чӣ гуна кор мекунад!
Муқоисаи ин функсия бо Postman ҷоиз нест - пуркунии худкор танҳо бо рӯйхати статикии тағирёбандаҳо, сарлавҳаҳо ва арзишҳои онҳо маҳдуд аст (агар ман чизеро фаромӯш карда бошам, маро ислоҳ кунед). Скриптҳо худкор пурра карда намешаванд :)
хулоса
Октябри соли чорй аз огози истехсоли махсулоти мо як сол гузашт. Дар ин муддат ба мо муяссар шуд, ки бисьёр корхоро ба чо оварем ва аз чихати муайян ба хаммусобикахои худ расида гирифтем. Аммо новобаста аз он, ки ҳадафи мо сохтани як воситаи воқеан қулай барои кор бо API мебошад. Мо хануз кори бисьёре дорем, дар ин чо накшаи тахеили тахияи лоихаи мо барои соли оянда аст:
Фикру мулоҳизаҳои шумо ба мо имкон медиҳад, ки фаровонии хусусиятҳоро беҳтар паймоиш кунем ва дастгирии шумо ба мо қувват ва боварӣ мебахшад, ки мо кори дуруст карда истодаем. Чунин мешавад, ки имрӯз барои лоиҳаи мо як рӯзи муҳим аст - рӯзе, ки TestMace нашр шуд
Манбаъ: will.com