TestMace - API менен иштөө үчүн күчтүү IDE

Баарына салам! Бүгүн биз IT коомчулугуна биздин продуктту - 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. Бул сиз сурам түзө турган түйүн. Ал кошумча элемент катары бир гана ырастоо түйүнү болушу мүмкүн.
  • ырастоо. Түйүн тесттерди жазуу үчүн колдонулат. RequestStep түйүнүнүн кошумча түйүнү гана болушу мүмкүн.
  • Папка. Папканы жана RequestStep түйүндөрүн өз ичинде топтоого мүмкүндүк берет.
  • Долбоор. Бул долбоор түзүлгөндө автоматтык түрдө түзүлгөн түпкү түйүн. Болбосо, ал Папка түйүнүнүн функциясын кайталайт.
  • Шилтеме. Папкага же RequestStep түйүнүнө шилтеме. Суроолорду жана скрипттерди кайра колдонууга мүмкүндүк берет.
  • жана башкалар.

Түйүндөр чийилген жерлерде (төмөнкү сол жактагы панель, “бир жолку” суроо-талаптарды тез түзүү үчүн колдонулат) жана долбоорлордо (сол жактагы панель) жайгашкан, алар боюнча биз кененирээк токтолобуз.

долбоору

Тиркемени ишке киргизгенде, сиз жогорку сол бурчта жалгыз Долбоор сызыгын байкай аласыз. Бул долбоор дарактын тамыры болуп саналат. Долбоорду баштаганда, убактылуу долбоор түзүлөт, анын жолу операциялык тутумуңузга жараша болот. Каалаган убакта сиз долбоорду сизге ыңгайлуу жерге көчүрө аласыз.

Долбоордун негизги максаты - файл тутумунда иштеп чыгууларды сактоо жана версияларды башкаруу системалары аркылуу аларды андан ары синхрондоштуруу, CIде скрипттерди иштетүү, өзгөртүүлөрдү карап чыгуу ж.б.

өзгөрмөлөр

Өзгөрмөлөр колдонмонун негизги механизмдеринин бири болуп саналат. TestMace сыяктуу куралдар менен иштегендер, биз эмне жөнүндө сөз кылып жатканыбызды түшүнүшү мүмкүн. Ошентип, өзгөрмөлөр жалпы маалыматтарды сактоонун жана түйүндөрдүн ортосундагы байланыштын бир жолу. Аналогу, мисалы, Почтачы же Уйкусуздуктагы чөйрө өзгөрмөлөрү. Бирок, биз андан ары барып, теманы өнүктүрдүк. TestMaceде өзгөрмөлөр түйүн деңгээлинде коюлушу мүмкүн. каалаган. Өзгөрмөлөрдү ата-бабалардан мурастоо жана урпактарда кайталануучу өзгөрмөлөрдү алуу механизми да бар. Мындан тышкары, бир катар орнотулган өзгөрмөлөр бар, орнотулган өзгөрмөлөрдүн аттары менен башталат $. Бул жерде алардын айрымдары:

  • $prevStep — мурунку түйүндүн өзгөрмөлөрүнө шилтеме
  • $nextStep — кийинки түйүндүн өзгөрмөлөрүнө шилтеме
  • $parent - ошол эле нерсе, бирок ата-баба үчүн гана
  • $response - серверден жооп
  • $env - учурдагы чөйрө өзгөрмөлөрү
  • $dynamicVar - скрипт же суроону аткаруу учурунда түзүлгөн динамикалык өзгөрмөлөр

$env - булар негизинен Долбоордун түйүн деңгээлиндеги кадимки өзгөрмөлөр, бирок чөйрө өзгөрмөлөрүнүн жыйындысы тандалган чөйрөгө жараша өзгөрөт.

өзгөрмө аркылуу жеткиликтүү болот ${variable_name}
Өзгөрмөнүн мааниси башка өзгөрмө же бүтүндөй бир туюнтма болушу мүмкүн. Мисалы, url өзгөрмөсү сыяктуу туюнтма болушу мүмкүн
http://${host}:${port}/${endpoint}.

Өзүнчө, сценарийди аткаруу учурунда өзгөрмөлөрдү дайындоо мүмкүнчүлүгүн белгилей кетүү керек. Мисалы, ийгиликтүү логинден кийин серверден келген авторизация берилиштерин (токен же бүтүндөй аталыш) сактоо зарылчылыгы көп кездешет. TestMace мындай маалыматтарды ата-бабалардын биринин динамикалык өзгөрмөлөрүндө сактоого мүмкүндүк берет. Учурдагы "статикалык" өзгөрмөлөр менен кагылышууларды болтурбоо үчүн, динамикалык өзгөрмөлөр өзүнчө объектке жайгаштырылат. $dynamicVar.

жагдайлар

Жогорудагы бардык функцияларды колдонуу менен, сиз толук суроо скрипттерин иштете аласыз. Мисалы, объект түзүү -> объектти суроо -> объектти жок кылуу. Бул учурда, мисалы, сиз бир нече RequestStep түйүндөрүн топтоо үчүн Папка түйүнүн колдоно аласыз.

Автотолтурууну жана туюнтманы бөлүп көрсөтүү

Өзгөрмөлөр менен ыңгайлуу иштөө үчүн (жана гана эмес) автотолтуруу зарыл. Жана, албетте, белгилүү бир өзгөрмө эмнеге барабар экенин тактоо үчүн, аны жеңилдетүү жана ыңгайлуу кылуу үчүн туюнтма маанисин бөлүп көрсөтүү. Жүз жолу уккандан көрө, бир көргөн артык болгондо дал ушундай болот:

TestMace - API менен иштөө үчүн күчтүү IDE

Белгилей кетчү нерсе, автотолтуру бир гана өзгөрмөлөр үчүн эмес, ошондой эле, мисалы, аталыштар, белгилүү бир аталыштардын маанилери (мисалы, Content-Type аталышы үчүн автотолтуруу), протоколдор жана башка көптөгөн нерселер үчүн. Тиркеме өскөн сайын тизме дайыма жаңыланып турат.

Жок кылуу/кайталоо

Өзгөртүүлөрдү жокко чыгаруу/кайра жасоо - бул абдан ыңгайлуу нерсе, бирок кандайдыр бир себептерден улам ал бардык жерде ишке ашырыла бербейт (жана API менен иштөө куралдары да четте калбайт). Бирок биз андайлардын бири эмеспиз!) Биз бүткүл долбоордо undo/redo функциясын ишке ашырдык, бул сизге белгилүү бир түйүндү түзөтүүнү гана эмес, аны түзүү, өчүрүү, жылдыруу ж.б. Эң маанилүү операциялар ырастоону талап кылат.

Тесттерди түзүү

Assertion түйүнү тесттерди түзүү үчүн жооптуу. Негизги өзгөчөлүктөрдүн бири - орнотулган редакторлорду колдонуп, программалоосуз тесттерди түзүү мүмкүнчүлүгү.

Assertion түйүнү ырастоолордун жыйындысынан турат. Ар бир ырастоонун өзүнүн түрү бар; учурда ырастоолордун бир нече түрү бар

  1. Маанилерди салыштыруу - жөн гана 2 маанини салыштырат. Бир нече салыштыруу операторлору бар: барабар, барабар эмес, чоңураак, чоңураак же барабар, кичине, кичине же барабар.

  2. Маани камтыйт - сапта ички саптын болушун текшерет.

  3. XPath - XMLдеги селектордо белгилүү бир маани бар экендигин текшерет.

  4. JavaScript ырастоосу – ийгиликке жеткенде чындыкка, ал эми ийгиликсиз болгондо жалганга кайтарылган эркин JavaScript скрипти.

Акыркысы гана колдонуучудан программалоо көндүмдөрүн талап кылаарын белгилеймин, калган 3 ырастоо графикалык интерфейстин жардамы менен түзүлгөн. Бул жерде, мисалы, салыштыруу баалуулуктарын ырастоону түзүү диалогу кандай болот:

TestMace - API менен иштөө үчүн күчтүү IDE

Торттун үстүндөгү глазурь - бул жооптордон ырастоолорду тез түзүү, аны карап көрүңүз!

TestMace - API менен иштөө үчүн күчтүү IDE

Бирок, мындай ырастоолордун ачык чектөөлөрү бар, аларды жеңүү үчүн JavaScript ырастоосун колдонгуңуз келет. Жана бул жерде TestMace ошондой эле автотолуктоо, синтаксисти бөлүп көрсөтүү жана ал тургай статикалык анализатор менен ыңгайлуу чөйрөнү камсыз кылат.

API Description

TestMace сизге API колдонууга гана эмес, аны документтештирүүгө да мүмкүндүк берет. Мындан тышкары, сүрөттөмөнүн өзү да иерархиялык түзүлүшкө ээ жана долбоордун калган бөлүгүнө органикалык түрдө туура келет. Мындан тышкары, учурда Swagger 2.0 / OpenAPI 3.0 форматтарынан API сүрөттөмөлөрүн импорттоого болот. Сүрөттөмөнүн өзү жөн эле өлбөйт, бирок долбоордун калган бөлүгү менен тыгыз интеграцияланган, атап айтканда, 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 - API менен иштөө үчүн күчтүү IDE

Файлдык системаны төмөнкү структурага түшүрөт (папканын иерархиясы гана көрсөтүлөт, бирок маңызы түшүнүктүү)

TestMace - API менен иштөө үчүн күчтүү IDE

Бул долбоорду карап чыгуу процессин жеңилдетет.

Почтачыдан импорттоо

Жогоруда айтылгандардын баарын окуп чыккандан кийин, кээ бир колдонуучулар жаңы продуктуну сынап көргүсү келет (туурабы?) же (эмне тамаша эмес!) аны өз долбоорунда толугу менен колдонгусу келет. Бирок, миграцияны ошол эле Почтачыдагы көптөгөн окуялар менен токтотсо болот. Мындай учурларда, TestMace Почтачыдан коллекцияларды импорттоону колдойт. Учурда тестсиз импорт колдоого алынууда, бирок келечекте аларды колдоону жокко чыгарбайбыз.

пландар

Ушул убакка чейин окугандардын көбү биздин продуктуну жактырышты деп ишенем. Бирок, бул баары эмес! Продукциянын үстүндө иштөө кызуу жүрүп жатат жана бул жерде биз жакында кошууну пландаштырган кээ бир функциялар бар.

Cloud синхрондоштуруу

Эң көп талап кылынган функциялардын бири. Учурда биз синхрондоштуруу үчүн версияны башкаруу тутумдарын колдонууну сунуштайбыз, бул үчүн биз сактагычтын бул түрү үчүн форматты ыңгайлуу кылып жатабыз. Бирок, бул иш процесси баарына ылайыктуу эмес, ошондуктан биз серверлерибиз аркылуу көпчүлүккө тааныш болгон синхрондоштуруу механизмин кошууну пландап жатабыз.

CLI

Жогоруда айтылгандай, IDE деңгээлиндеги өнүмдөр учурдагы тиркемелер же жумушчу процесстер менен ар кандай интеграциясыз кыла албайт. CLI так TestMaceде жазылган тесттерди үзгүлтүксүз интеграция процессине интеграциялоо үчүн зарыл. CLI боюнча иш кызуу жүрүп жатат; алгачкы версиялар жөнөкөй консолдук отчет менен долбоорду ишке киргизет. Келечекте биз JUnit форматында отчеттун чыгышын кошууну пландап жатабыз.

Плагин системасы

Биздин куралыбыздын бардык күч-кубатына карабастан, чечимдерди талап кылган иштердин жыйындысы чексиз. Анткени, белгилүү бир долбоорго тиешелүү тапшырмалар бар. Ошондуктан, келечекте биз плагиндерди иштеп чыгуу үчүн SDK кошууну пландап жатабыз жана ар бир иштеп чыгуучу өз каалоосу боюнча функцияларды кошо алат.

Түйүн түрлөрүнүн диапазонун кеңейтүү

Бул түйүндөрдүн топтому колдонуучу талап кылган бардык учурларды камтыбайт. Кошулушу пландаштырылган түйүндөр:

  • Скрипт түйүнү - JS жана тиешелүү API аркылуу маалыматтарды конверттейт жана жайгаштырат. Түйүндүн бул түрүн колдонуу менен сиз Почтачыда суроо-талапка чейинки жана суроо-талаптан кийинки скрипттерди жасай аласыз.
  • GraphQL түйүнү - graphql колдоосу
  • Ыңгайлаштырылган ырастоо түйүнү - долбоордогу бар ырастоолордун топтомун кеңейтүүгө мүмкүндүк берет
    Албетте, бул акыркы тизме эмес, ал башка нерселер менен катар сиздин пикириңиздин аркасында дайыма жаңыланып турат.

FAQ

Почтачыдан эмнеси менен айырмаландың?

  1. Долбоордун функционалдуулугун дээрлик чексиз масштабдатууга мүмкүндүк берүүчү түйүндөр концепциясы
  2. Файлдык тутумда сактоо менен адам окуй турган долбоордун форматы, бул версияны башкаруу тутумдарын колдонуу менен ишти жөнөкөйлөтөт
  3. Программалоосуз тесттерди түзүү мүмкүнчүлүгү жана тест редакторунда өнүккөн JS колдоосу (автотолтуруучу, статикалык анализатор)
  4. Өркүндөтүлгөн автотолуктоо жана өзгөрмөлөрдүн учурдагы маанисин бөлүп көрсөтүү

Бул ачык булактуу продуктпу?

Жок, учурда булактар ​​жабык, бирок келечекте булактарды ачуу мүмкүнчүлүгүн карап жатабыз.

Сиз эмне менен жашайсыз?)

Акысыз версиясы менен бирге биз буюмдун акы төлөнүүчү версиясын чыгарууну пландап жатабыз. Ал биринчи кезекте сервер тарабын талап кылган нерселерди камтыйт, мисалы, синхрондоштуруу.

жыйынтыктоо

Биздин долбоор туруктуу релизге карай секирик жана чек менен жылып жатат. Бирок, продукт мурунтан эле колдонулушу мүмкүн жана биздин алгачкы колдонуучулардын оң пикири мунун далили болуп саналат. Биз пикирлерди жигердүү чогултабыз, анткени коомчулук менен тыгыз кызматташуусуз жакшы инструментти куруу мүмкүн эмес. Бизди бул жерден таба аласыз:

Расмий сайт

телеграмма

жалкоолонуп

Facebook

Маселелер трекери

Каалоо жана сунуштарыңызды күтөбүз!

Source: www.habr.com

Комментарий кошуу