Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Բարև բոլորին, ահա դուք գնացեք TestMace! Երևի շատերը գիտեն մեր մասին մեր նախորդ Հոդվածներ. Նրանց համար, ովքեր նոր են միացել. մենք մշակում ենք IDE՝ TestMace API-ի հետ աշխատելու համար: Ամենահաճախ տրվող հարցը, երբ համեմատում ենք TestMace-ը մրցակից ապրանքների հետ, հետևյալն է՝ «Ինչո՞վ եք դուք տարբերվում փոստատարից»: Որոշեցինք, որ ժամանակն է այս հարցին մանրամասն պատասխան տալու։ Ստորև մենք ուրվագծել ենք մեր առավելությունները Փոստատար.

Հանգույցների բաժանումը

Եթե ​​դուք աշխատում եք Postman-ի հետ, ապա գիտեք, որ հարցումների ինտերֆեյսը պարունակում է բոլոր անհրաժեշտ գործառույթները: Կան սցենարներ, թեստեր և, ըստ էության, իրենք՝ հարցումները։ Սա հեշտացնում է սկսնակների համար, բայց մեծ սցենարների դեպքում այս մոտեցումը ճկուն չէ: Ի՞նչ անել, եթե ցանկանում եք ստեղծել մի քանի հարցումներ և կատարել դրանց ագրեգացիա: Ի՞նչ անել, եթե ցանկանում եք սկրիպտը կատարել առանց հարցումի կամ մի քանի տրամաբանորեն առանձնացված սկրիպտների անընդմեջ: Ի վերջո, լավ կլինի թեստերն առանձնացնել սովորական կոմունալ սկրիպտներից: Բացի այդ, «ավելացնել ամբողջ ֆունկցիոնալությունը մեկ հանգույցում» մոտեցումը մասշտաբային չէ. ինտերֆեյսը արագ ծանրաբեռնվում է:

TestMace-ն ի սկզբանե բոլոր գործառույթները բաժանում է տարբեր տեսակի հանգույցների: Ցանկանու՞մ եք հարցում անել: Դա ձեզ համար է հարցման քայլ հանգույց Ցանկանու՞մ եք սցենար գրել: Դա ձեզ համար է ձեռագիր հանգույց Պե՞տք են թեստեր: Խնդրում եմ - Պնդում հանգույց Օհ, այո, դուք դեռ կարող եք այս ամբողջը ամփոփել թղթապանակ հանգույց Եվ այս ամենը կարելի է հեշտությամբ համադրել միմյանց հետ։ Այս մոտեցումը ոչ միայն շատ ճկուն է, այլև միասնական պատասխանատվության սկզբունքին համապատասխան թույլ է տալիս օգտագործել միայն այն, ինչ ձեզ իսկապես անհրաժեշտ է տվյալ պահին։ Ինչու՞ են ինձ անհրաժեշտ սցենարներ և թեստեր, եթե ես պարզապես ուզում եմ հարցում անել:

Մարդկանց համար ընթեռնելի նախագծի ձևաչափ

TestMace-ի և Postman-ի միջև կա կոնցեպտուալ տարբերություն դրանց պահպանման ձևով: Postman-ում բոլոր հարցումները պահվում են տեղային պահեստում: Եթե ​​մի քանի օգտատերերի միջև հարցումները կիսելու անհրաժեշտություն կա, ապա դուք պետք է օգտագործեք ներկառուցված համաժամացումը: Իրականում սա ընդհանուր ընդունված մոտեցում է, բայց ոչ առանց իր թերությունների: Ինչ վերաբերում է տվյալների անվտանգությանը: Ի վերջո, որոշ ընկերությունների քաղաքականությունը կարող է թույլ չտալ տվյալների պահպանում երրորդ անձանց հետ: Այնուամենայնիվ, մենք կարծում ենք, որ TestMace-ն ավելի լավ բան ունի առաջարկելու: Եվ այս բարելավման անվանումն է «մարդկանց համար ընթեռնելի նախագծի ձևաչափ»:

Սկսենք նրանից, որ TestMace-ում, սկզբունքորեն, կա «նախագծային» սուբյեկտ։ Եվ հավելվածն ի սկզբանե մշակվել է տարբերակների կառավարման համակարգերում նախագծերը պահելու նպատակով. նախագծի ծառը գրեթե մեկ առ մեկ նախագծված է ֆայլի կառուցվածքի վրա, yaml-ն օգտագործվում է որպես պահեստավորման ձևաչափ (առանց լրացուցիչ փակագծերի և ստորակետների), և Յուրաքանչյուր հանգույցի ֆայլի ներկայացումը մանրամասն նկարագրված է մեկնաբանություններով փաստաթղթերում: Բայց շատ դեպքերում դուք այնտեղ չեք նայի՝ բոլոր դաշտերի անուններն ունեն տրամաբանական անուններ:

Ի՞նչ է սա տալիս օգտվողին: Սա թույլ է տալիս շատ ճկուն կերպով փոխել թիմի աշխատանքի ընթացքը՝ օգտագործելով ծանոթ մոտեցումներ: Օրինակ, ծրագրավորողները կարող են նախագիծը պահել նույն պահեստում, ինչ հետնապահը: Մասնաճյուղերում, բացի ինքնին կոդերի բազան փոխելուց, մշակողը կարող է ուղղել առկա հարցումների սկրիպտները և թեստերը: Պահեստում փոփոխություններ կատարելուց հետո (git, svn, mercurial - այն, ինչ ձեզ ամենալավն է դուր գալիս), CI-ն (ձեր նախընտրածը, ոչ մեկի կողմից պարտադրված) գործարկում է մեր վահանակի օգտակար ծրագիրը: testmace-cli, իսկ կատարումից հետո ստացված հաշվետվությունը (օրինակ՝ junit ֆորմատով, որը նույնպես ապահովված է testmace-cli-ում) ուղարկվում է համապատասխան համակարգ։ Իսկ անվտանգության վերոնշյալ խնդիրն այլեւս խնդիր չէ։

Ինչպես տեսնում եք, TestMace-ը չի պարտադրում իր էկոհամակարգն ու պարադիգմը: Փոխարենը, այն հեշտությամբ տեղավորվում է հաստատված գործընթացների մեջ:

Դինամիկ փոփոխականներ

TestMace-ը հետևում է առանց ծածկագրի հայեցակարգին. եթե խնդիրը կարող է լուծվել առանց կոդ օգտագործելու, մենք փորձում ենք տրամադրել այս հնարավորությունը: Փոփոխականների հետ աշխատելը հենց այն գործառույթն է, որտեղ շատ դեպքերում դուք կարող եք անել առանց ծրագրավորման:

Օրինակ՝ մենք պատասխան ենք ստացել սերվերից և ցանկանում ենք պատասխանի մի մասը պահել փոփոխականի մեջ: Postman-ում, թեստային սցենարում (ինչն ինքնին տարօրինակ է) մենք կգրեինք նման բան.

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-ը թույլ է տալիս ստեղծել թեստեր՝ գրելով սցենարներ (Postman-ի դեպքում սա JavaScript-ն է)։ Այս մոտեցումն ունի բազմաթիվ առավելություններ՝ գրեթե անսահմանափակ ճկունություն, պատրաստի լուծումների առկայություն և այլն։

Սակայն իրականությունը հաճախ այնպիսին է (մենք այդպիսին չենք, կյանքն է այդպիսին), որ թեստավորողը չունի ծրագրավորման հմտություններ, բայց կցանկանար հենց հիմա օգուտ բերել թիմին։ Նման դեպքերում, հետևելով առանց կոդ հասկացությանը, TestMace-ը թույլ է տալիս ստեղծել պարզ թեստեր GUI-ի միջոցով՝ առանց սկրիպտներ գրելու դիմելու։ Ահա, օրինակ, ինչպիսին է հավասարության արժեքները համեմատող թեստի ստեղծման գործընթացը.

Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Այնուամենայնիվ, գրաֆիկական խմբագրիչում թեստեր ստեղծելը չի ​​վերացնում հնարավորությունը կոդով թեստեր գրելը. Բոլոր նույն գրադարանները այստեղ են, ինչպես սցենարի հանգույցում, և chai թեստեր գրելու համար.

Հաճախ առաջանում են իրավիճակներ, երբ որոշակի հարցում կամ նույնիսկ մի ամբողջ սցենար պետք է մի քանի անգամ կատարվի նախագծի տարբեր մասերում։ Նման հարցումների օրինակ կարող է լինել անհատական ​​բազմաստիճան թույլտվությունը, միջավայրը ցանկալի վիճակի բերելը և այլն: Ընդհանուր առմամբ, խոսելով ծրագրավորման լեզուների մասին, մենք կցանկանայինք ունենալ գործառույթներ, որոնք կարող են կրկին օգտագործվել հավելվածի տարբեր մասերում: TestMace-ում այս ֆունկցիան կատարվում է ՈՒղեցույց հանգույց Օգտագործումը շատ պարզ է.
1) ստեղծել հարցում կամ սցենար
2) ստեղծել Link տիպի հանգույց
3) պարամետրերում նշեք առաջին քայլում ստեղծված սցենարի հղումը

Ավելի առաջադեմ տարբերակում կարող եք նշել, թե սցենարից որ դինամիկ փոփոխականներն են փոխանցվում հղման համեմատ ավելի բարձր մակարդակի: Ձայն շփոթեցնող? Ենթադրենք, մենք ստեղծել ենք Թղթապանակ անունով ստեղծել-տեղադրել, որի շրջանակներում այս հանգույցին վերագրվում է դինամիկ փոփոխական postId. Այժմ Link հանգույցում ստեղծել-փոստ-հղում դուք կարող եք հստակորեն նշել, որ փոփոխականը postId նշանակված է նախահայրին ստեղծել-փոստ-հղում. Այս մեխանիզմը (կրկին ծրագրավորման լեզվով) կարող է օգտագործվել «գործառույթից» արդյունք վերադարձնելու համար։ Ընդհանուր առմամբ, դա թույն է, DRY-ը եռում է, և կրկին կոդի ոչ մի տող չի վնասվել:

Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Ինչ վերաբերում է Postman-ին, ապա կա հարցումների վերօգտագործման գործառույթի հարցում կախված է 2015 թվականից, և թվում է, որ նույնիսկ կա որոշ ակնարկներոր իրենք աշխատում են այս խնդրի վրա։ Իր ներկայիս տեսքով, Փոստմենը, իհարկե, ունի կատարման շարանը փոխելու ունակություն, ինչը տեսականորեն, հավանաբար, հնարավորություն է տալիս իրականացնել նմանատիպ վարքագիծ, բայց սա ավելի շատ կեղտոտ հաքեր է, քան իսկապես աշխատող մոտեցում:

Այլ տարբերություններ

  • Ավելի մեծ վերահսկողություն փոփոխականների շրջանակի վրա: Ամենափոքր շրջանակը, որի շրջանակներում Փոստմենում կարող է փոփոխական սահմանվել, հավաքածուն է: TestMace-ը թույլ է տալիս փոփոխականներ սահմանել ցանկացած հարցման կամ թղթապանակի համար: Postman Share հավաքածուում թույլ է տալիս արտահանել միայն հավաքածուներ, մինչդեռ TestMace-ում համօգտագործումը աշխատում է ցանկացած հանգույցի համար
  • TestMace-ն աջակցում է ժառանգական վերնագրեր, որը լռելյայն կարող է փոխարինվել մանկական հարցումներով: Փոստատարը մի բան ունի այս մասին. խնդիրը, և նույնիսկ փակ է, բայց որպես լուծում առաջարկվում է... օգտագործել սցենարներ. TestMace-ում այս ամենը կազմաձևված է GUI-ի միջոցով, և կա տարբերակ՝ կամայականորեն անջատելու ժառանգված վերնագրերը կոնկրետ սերունդներում:
  • Հետարկել/Կրկնել: Աշխատում է ոչ միայն հանգույցները խմբագրելիս, այլև տեղափոխելիս, ջնջելիս, անվանափոխելիս և նախագծի կառուցվածքը փոխող այլ գործողություններ կատարելիս:
  • Հարցումներին կցված ֆայլերը դառնում են նախագծի մաս և պահվում են դրա հետ՝ միևնույն ժամանակ կատարյալ սինխրոնիզացված են՝ ի տարբերություն Postman-ի: (Այո, ձեզ այլևս կարիք չկա ամեն անգամ սկսելիս ձեռքով ընտրել ֆայլերը և դրանք փոխանցել արխիվներում գտնվող գործընկերներին)

Առանձնահատկություններ, որոնք արդեն ճանապարհին են

Մենք չկարողացանք դիմակայել գայթակղությանը` հանելու գաղտնիության շղարշը հաջորդ թողարկումների նկատմամբ, հատկապես, երբ ֆունկցիոնալությունը շատ համեղ է և արդեն ենթարկվում է նախնական թողարկման փայլեցմանը: Այսպիսով, եկեք հանդիպենք:

Գործառույթներ

Ինչպես գիտեք, Փոստմենը արժեքներ ստեղծելու համար օգտագործում է այսպես կոչված դինամիկ փոփոխականներ։ Նրանց ցանկը տպավորիչ է և գործառույթների ճնշող մեծամասնությունը օգտագործվում է կեղծ արժեքներ ստեղծելու համար: Օրինակ, պատահական նամակ ստեղծելու համար անհրաժեշտ է գրել.

{{$randomEmail}}

Այնուամենայնիվ, քանի որ դրանք փոփոխականներ են (թեև դինամիկ), դրանք չեն կարող օգտագործվել որպես գործառույթներ. դրանք պարամետրիզացվող չեն, հետևաբար հնարավոր չի լինի տողից հեշ վերցնել։

Մենք նախատեսում ենք «ազնիվ» գործառույթներ ավելացնել TestMace-ին: Հենց ${}-ի ներսում հնարավոր կլինի ոչ միայն մուտք գործել փոփոխական, այլև կանչել ֆունկցիա: Նրանք. եթե Ձեզ անհրաժեշտ է ստեղծել տխրահռչակ կեղծ նամակ, մենք պարզապես կգրենք

${faker.internet.email()}

Բացի այն, որ դա ֆունկցիա է, դուք կնկատեք, որ հնարավոր է մեթոդ կանչել օբյեկտի վրա։ Եվ դինամիկ փոփոխականների մեծ հարթ ցուցակի փոխարեն մենք ունենք տրամաբանորեն խմբավորված օբյեկտների մի շարք:

Իսկ եթե ուզում ենք հաշվարկել տողի հեշը: Հեշտությամբ!

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

Դուք կնկատեք, որ դուք կարող եք նույնիսկ փոփոխականներ փոխանցել որպես պարամետրեր: Այս պահին հետաքրքրասեր ընթերցողը կարող է կասկածել, որ ինչ-որ բան այն չէ...

Օգտագործելով JavaScript արտահայտություններում

... Եվ լավ պատճառով: Երբ ձևավորվում էին գործառույթների պահանջները, մենք հանկարծ եկանք այն եզրակացության, որ վավեր javascript-ը պետք է գրվի արտահայտություններով։ Այսպիսով, այժմ դուք ազատ եք գրել այնպիսի արտահայտություններ, ինչպիսիք են.

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

Եվ այս ամենը առանց սցենարների, հենց մուտքագրման դաշտերում:

Ինչ վերաբերում է Postman-ին, ապա այստեղ կարող եք օգտագործել միայն փոփոխականներ, իսկ երբ փորձում եք գրել ամենաչնչին արտահայտությունը, վավերացնողը հայհոյում է և հրաժարվում է այն հաշվարկել։

Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Ընդլայնված ավտոմատ լրացում

Ներկայումս TestMace-ն ունի ստանդարտ ավտոմատ լրացում, որն ունի հետևյալ տեսքը.

Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Այստեղ, բացի ավտոմատ լրացման տողից, նշվում է, թե ինչին է պատկանում այս տողը։ Այս մեխանիզմն աշխատում է միայն ${} փակագծերով շրջապատված արտահայտություններում:

Ինչպես տեսնում եք, ավելացվել են տեսողական մարկերներ, որոնք ցույց են տալիս փոփոխականի տեսակը (օրինակ՝ տող, համար, զանգված և այլն)։ Կարող եք նաև փոխել ավտոմատ լրացման ռեժիմները (օրինակ, կարող եք ընտրել ավտոմատ լրացում փոփոխականներով կամ վերնագրերով): Բայց նույնիսկ սա չէ ամենակարևորը։

Նախ, ավտոմատ լրացումն աշխատում է նույնիսկ արտահայտություններով (որտեղ հնարավոր է): Ահա թե ինչ տեսք ունի.

Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Եվ երկրորդ, ավտոմատ լրացումն այժմ հասանելի է սկրիպտներով: Նայեք, թե ինչպես է այն աշխատում:

Ինչու է TestMace-ն ավելի լավ, քան փոստատարը

Այս ֆունկցիոնալությունը Postman-ի հետ համեմատելու իմաստ չկա. ավտոմատ լրացումը սահմանափակվում է միայն փոփոխականների, վերնագրերի և դրանց արժեքների ստատիկ ցուցակներով (ուղղեք ինձ, եթե ինչ-որ բան մոռացել եմ): Սցենարները ավտոմատ լրացված չեն :)

Ամփոփում

Հոկտեմբերին լրացավ մեր արտադրանքի զարգացման մեկ տարին։ Այս ընթացքում մենք կարողացանք շատ բաներ անել և որոշ առումներով հասանք մեր մրցակիցներին: Սակայն, ինչպես դա կարող է լինել, մեր նպատակն է ստեղծել իսկապես հարմար գործիք API-ների հետ աշխատելու համար: Մենք դեռ շատ աշխատանք ունենք անելու, ահա գալիք տարվա մեր նախագծի զարգացման մոտավոր պլանը. https://testmace.com/roadmap.

Ձեր կարծիքը թույլ կտա մեզ ավելի լավ կողմնորոշվել գործառույթների առատության մեջ, և ձեր աջակցությունը մեզ ուժ և վստահություն է տալիս, որ մենք ճիշտ ենք անում: Պատահում է, որ այսօր կարևոր օր է մեր նախագծի համար՝ TestMace-ի հրապարակման օրը ProductHunt- ը. Խնդրում ենք աջակցել մեր նախագծին, այն մեզ համար շատ կարևոր է։ Ավելին, այսօր մեր PH էջում կա գայթակղիչ առաջարկ, այն էլ՝ սահմանափակ

Source: www.habr.com

Добавить комментарий