Неліктен TestMace пошташыға қарағанда жақсы

Неліктен TestMace пошташыға қарағанда жақсы

Барлығына сәлем! TestMace! Біз туралы көп адамдар білетін шығар біздің алдыңғы мақалалар. Жаңадан қосылғандар үшін: біз TestMace API интерфейсімен жұмыс істеу үшін IDE әзірлеудеміз. TestMace-ті бәсекелес өнімдермен салыстыру кезінде ең жиі қойылатын сұрақ: «Сіз пошташыдан несімен ерекшеленеді?» Бұл сұраққа жан-жақты жауап беретін кез келді деп шештік. Төменде біз артықшылықтарымызды атап өттік почташы.

Түйіндерге бөлу

Егер сіз Пошташымен жұмыс жасасаңыз, сұрау интерфейсінде барлық қажетті функциялар бар екенін білесіз. Сценарийлер, сынақтар және, шын мәнінде, сұраулардың өзі бар. Бұл жаңадан бастағандар үшін жеңілдетеді, бірақ үлкенірек сценарийлерде бұл тәсіл икемді емес. Бірнеше сұрауларды жасап, олар бойынша жинақтауды орындағыңыз келсе ше? Сценарийді сұраусыз немесе қатарда бірнеше логикалық бөлінген сценарийлерсіз орындағыңыз келсе ше? Ақыр соңында, сынақтарды кәдімгі утилита сценарийлерінен бөліп алу жақсы идея болар еді. Сонымен қатар, «барлық функционалдылықты бір түйінге қосу» тәсілі масштабталмайды - интерфейс тез жүктеледі.

TestMace бастапқыда барлық функцияларды түйіндердің әртүрлі түрлеріне бөледі. Өтініш жасағыңыз келе ме? Ол сізге арналған сұрау қадамы түйін Сценарий жазғыңыз келе ме? Ол сізге арналған сценарий түйін Тесттер керек пе? Өтінемін - Бекіту түйін О, иә, сіз әлі де осының бәрін орап аласыз папка түйін Және мұның барлығын бір-бірімен оңай біріктіруге болады. Бұл тәсіл өте икемді ғана емес, сонымен қатар біртұтас жауапкершілік принципіне сәйкес қазіргі уақытта шынымен қажет нәрсені ғана пайдалануға мүмкіндік береді. Егер мен жай ғана сұрау салғым келсе, маған сценарийлер мен сынақтар не үшін қажет?

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

TestMace және Postman арасында сақтау тәсілінде тұжырымдамалық айырмашылық бар. Пошташыда барлық сұраулар жергілікті қоймада сақталады. Егер бірнеше пайдаланушылар арасында сұрауларды ортақ пайдалану қажет болса, онда кірістірілген синхрондауды пайдалану қажет. Шын мәнінде, бұл жалпы қабылданған тәсіл, бірақ оның кемшіліктері жоқ емес. Деректер қауіпсіздігі туралы не деуге болады? Өйткені, кейбір компаниялардың саясаты деректерді үшінші тұлғалармен сақтауға рұқсат бермеуі мүмкін. Дегенмен, 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 пошташыға қарағанда жақсы

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

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 арқылы тесттер жасау

Пошташы сценарий жазу арқылы сынақтар жасауға мүмкіндік береді (Postman жағдайында бұл JavaScript). Бұл тәсілдің көптеген артықшылықтары бар - дерлік шексіз икемділік, дайын шешімдердің болуы және т.б.

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

Неліктен TestMace пошташыға қарағанда жақсы

Дегенмен, графикалық редакторда сынақтар жасау бұл мүмкіндікті жоймайды тесттерді кодта жазу. Барлық бірдей кітапханалар сценарий түйініндегі сияқты осында және Chai жазу сынақтары үшін.

Жағдайлар көбінесе жобаның әртүрлі бөліктерінде белгілі бір сұрауды немесе тіпті бүкіл сценарийді бірнеше рет орындау қажет болғанда туындайды. Мұндай сұраулардың мысалы ретінде теңшелетін көп сатылы авторизация, қоршаған ортаны қажетті күйге келтіру және т.б. болуы мүмкін. Жалпы, бағдарламалау тілдері тұрғысынан айтатын болсақ, біз қолданбаның әртүрлі бөліктерінде қайта пайдалануға болатын функцияларға ие болғымыз келеді. TestMace бағдарламасында бұл функция орындалады байланыс түйін Оны пайдалану өте оңай:
1) сұрауды немесе сценарийді жасаңыз
2) Link типті түйінді құру
3) параметрлерде бірінші қадамда жасалған сценарийге сілтемені көрсетіңіз

Неғұрлым жетілдірілген нұсқада сценарийден қай динамикалық айнымалылар сілтемеге қатысты жоғарырақ деңгейге жіберілетінін көрсетуге болады. Шатастырылған дыбыс па? Атауы бар қалтаны жасадық делік құру-пост, оның ішінде осы түйінге динамикалық айнымалы тағайындалған postId. Қазір Сілтеме түйінінде сілтеме жасау айнымалы екенін анық көрсетуге болады postId атаға тағайындалған сілтеме жасау. Бұл механизм (тағы да бағдарламалау тілінде) «функциядан» нәтижені қайтару үшін пайдаланылуы мүмкін. Жалпы алғанда, бұл өте жақсы, DRY толық қарқынмен жүріп жатыр және кодтың бірде-бір жолы зақымдалған жоқ.

Неліктен TestMace пошташыға қарағанда жақсы

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

Басқа айырмашылықтар

  • Айнымалылар ауқымын көбірек бақылау. Postman бағдарламасында айнымалыны анықтауға болатын ең кіші ауқым - коллекция. TestMace кез келген сұрау немесе қалта үшін айнымалы мәндерді анықтауға мүмкіндік береді. Postman Share топтамасында тек жинақтарды экспорттауға мүмкіндік береді, ал TestMace бағдарламасында ортақ пайдалану кез келген түйін үшін жұмыс істейді
  • TestMace қолдайды мұрагерлік тақырыптар, оны әдепкі бойынша еншілес сұрауларға ауыстыруға болады. Пошташының бұл туралы бірдеңе бар: шақыру, және ол тіпті жабық, бірақ ол шешім ретінде ұсынылады... сценарийлерді пайдаланыңыз. TestMace-те мұның барлығы GUI арқылы конфигурацияланады және белгілі бір ұрпақтардағы мұраланған тақырыптарды міндетті түрде өшіру мүмкіндігі бар.
  • Болдырмау/Қайталау. Түйіндерді өңдеу кезінде ғана емес, жылжыту, жою, атауды өзгерту және жобаның құрылымын өзгертетін басқа операциялар кезінде де жұмыс істейді.
  • Сұраныстарға тіркелген файлдар Postman сияқты тамаша синхрондалған кезде жобаның бір бөлігіне айналады және онымен бірге сақталады. (Иә, файлдарды әр іске қосқан сайын қолмен таңдап, оларды мұрағаттағы әріптестерге тасымалдаудың қажеті жоқ)

Қазірдің өзінде жолға қойылған мүмкіндіктер

Біз келесі шығарылымдарда, әсіресе функционалдылық өте дәмді және шығарылым алдында жылтыратудан өтіп жатқан кезде, құпиялық пердесін көтеру азғыруына қарсы тұра алмадық. Ендеше танысайық.

Функциялар

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

{{$randomEmail}}

Дегенмен, бұл айнымалылар болғандықтан (динамикалық болса да), оларды функция ретінде пайдалану мүмкін емес: олар параметрленбейді, сондықтан жолдан хэшті алу мүмкін болмайды.

Біз TestMace-ке «адал» функцияларды қосуды жоспарлап отырмыз. ${} ішінде айнымалыға қол жеткізу ғана емес, функцияны шақыру да мүмкін болады. Анау. егер сізге атышулы жалған электрондық поштаны жасау қажет болса, біз жай жазамыз

${faker.internet.email()}

Функция болу фактісімен қатар, сіз объектіде әдісті шақыруға болатынын байқайсыз. Ал динамикалық айнымалылардың үлкен жалпақ тізімінің орнына бізде логикалық топтастырылған нысандар жиынтығы бар.

Жолдың хэшін есептегіміз келсе ше? Оңай!

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

Сіз тіпті айнымалы мәндерді параметр ретінде беруге болатынын байқайсыз! Осы кезде ізденімпаз оқырман бірдеңе дұрыс емес деп күдіктенуі мүмкін...

Өрнектерде JavaScript пайдалану

... Және дәлелді себеппен! Функцияларға қойылатын талаптар қалыптасып жатқанда, біз кенеттен жарамды JavaScript өрнектерде жазылуы керек деген қорытындыға келдік. Енді сіз келесідей өрнектерді жаза аласыз:

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

Мұның бәрі сценарийсіз, енгізу өрістерінде!

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

Неліктен TestMace пошташыға қарағанда жақсы

Жетілдірілген автотолтыру

Қазіргі уақытта TestMace стандартты автотолтыруға ие, ол келесідей көрінеді:

Неліктен TestMace пошташыға қарағанда жақсы

Мұнда автотолтыру жолынан басқа бұл жолдың неге жататыны көрсетіледі. Бұл механизм тек ${} жақшаларымен қоршалған өрнектерде жұмыс істейді.

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

Біріншіден, автотолтыру тіпті өрнектерде де жұмыс істейді (мүмкіндігінше). Мынадай көрінеді:

Неліктен TestMace пошташыға қарағанда жақсы

Екіншіден, автотолтыру енді сценарийлерде қол жетімді. Оның қалай жұмыс істейтінін қараңыз!

Неліктен TestMace пошташыға қарағанда жақсы

Бұл функцияны Postman-мен салыстырудың қажеті жоқ - автотолтыру тек айнымалылардың, тақырыптардың және олардың мәндерінің статикалық тізімдерімен шектеледі (егер мен бірдеңені ұмытып қалсам, түзетіңіз). Сценарийлер автоматты түрде толтырылмайды :)

қорытынды

Қазан айы біздің өнімді әзірлеудің басталғанына бір жыл болды. Осы уақыт ішінде біз көп нәрсеге қол жеткізіп, кейбір жағынан бәсекелестерімізді қуып жеттік. Қалай болғанда да, біздің мақсатымыз - API интерфейстерімен жұмыс істеу үшін шынымен ыңғайлы құрал жасау. Бізде әлі көп жұмыс бар, міне, алдағы жылға жобамызды дамытудың шамамен жоспары: https://testmace.com/roadmap.

Пікіріңіз бізге мүмкіндіктердің көптігін жақсырақ шарлауға мүмкіндік береді және сіздің қолдауыңыз бізге күш пен дұрыс нәрсені істеп жатқанымызға сенімділік береді. Бүгін біздің жоба үшін маңызды күн - TestMace жарияланған күн ProductHunt. Біздің жобамызға қолдау көрсетіңіз, бұл біз үшін өте маңызды. Сонымен қатар, бүгін біздің PH парағында қызықты ұсыныс бар және ол шектеулі

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

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