Эмне үчүн TestMace Почтачыга караганда жакшыраак

Эмне үчүн TestMace Почтачыга караганда жакшыраак

Баарыңарга салам! TestMace! Балким, көп адамдар биз жөнүндө билишет биздин мурунку макалалар. Жаңыдан кошулгандар үчүн: биз TestMace API менен иштөө үчүн IDE иштеп жатабыз. TestMaceди атаандаш өнүмдөр менен салыштырганда эң көп берилүүчү суроо "Сиз Почтачыдан эмнеси менен айырмаланасыз?" Бул суроого кеңири жооп берүүгө убакыт келди деп чечтик. Төмөндө биз өзүбүздүн артыкчылыктарыбызды белгиледик почтальон.

Түйүндөргө бөлүнүү

Эгер сиз Почтачы менен иштесеңиз, анда сурам интерфейсинде бардык керектүү функциялар бар экенин билесиз. Сценарийлер, тесттер жана чындыгында сурамдардын өздөрү бар. Бул үйрөнчүктөр үчүн жеңилдетет, бирок чоң сценарийлерде бул ыкма ийкемдүү эмес. Эгер сиз бир нече сурамдарды түзүп, аларды бириктирүүнү кааласаңызчы? Эгер сиз скриптти сурамсыз же бир катар логикалык жактан бөлүнгөн бир нече скриптсиз аткаргыңыз келсе эмне болот? Анткени, тесттерди кадимки пайдалуу скрипттерден бөлүү жакшы болмок. Мындан тышкары, "бардык функцияларды бир түйүнгө кошуу" ыкмасы масштабдуу эмес - интерфейс тез эле ашыкча жүктөлөт.

TestMace башында бардык функцияларды түйүндөрдүн ар кандай түрлөрүнө бөлөт. Өтүнүч менен кайрылгыңыз келеби? Бул сен үчүн өтүнүч кадамы түйүн Сценарий жазгыңыз келеби? Бул сен үчүн кол шрифти түйүн Тесттер керекпи? Өтүнөмүн - Ырастоо түйүн Ооба, сиз дагы эле мунун баарын ороп койсоңуз болот папка түйүн Жана мунун баары бири-бири менен оңой айкалыштырылышы мүмкүн. Бул ыкма абдан ийкемдүү гана эмес, ошондой эле бирдиктүү жоопкерчилик принцибине ылайык, учурда сизге чындап керектүү нерселерди гана колдонууга мүмкүндүк берет. Мен жөн гана өтүнүч кылгым келсе, эмне үчүн мага сценарийлер жана тесттер керек?

Адам окуй турган долбоордун форматы

TestMace менен Почтачынын ортосунда аларды сактоо боюнча концептуалдык айырма бар. Почтачыда бардык суроо-талаптар жергиликтүү сактагычта сакталат. Эгер бир нече колдонуучулардын ортосунда суроо-талаптарды бөлүшүү зарылчылыгы болсо, анда сиз орнотулган синхрондоштурууну колдонушуңуз керек. Чынында, бул жалпы кабыл алынган ыкма, бирок анын кемчиликтери жок эмес. Маалымат коопсуздугу жөнүндө эмне айтууга болот? Анткени, кээ бир компаниялардын саясаты үчүнчү жактар ​​менен маалыматтарды сактоого жол бербеши мүмкүн. Бирок, биз TestMace сунуш кыла турган жакшы нерсе бар деп ойлойбуз! Жана бул жакшыртуунун аталышы "адам окуй турган долбоордун форматы".

Келгиле, TestMaceде, негизинен, "долбоор" субъекти бар экенинен баштайлы. Ал эми тиркеме адегенде версияларды башкаруу тутумдарында долбоорлорду сактоо максатында иштелип чыккан: долбоордун дарагы файл структурасына дээрлик бирден проекцияланат, yaml сактоо форматы катары колдонулат (кошумча кашаалар жана үтүрлөрсүз) жана ар бир түйүндүн файлдын көрсөтүлүшү комментарийлер менен документтерде деталдуу сүрөттөлгөн. Бирок көпчүлүк учурда сиз ал жакка кайрылбайсыз - бардык талаа аталыштарынын логикалык аталыштары бар.

Бул колдонуучуга эмне берет? Бул тааныш ыкмаларды колдонуу менен команданын иш агымын абдан ийкемдүү өзгөртүүгө мүмкүндүк берет. Мисалы, иштеп чыгуучулар долбоорду бир эле репозиторийде сактай алышат. Бутактарда, код базасынын өзүн өзгөртүүдөн тышкары, иштеп чыгуучу учурдагы суроо скрипттерин жана тесттерин оңдой алат. Репозиторийге өзгөртүүлөрдү киргизгенден кийин (git, svn, mercurial - сизге эмне жакса), CI (сиздин сүйүктүүңүз, эч ким таңуулабаган) биздин консолдук программаны ишке киргизет. testmace-cli, жана аткарылгандан кийин алынган отчет (мисалы, testmace-cliде да колдоого алынган junit форматында) тиешелүү системага жөнөтүлөт. Ал эми жогоруда айтылган коопсуздук маселеси көйгөй жаратпай калды.

Көрүнүп тургандай, TestMace өзүнүн экосистемасын жана парадигмасын таңуулабайт. Анын ордуна, ал белгиленген процесстерге оңой эле туура келет.

Динамикалык өзгөрмөлөр

TestMace кодсуз концепцияны карманат: эгер көйгөй кодду колдонбостон эле чечилсе, биз бул мүмкүнчүлүктү берүүгө аракет кылабыз. Өзгөрмөлөр менен иштөө дал ушул функциянын түрү, аны көпчүлүк учурларда программалоосуз аткара аласыз.

Мисал: биз серверден жооп алдык жана биз жооптун бир бөлүгүн өзгөрмөгө сактагыбыз келет. Почтачыда, сыноо сценарийинде (бул өзүнчө кызык) биз төмөнкүдөй нерсени жазабыз:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

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

Эмне үчүн TestMace Почтачыга караганда жакшыраак

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

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Ооба, бул үчүн TestMace бар кол шрифти бул сценарийди камтыган түйүн. Мурунку ишти кайра чыгаруу үчүн, бирок TestMace тарабынан аткарылган, сиз суроо-талапка ылайык скрипт түйүн түзүп, скрипт катары төмөнкү кодду колдонушуңуз керек:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Көрүнүп тургандай, түйүндөрдүн курамы бул жерде да жакшы кызмат кылган. Жана жогоруда сүрөттөлгөн мындай жөнөкөй иш үчүн, сиз жөн гана сөз айкашын дайындай аласыз ${crypto.MD5($response.data)} өзгөрмө GUI аркылуу түзүлгөн!

GUI аркылуу тесттерди түзүү

Почтачы скрипттерди жазуу менен тесттерди түзүүгө мүмкүндүк берет (Poçtman учурда, бул JavaScript). Бул ыкма көптөгөн артыкчылыктарга ээ - дээрлик чексиз ийкемдүүлүк, даяр чечимдердин болушу ж.б.

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

Эмне үчүн TestMace Почтачыга караганда жакшыраак

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

Кырдаалдар көп учурда белгилүү бир суроо же бүтүндөй скрипт долбоордун ар кайсы бөлүктөрүндө бир нече жолу аткаруу керек болгондо пайда болот. Мындай суроо-талаптардын мисалы катары ыңгайлаштырылган көп баскычтуу авторизация, айлана-чөйрөнү керектүү абалга келтирүү ж. Жалпысынан, программалоо тилдери боюнча айтсак, биз колдонмонун ар кандай бөлүктөрүндө кайра колдонула турган функцияларга ээ болгубуз келет. TestMaceде бул функция тарабынан аткарылат байланыш түйүн Аны колдонуу абдан жөнөкөй:
1) суроо же скрипт түзүү
2) Link түрүндөгү түйүн түзүү
3) параметрлерде биринчи кадамда түзүлгөн скриптке шилтемени көрсөтүңүз

Өркүндөтүлгөн версияда сиз скрипттен кайсы динамикалык өзгөрмөлөр шилтемеге салыштырмалуу жогорураак деңгээлге өтүшүн көрсөтө аласыз. Чаташып жатабы? Биз аты менен Папканы түздүк дейли түзүү-пост, анын ичинде бул түйүнгө динамикалык өзгөрмө дайындалган postId. Азыр Шилтеме түйүнүндө шилтемени түзүү өзгөрмө экенин ачык көрсөтө аласыз postId ата-бабага берилген шилтемени түзүү. Бул механизм (кайра, программалоо тилинде) "функциядан" натыйжаны кайтаруу үчүн колдонулушу мүмкүн. Жалпысынан алганда, бул салкын, DRY толугу менен иштеп жатат жана дагы бир коддун бир да сабы бузулган жок.

Эмне үчүн TestMace Почтачыга караганда жакшыраак

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

Башка айырмачылыктар

  • Өзгөрмөлөрдүн көлөмүн көбүрөөк көзөмөлдөө. Почтачыда өзгөрмө аныкталышы мүмкүн болгон эң кичинекей аймак коллекция болуп саналат. TestMace сиз каалаган суроо же папка үчүн өзгөрмөлөрдү аныктоого мүмкүндүк берет. Postman Share коллекциясында коллекцияларды гана экспорттоого мүмкүндүк берет, ал эми TestMaceде бөлүшүү каалаган түйүн үчүн иштейт
  • TestMace колдойт тукум куума баш тамгалар, алар демейки боюнча бала сурамдарга алмаштырылышы мүмкүн. Почтачынын бул жөнүндө бир нерсе бар: маселе, жана ал тургай жабык, бирок ал чечим катары сунушталат ... скрипттерди колдонуу. TestMaceде мунун баары GUI аркылуу конфигурацияланган жана белгилүү бир урпактарда тукум кууп өткөн аталыштарды өчүрүү мүмкүнчүлүгү бар.
  • Жок кылуу/кайталоо. Түйүндөрдү түзөтүүдө гана эмес, жылдырууда, жок кылууда, атын өзгөртүүдө жана долбоордун структурасын өзгөрткөн башка операцияларда да иштейт.
  • Сурамдарга тиркелген файлдар долбоордун бир бөлүгү болуп калат жана Почтачыдан айырмаланып, эң сонун синхрондоштуруу менен бирге сакталат. (Ооба, сиз баштаган сайын файлдарды кол менен тандап, архивдеги кесиптештерге өткөрүп берүүнүн кереги жок)

Жолдо болгон өзгөчөлүктөр

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

милдеттери

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

{{$randomEmail}}

Бирок, булар өзгөрмөлөр болгондуктан (динамикалык болсо да), аларды функция катары колдонууга болбойт: аларды параметрлөө мүмкүн эмес, ошондуктан саптан хэш алуу мүмкүн эмес.

Биз TestMaceге "чынчыл" функцияларды кошууну пландап жатабыз. ${} түз ичинде өзгөрмөгө кирүүгө гана эмес, функцияны чакырууга да мүмкүн болот. Ошол. Эгер сиз белгилүү жасалма электрондук почтаны түзүшүңүз керек болсо, биз жөн гана жазабыз

${faker.internet.email()}

Функция экендигинен тышкары, объектте методду чакырууга мүмкүн экенин байкайсыз. Жана динамикалык өзгөрмөлөрдүн чоң жалпак тизмесинин ордуна бизде логикалык жактан топтоштурулган объекттердин жыйындысы бар.

Эгер биз саптын хэштерин эсептегибиз келсе эмне болот? Оңой!

${crypto.MD5($dynamicVar.data)}

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

JavaScriptти туюнтмаларда колдонуу

... Жана жүйөлүү себептер менен! Функцияларга талаптар түзүлүп жатканда, биз күтүлбөгөн жерден жарактуу JavaScript туюнтмаларда жазылышы керек деген жыйынтыкка келдик. Эми сиз төмөнкүдөй туюнтмаларды жаза аласыз:

${1 + '' + crypto.MD5('asdf')}

Мунун баары скриптсиз, киргизүү талааларында!

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

Эмне үчүн TestMace Почтачыга караганда жакшыраак

Өркүндөтүлгөн автотолтуруу

Учурда TestMace төмөнкүдөй көрүнгөн стандарттуу автотолтурууга ээ:

Эмне үчүн TestMace Почтачыга караганда жакшыраак

Бул жерде автотолтуруучу саптан тышкары бул сап эмнеге таандык экени көрсөтүлөт. Бул механизм ${} кашаалары менен курчалган туюнтмаларда гана иштейт.

Көрүнүп тургандай, өзгөрмөнүн түрүн көрсөткөн визуалдык маркерлер кошулган (мисалы, сап, сан, массив ж.б.). Сиз ошондой эле автотолтуруунун режимдерин өзгөртө аласыз (мисалы, сиз өзгөрмөлөр же аталыштар менен автотолтурууну тандай аласыз). Бирок бул эң маанилүү нерсе эмес!

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

Эмне үчүн TestMace Почтачыга караганда жакшыраак

Экинчиден, автотолуктоо азыр сценарийлерде жеткиликтүү. Анын кантип иштээрин карап көрүңүз!

Эмне үчүн TestMace Почтачыга караганда жакшыраак

Бул функцияны Почтачы менен салыштыруунун эч кандай мааниси жок - автотолтуруу өзгөрмөлөрдүн статикалык тизмеси, аталыштары жана алардын баалуулуктары менен гана чектелет (эгер мен бир нерсени унутуп калсам, мени оңдоңуз). Скрипттер автотолтурулбайт :)

жыйынтыктоо

Октябрда биздин продукция иштеп чыга баштаганына бир жыл болду. Бул убакыттын ичинде биз көп иштерди жасап, айрым жагынан атаандаштарыбызды да кууп жетип алдык. Бирок, кандай болбосун, биздин максат - API менен иштөө үчүн чындап ыңгайлуу куралды түзүү. Биздин алдыда дагы көп иштер бар, бул жерде келерки жылга биздин долбоорду өнүктүрүүнүн болжолдуу планы: https://testmace.com/roadmap.

Сиздин пикириңиз бизге көптөгөн функцияларды жакшыраак башкарууга мүмкүндүк берет, ал эми колдооңуз бизге күч жана туура иш кылып жатканыбызга ишеним берет. Ошентип, бүгүн биздин долбоор үчүн маанилүү күн - TestMace жарыяланган күн ProductHunt. Сураныч, биздин долбоорду колдоңуз, бул биз үчүн абдан маанилүү. Анын үстүнө, бүгүн биздин PH баракчабызда азгыруучу сунуш бар жана ал чектелүү

Source: www.habr.com

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