TestMace. Արագ մեկնարկ

TestMace. Արագ մեկնարկ

Բարեւ բոլորին. Մենք կամաց-կամաց դուրս ենք գալիս ստվերից և շարունակում մեր արտադրանքի մասին հոդվածների շարքը։ հետո նախորդ վերանայման հոդված, մենք ստացանք բազմաթիվ արձագանքներ (հիմնականում դրական), առաջարկություններ և սխալների մասին հաշվետվություններ: Այսօր մենք ցույց կտանք TestMace գործողության մեջ, և դուք կկարողանաք գնահատել մեր հավելվածի որոշ առանձնահատկություններ: Ավելի ամբողջական սուզվելու համար խորհուրդ եմ տալիս հղում կատարել մեր փաստաթղթերին http://docs-ru.testmace.com. Այսպիսով, եկեք գնանք:

Տեղակայում

Սկսենք բանականությունից. Հավելվածը հասանելի է և իրականում փորձարկված է երեք հարթակներում՝ Linux, Windows, MacOS: Դուք կարող եք ներբեռնել ձեզ հետաքրքրող ՕՀ-ի տեղադրիչը մեր կայքը. Linux օգտագործողների համար հնարավոր է տեղադրել snap փաթեթ. Մենք իսկապես հուսով ենք, որ Microsoft Store-ը և App Store-ը շուտով կհասնեն դրան (Արդյո՞ք դա անհրաժեշտ է: Ի՞նչ եք կարծում):

Փորձարարական սցենար

Որպես փորձարկման առարկա մենք ընտրեցինք հետևյալ ստանդարտ սցենարը.

  • Մուտք. օգտվող - ադմինիստրատոր, գաղտնաբառ - գաղտնաբառ
  • ավելացնել նոր մուտք
  • Եկեք ստուգենք, որ գրառումը ճիշտ է ավելացվել

Մենք փորձարկելու ենք https://testmace-quick-start.herokuapp.com/. Սա սովորական է json-սերվեր, կատարյալ նման հավելվածների փորձարկման համար։ Մենք պարզապես json-սերվերի բոլոր երթուղիներին ավելացրել ենք թույլտվություն նշանով և ստեղծել մուտքի մեթոդ այս նշանը ստանալու համար: Մենք գնալու ենք աստիճանաբար՝ աստիճանաբար բարելավելով մեր նախագիծը։

Նախագծի ստեղծում և առանց թույլտվության կազմակերպություն ստեղծելու փորձ

Նախ, եկեք ստեղծենք նոր նախագիծ (Ֆայլ->Նոր ծրագիր) Եթե ​​առաջին անգամ եք գործարկում հավելվածը, ապա նոր նախագիծը ավտոմատ կերպով կբացվի: Նախ, եկեք փորձենք կատարել նոր գրառում ստեղծելու հարցում (այն դեպքում, երբ գրառումների ստեղծումը հասանելի է առանց թույլտվության): Ընտրեք տարրեր Նախագծի հանգույցի համատեքստային ընտրացանկից Ավելացնել հանգույց -> RequestStep. Սահմանեք հանգույցի անունը ստեղծել-տեղադրել. Արդյունքում ծառում կստեղծվի նոր հանգույց և կբացվի այս հանգույցի ներդիրը։ Եկեք սահմանենք հետևյալ պահանջի պարամետրերը.

  • Հարցման տեսակը՝ ՓՈՍՏ
  • URL: https://testmace-quick-start.herokuapp.com/posts
  • Հարցման մարմին՝ json արժեքով {"title": "New testmace quick start post"}
    Եթե ​​ամեն ինչ ճիշտ եք արել, ինտերֆեյսը կունենա հետևյալ տեսքը.

TestMace. Արագ մեկնարկ

Այնուամենայնիվ, եթե մենք փորձենք կատարել հարցումը, սերվերը կվերադարձնի 401 ծածկագիրը և առանց թույլտվության մենք ոչինչ չենք ստանա այս սերվերում: Դե, ընդհանուր առմամբ, ինչպես և սպասվում էր):

Թույլտվության հայտի ավելացում

Ինչպես արդեն ասվեց, մենք ունենք POST վերջնակետ /login, որն ընդունում է json-ը որպես ձևի հարցման մարմին. {"username": "<username>", "password": "<password>"}Որտեղ username и password (կրկին վերը նշված ներածական պարբերությունից) ունեն իմաստներ admin и password համապատասխանաբար. Ի պատասխան՝ այս վերջնակետը վերադարձնում է json like {"token": "<token>"}. Մենք այն կօգտագործենք թույլտվության համար: Եկեք ստեղծենք RequestStep հանգույց անունով Նոր որոնում, հանդես կգա որպես նախահայր Նախագիծ հանգույց Օգտագործելով քաշել և թողնել, տեղափոխեք ծառի տրված հանգույցը հանգույցից ավելի բարձր ստեղծել-տեղադրել. Նորաստեղծ հարցումին դնենք հետևյալ պարամետրերը.

Կատարենք հարցումը և պատասխանի նշանով ստանանք երկու հարյուրերորդ կոդը։ Նման մի բան.

TestMace. Արագ մեկնարկ

Refactoring՝ հեռացնելով տիրույթի կրկնօրինակումը

Առայժմ հարցումները կապված չեն մեկ սցենարի մեջ: Բայց սա միակ թերությունը չէ։ Եթե ​​ուշադիր նայեք, կնկատեք, որ առնվազն տիրույթը կրկնօրինակված է երկու հարցումներում։ Ոչ լավ. Ժամանակն է վերամշակել ապագա սցենարի այս մասը, և փոփոխականները կօգնեն մեզ այս հարցում:

Առաջին մոտավորմամբ փոփոխականները կատարում են նույն դերը, ինչ մյուս նմանատիպ գործիքներում և ծրագրավորման լեզուներում՝ վերացնելով կրկնօրինակումը, մեծացնելով ընթերցանությունը և այլն: Դուք կարող եք ավելին կարդալ փոփոխականների մասին մեր փաստաթղթերը. Այս դեպքում մեզ անհրաժեշտ կլինեն օգտվողի փոփոխականներ:

Եկեք սահմանենք փոփոխական Project հանգույցի մակարդակում domain արժեքով https://testmace-quick-start.herokuapp.com. Դրա համար անհրաժեշտ է

  • Բացեք ներդիրը այս հանգույցով և կտտացրեք վերևի աջ մասում գտնվող հաշվիչի պատկերակին
  • Սեղմեք + ԱՎԵԼԱՑՆԵԼ ՓՈՓՈԽԱԿԱՆ
  • Մուտքագրեք փոփոխականի անունը և արժեքը
    Մեր դեպքում ավելացված փոփոխականով երկխոսությունը կունենա հետևյալ տեսքը.

TestMace. Արագ մեկնարկ

ԼԱՎ. Այժմ, ժառանգականության պատճառով, մենք կարող ենք օգտագործել այս փոփոխականը ցանկացած բնադրման մակարդակի հետնորդների մեջ: Մեր դեպքում դրանք հանգույցներ են Նոր որոնում и ստեղծել-տեղադրել. Տեքստային դաշտում փոփոխական օգտագործելու համար հարկավոր է գրել ${<variable_name>}. Օրինակ, մուտքի url-ը փոխարկվում է ${domain}/login, համապատասխանաբար համար ստեղծել-տեղադրել հանգույցի url-ը նման կլինի ${domain}/posts.

Այսպիսով, առաջնորդվելով DRY սկզբունքով, մենք մի փոքր բարելավել ենք սցենարը։

Պահպանեք նշանը փոփոխականում

Քանի որ մենք խոսում ենք փոփոխականների մասին, եկեք մի փոքր ընդլայնենք այս թեման: Այս պահին, հաջող մուտքի դեպքում, մենք սերվերից ստանում ենք թույլտվության նշան, որը մեզ անհրաժեշտ կլինի հետագա հարցումներում։ Եկեք պահպանենք այս նշանը փոփոխականի մեջ: Որովհետեւ փոփոխականի արժեքը կորոշվի սցենարի կատարման ժամանակ, դրա համար մենք օգտագործում ենք հատուկ մեխանիզմ. դինամիկ փոփոխականներ.

Նախ, եկեք կատարենք մուտքի հարցում: Ներդիրում Վերլուծված պատասխանեք, կուրսորը տեղափոխեք նշանի վրայով և համատեքստի մենյուում (որը կոչվում է կամ մկնիկի աջ կոճակով կամ սեղմելով կոճակը ...) ընտրեք տարրը: Նշանակել փոփոխականին. Երկխոսություն կհայտնվի հետևյալ դաշտերով.

  • Ճանապարհ - պատասխանի ո՞ր մասն է վերցված (մեր դեպքում դա body.token)
  • Ընթացիկ արժեքը - ինչ արժեք կա Ուղու երկայնքով (մեր դեպքում սա խորհրդանշական արժեքն է)
  • Փոփոխական անուն - փոփոխականի անվանումը, որտեղ Ընթացիկ արժեքը կպահպանվի։ Մեր դեպքում դա կլինի token
  • Հանգույց — նախնիներից որում կստեղծվի փոփոխականը Փոփոխական անուն. Եկեք ընտրենք Նախագիծ

Ավարտված երկխոսությունն ունի հետևյալ տեսքը.

TestMace. Արագ մեկնարկ

Այժմ ամեն անգամ, երբ հանգույցը կատարվում է Նոր որոնում դինամիկ փոփոխական token կթարմացվի պատասխանից ստացված նոր արժեքով: Եվ այս փոփոխականը կպահվի Նախագիծ հանգույցը և ժառանգության շնորհիվ հասանելի կլինի ժառանգներին:

Դինամիկ փոփոխականներ մուտք գործելու համար դուք պետք է օգտագործեք ներկառուցված փոփոխական $dynamicVar. Օրինակ, պահված նշան մուտք գործելու համար անհրաժեշտ է զանգահարել ${$dynamicVar.token}.

Մենք թույլտվության նշանը փոխանցում ենք հարցումների

Նախորդ քայլերում մենք ստացանք թույլտվության նշանը և մեզ անհրաժեշտ է միայն վերնագիր ավելացնել Authorization իմաստով Bearer <tokenValue> թույլտվություն պահանջող բոլոր հարցումներում, ներառյալ ստեղծել-տեղադրել. Դա անելու մի քանի եղանակ կա.

  1. Ձեռքով պատճենեք նշանը և ավելացրեք թույլտվության վերնագիր հետաքրքրող հարցումներին: Մեթոդն աշխատում է, բայց դրա օգտագործումը սահմանափակվում է միայն «պատրաստված և դեն նետված» տիպի խնդրանքներով: Հարմար չէ սցենարների կրկնակի կատարման համար
  2. Օգտագործեք ֆունկցիոնալությունը թույլտվություն.
  3. Օգտագործման համար լռելյայն վերնագրեր

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

Մեկ այլ բան լռելյայն վերնագրերն են: Մի խոսքով, լռելյայն վերնագրերը ժառանգված HTTP վերնագրեր են, որոնք լռելյայնորեն ավելացվում են հարցումին, եթե բացահայտորեն անջատված չեն: Օգտագործելով այս ֆունկցիոնալությունը, դուք կարող եք, օրինակ, իրականացնել հատուկ թույլտվություն կամ պարզապես ազատվել սկրիպտներում կրկնօրինակումից: Եկեք օգտագործենք այս հատկությունը վերնագրերում նշան փոխանցելու համար:

Նախկինում մենք զգուշորեն պահպանում էինք նշանը դինամիկ փոփոխականում $dynamicVar.token Ծրագրի հանգույցի մակարդակում: Մնում է միայն անել հետևյալը.

  1. Սահմանեք լռելյայն վերնագիրը Authorization արժեքով Bearer ${$dynamicVar.token} Ծրագրի հանգույցի մակարդակում: Դա անելու համար հանգույցի Project ինտերֆեյսում անհրաժեշտ է բացել լռելյայն վերնագրերով երկխոսություն (կոճակ Թեմա. վերևի աջ անկյունում) և ավելացրեք համապատասխան վերնագիր: Լրացված արժեքների հետ երկխոսությունը կունենա հետևյալ տեսքը.
    TestMace. Արագ մեկնարկ
  2. Անջատեք այս վերնագիրը մուտքի հարցումից: Սա հասկանալի է. մուտքի պահին մենք դեռ չունենք նշան և կտեղադրենք այն այս խնդրանքով: Հետևաբար, ներդիրի հարցումի մուտքի ինտերֆեյսում Թեմա. -ի տարածքում Ժառանգված հանել թույլտվության վերնագիրը:

Այսքանը: Այժմ թույլտվության վերնագիրը կավելացվի Ծրագրի հանգույցի զավակ բոլոր հարցումներին, բացառությամբ մուտքի հանգույցի: Պարզվում է, որ այս փուլում մենք արդեն պատրաստ ունենք սցենար, և մեզ մնում է այն գործարկել։ Դուք կարող եք գործարկել սցենարը՝ ընտրելով Վազում Ծրագրի հանգույցի համատեքստային մենյուում:

Գրառման ստեղծման ճիշտության ստուգում

Այս փուլում մեր սկրիպտը կարող է մուտք գործել և, օգտագործելով թույլտվության նշան, ստեղծել գրառում: Այնուամենայնիվ, մենք պետք է համոզվենք, որ նորաստեղծ գրառումը ճիշտ անվանում ունի։ Այսինքն, ըստ էության, մնում է անել հետևյալը.

  • Ուղարկեք հաղորդագրություն ստանալու հարցում id-ով,
  • Ստուգեք, որ սերվերից ստացված անունը համընկնում է գրառումը ստեղծելիս ուղարկված անվան հետ

Եկեք նայենք առաջին քայլին: Քանի որ id արժեքը որոշվում է սցենարի կատարման ժամանակ, դուք պետք է ստեղծեք դինամիկ փոփոխական (եկեք այն անվանենք postId) հանգույցից ստեղծել-տեղադրել Ծրագրի հանգույցի մակարդակում: Մենք արդեն գիտենք, թե ինչպես դա անել, պարզապես դիմեք բաժինը Պահպանեք նշանը փոփոխականում. Մնում է միայն այս id-ի միջոցով գրառում ստանալու հարցում ստեղծել: Դա անելու համար եկեք ստեղծենք RequestStep ստանալ-փոստ հետևյալ պարամետրերով.

  • Հարցման տեսակը՝ GET
  • URL՝ ${domain}/posts/${$dynamicVar.postId}

Երկրորդ քայլն իրականացնելու համար անհրաժեշտ է ծանոթանալ Պնդում հանգույց. Assertion հանգույցը հանգույց է, որը թույլ է տալիս չեկեր գրել կոնկրետ հարցումների համար: Յուրաքանչյուր Assertion հանգույց կարող է պարունակել մի քանի պնդումներ (ստուգումներ): Բոլոր տեսակի պնդումների մասին ավելին կարող եք կարդալ մեր կողմից փաստաթղթավորում. Մենք կօգտագործենք Compare պնդում օպերատորի հետ equal. Պնդումներ ստեղծելու մի քանի եղանակ կա.

  1. Երկար. Ձեռքով ստեղծեք Assertion հանգույց RequestStep հանգույցի համատեքստային մենյուից: Ստեղծված Assertion հանգույցում ավելացրեք հետաքրքրության պնդումը և լրացրեք դաշտերը։
  2. Արագ. Ստեղծեք Assertion հանգույց RequestStep հանգույցի պատասխանից պնդման հետ միասին՝ օգտագործելով համատեքստի ընտրացանկը

Եկեք օգտագործենք երկրորդ մեթոդը. Ահա թե ինչպիսին կլինի այն մեր գործի համար.

TestMace. Արագ մեկնարկ

Նրանց համար, ովքեր չեն հասկանում, ահա թե ինչ է կատարվում.

  1. Կատարեք հարցում հանգույցում ստանալ-փոստ
  2. Ներդիրում Վերլուծված պատասխանել, զանգահարել համատեքստի ընտրացանկ և ընտրել Ստեղծել պնդում -> համեմատել -> հավասար

Շնորհավորում ենք, մենք ստեղծել ենք մեր առաջին թեստը: Պարզ, այնպես չէ՞: Այժմ դուք կարող եք ամբողջությամբ գործարկել սցենարը և վայելել արդյունքը: Մնում է մի փոքր վերամշակել ու հանել title առանձին փոփոխականի մեջ: Բայց մենք սա ձեզ կթողնենք որպես տնային աշխատանք)

Ամփոփում

Այս ուղեցույցում մենք ստեղծեցինք լիարժեք սցենար և միևնույն ժամանակ վերանայեցինք մեր արտադրանքի որոշ առանձնահատկություններ: Իհարկե, մենք չօգտագործեցինք ամբողջ ֆունկցիոնալությունը, և հաջորդ հոդվածներում մենք մանրամասն կներկայացնենք TestMace-ի հնարավորությունները: Մնացեք մեզ հետ!

Հ.Գ Բոլոր քայլերը վերարտադրելու համար ծուլացողների համար սիրով արձանագրել ենք պահոց նախագծով հոդվածից։ Դուք կարող եք բացել այն Ֆայլ -> Բաց նախագիծ և ընտրեք Project թղթապանակը:

Source: www.habr.com

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