TestMace. Жылдам бастау

TestMace. Жылдам бастау

Бәріңе сәлем. Біз баяу көлеңкеден шығып, өніміміз туралы мақалалар сериясын жалғастырамыз. Кейін алдыңғы шолу мақаласында біз көптеген кері байланыс (негізінен оң), ұсыныстар мен қателер туралы есеп алдық. Бүгін біз көрсетеміз TestMace әрекетте және сіз біздің қолданбаның кейбір мүмкіндіктерін бағалай аласыз. Толығырақ суға түсу үшін мен сізге мына жерден біздің құжаттамаға жүгінуге кеңес беремін http://docs-ru.testmace.com. Ендеше, кеттік!

параметр

Банальдылықтан бастайық. Қолданба үш платформада қол жетімді және шын мәнінде сыналған - Linux, Windows, MacOS. Сізді қызықтыратын ОЖ үшін орнатушыны жүктеп алуға болады біздің веб-сайт. Linux пайдаланушылары үшін орнатуға болады қаптама. Microsoft Store және App Store жақын арада оған айналады деп үміттенеміз (Бұл қажет пе? Сіз қалай ойлайсыз?).

Эксперименттік сценарий

Біз сынақ тақырыбы ретінде келесі стандартты сценарийді таңдадық:

  • Логин: пайдаланушы - әкімші, құпия сөз - пароль
  • жаңа жазба қосыңыз
  • Жазбаның дұрыс қосылғанын тексерейік

Біз сынақтан өткіземіз https://testmace-quick-start.herokuapp.com/. Бұл әдеттегідей json сервері, мұндай қолданбаларды сынау үшін тамаша. Біз барлық json-сервер маршруттарына таңбалауыш арқылы авторизацияны қостық және осы таңбалауышты алу үшін кіру әдісін жасадық. Біз жобамызды бірте-бірте жетілдіре отырып, бірте-бірте қозғаламыз.

Жобаны жасау және рұқсатсыз нысан құруға әрекет жасау

Алдымен жаңа жоба жасайық (файл->Жаңа жоба). Қолданбаны бірінші рет іске қосып жатсаңыз, жаңа жоба автоматты түрде ашылады. Біріншіден, жаңа жазбаны жасау үшін сұрау жасап көрейік (егер жазбалар авторизациясыз қол жетімді болса). Жоба түйінінің контекстік мәзірінен элементтерді таңдаңыз Түйін қосу -> Сұрау қадамы. Түйін атауын орнатыңыз құру-пост. Нәтижесінде ағашта жаңа түйін жасалады және осы түйінге арналған қойынды ашылады. Келесі сұрау параметрлерін орнатайық:

  • Сұраныс түрі: POST
  • 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>"}. Біз оны авторизациялау үшін қолданамыз. Құрайық Сұрау қадамы аты бар түйін кіру, ата-баба қызметін атқаратын болады Жоба түйін «Сүйреп апарып тастау» әдісін пайдаланып, ағаштағы берілген түйінді түйіннен жоғары жылжытыңыз құру-пост. Жаңадан жасалған сұрауға келесі параметрлерді орнатайық:

Сұранысты орындап, жауапта таңбалауышы бар екі жүздік кодты алайық. Солай:

TestMace. Жылдам бастау

Рефакторинг: доменнің қайталануын жою

Әзірге сұраулар бір сценарийге байланысты емес. Бірақ бұл жалғыз кемшілік емес. Мұқият қарасаңыз, кем дегенде домен екі сұрауда да қайталанатынын байқайсыз. Дұрыс емес. Болашақ сценарийдің осы бөлігін рефакторлау уақыты келді және айнымалылар бізге бұған көмектеседі.

Бірінші жуықтау үшін айнымалылар басқа ұқсас құралдар мен бағдарламалау тілдеріндегідей рөл атқарады - қайталануды жою, оқылуды арттыру және т.б. Айнымалылар туралы толығырақ мына жерден оқи аласыз біздің құжаттама. Бұл жағдайда бізге пайдаланушы айнымалылары қажет болады.

Жоба түйіні деңгейінде айнымалыны анықтайық domain мәнімен бірге https://testmace-quick-start.herokuapp.com. Бұл үшін қажет

  • Осы түйінмен қойындыны ашып, жоғарғы оң жақтағы калькулятор белгішесін басыңыз
  • Шертіңіз + АЙНЫСАНЫ ҚОСУ
  • Айнымалы атауы мен мәнін енгізіңіз
    Біздің жағдайда қосылған айнымалысы бар диалог келесідей болады:

TestMace. Жылдам бастау

ЖАРАЙДЫ МА. Енді мұраға байланысты біз бұл айнымалыны кез келген ұя салу деңгейінің ұрпақтарында пайдалана аламыз. Біздің жағдайда бұл түйіндер кіру и құру-пост. Мәтіндік өрісте айнымалыны пайдалану үшін жазу керек ${<variable_name>}. Мысалы, кіру URL мекенжайы түрлендіріледі ${domain}/login, тиісінше құру-пост түйіннің URL мекенжайы келесідей болады ${domain}/posts.

Осылайша, DRY принципін басшылыққа ала отырып, біз сценарийді сәл жақсарттық.

Белгішені айнымалыға сақтаңыз

Біз айнымалылар туралы айтып жатқандықтан, осы тақырыпты аздап кеңейтейік. Қазіргі уақытта жүйеге сәтті кірген жағдайда біз серверден авторизация белгісін аламыз, ол бізге келесі сұрауларда қажет болады. Осы таңбалауышты айнымалыға сақтайық. Өйткені айнымалының мәні сценарийді орындау кезінде анықталады, біз бұл үшін арнайы механизмді қолданамыз - динамикалық айнымалылар.

Алдымен кіру сұрауын орындайық. Қойындыда Сараланған жауап беру үшін курсорды таңбалауыштың үстіне жылжытыңыз және контекстік мәзірде (ол тінтуірдің оң жақ түймешігімен немесе түймені басу арқылы шақырылады ...) элементті таңдаңыз. Айнымалыға тағайындау. Келесі өрістермен диалог пайда болады:

  • Жол — жауаптың қай бөлігі алынады (біздің жағдайда бұл body.token)
  • Ағымдағы мән — Жол бойында қандай мән жатыр (біздің жағдайда бұл таңбалауыш мән)
  • Айнымалы атауы — мұндағы айнымалының аты Ағымдағы мән сақталады. Біздің жағдайда солай болады token
  • Node — айнымалы ата-бабалардың қайсысында жасалады Айнымалы атауы. Жобаны таңдайық

Аяқталған диалогтық терезе келесідей көрінеді:

TestMace. Жылдам бастау

Енді түйін орындалған сайын кіру динамикалық айнымалы token жауаптың жаңа мәнімен жаңартылады. Және бұл айнымалы мән сақталады Жоба түйін және мұраның арқасында ұрпақтар үшін қол жетімді болады.

Динамикалық айнымалыларға қол жеткізу үшін пайдалану керек кірістірілген айнымалы $dynamicVar. Мысалы, сақталған таңбалауышқа қол жеткізу үшін қоңырау шалу керек ${$dynamicVar.token}.

Біз рұқсат белгісін сұрауларға жібереміз

Алдыңғы қадамдарда біз рұқсат белгісін алдық және бізге тек тақырыпты қосу керек Authorization мағынасымен Bearer <tokenValue> авторизацияны талап ететін барлық сұрауларда, соның ішінде құру-пост. Мұны істеудің бірнеше жолы бар:

  1. Белгішені қолмен көшіріп, қызығушылық сұрауларына авторизация тақырыбын қосыңыз. Әдіс жұмыс істейді, бірақ оны пайдалану тек «жасалған және лақтырылған» түріндегі сұраулармен шектеледі. Сценарийлерді қайталап орындау үшін жарамсыз
  2. Функционалдылықты пайдаланыңыз рұқсат.
  3. Пайдаланыңыз әдепкі тақырыптар

Екінші әдісті қолдану анық көрінеді, бірақ осы мақаланың контекстінде бұл тәсіл ... қызық емес. Расында да: авторизация механизмі плюс минус сізге басқа құралдардан таныс (тіпті бізде осындай нәрселер болса да) авторизациялық мұра) және сұрақ тудыруы екіталай.

Тағы бір нәрсе - әдепкі тақырыптар! Қысқаша айтқанда, әдепкі тақырыптар сұрауға әдепкі бойынша қосылатын мұраланған HTTP тақырыптары болып табылады, егер анық өшірілмесе. Бұл функцияны пайдалана отырып, мысалы, пайдаланушы авторизациясын жүзеге асыруға немесе сценарийлердегі қайталанудан құтылуға болады. Осы мүмкіндікті тақырыптардағы таңбалауышты беру үшін қолданайық.

Бұрын біз таңбалауышты динамикалық айнымалыға сақтықпен сақтадық $dynamicVar.token Жоба түйіні деңгейінде. Келесі әрекеттерді орындау ғана қалады:

  1. Әдепкі тақырыпты анықтаңыз Authorization мәнімен бірге Bearer ${$dynamicVar.token} Жоба түйіні деңгейінде. Ол үшін түйіннің Жоба интерфейсінде әдепкі тақырыптары бар диалогты ашу керек (түйме айдарлары жоғарғы оң жақ бұрышта) және сәйкес тақырыпты қосыңыз. Толтырылған мәндері бар диалогтық терезе келесідей болады:
    TestMace. Жылдам бастау
  2. Бұл тақырыпты кіру сұрауынан өшіріңіз. Бұл түсінікті: жүйеге кіру кезінде бізде әлі токен жоқ және біз оны осы сұрау арқылы орнатамыз. Сондықтан, қойындыдағы сұраудың кіру интерфейсінде айдарлары облыста Мұрагерлік Авторизация тақырыбын алып тастаңыз.

Бар болғаны. Енді авторизация тақырыбы кіру түйінінен басқа Жоба түйінінің еншілестері болып табылатын барлық сұрауларға қосылады. Бұл кезеңде бізде сценарий дайын және оны іске қосу ғана қалады. Таңдау арқылы сценарийді іске қосуға болады жүгіру Жоба түйінінің мәтінмәндік мәзірінде.

Пост құрудың дұрыстығын тексеру

Бұл кезеңде біздің сценарий жүйеге кіріп, авторизация белгісін пайдаланып, жазба жасай алады. Дегенмен, жаңадан жасалған жазбаның дұрыс атауы бар екеніне көз жеткізуіміз керек. Яғни, шын мәнінде, келесі әрекеттерді орындау ғана қалады:

  • Постты идентификатор бойынша алуға сұрау жіберіңіз,
  • Серверден алынған аттың жазбаны жасау кезінде жіберілген атқа сәйкес келетінін тексеріңіз

Бірінші қадамды қарастырайық. Идентификатор мәні сценарийді орындау кезінде анықталғандықтан, динамикалық айнымалы мәнді жасау керек (оны шақырайық postId) түйіннен құру-пост Жоба түйіні деңгейінде. Біз мұны қалай жасау керектігін білеміз, жай ғана бөлімді қараңыз Белгішені айнымалыға сақтаңыз. Осы идентификатор арқылы жазбаны алуға сұраныс жасау ғана қалады. Ол үшін RequestStep жасайық пост алу келесі параметрлермен:

  • Сұраныс түрі: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Екінші қадамды жүзеге асыру үшін біз танысуымыз керек Бекіту түйін. Бекіту түйіні - бұл нақты сұраулар үшін тексеру жазуға мүмкіндік беретін түйін. Әрбір бекіту түйінінде бірнеше бекітулер (тексерулер) болуы мүмкін. Бекітулердің барлық түрлері туралы толығырақ біздің сайттан оқи аласыз құжаттама. пайдаланамыз Compare оператормен бекіту equal. Бекітулерді құрудың бірнеше жолы бар:

  1. Ұзын. RequestStep түйінінің мәтінмәндік мәзірінен Бекіту түйінін қолмен жасаңыз. Жасалған бекіту түйінінде қызығушылықты бекітуді қосыңыз және өрістерді толтырыңыз.
  2. Жылдам. Мәтінмәндік мәзірді пайдаланып RequestStep түйінінің жауабынан бекітумен бірге бекіту түйінін жасаңыз

Екінші әдісті қолданайық. Біздің ісімізде осылай болады.

TestMace. Жылдам бастау

Түсінбейтіндер үшін мына жағдай:

  1. Түйінде сұрау жасаңыз пост алу
  2. Қойындыда Сараланған жауап беріп, контекстік мәзірге қоңырау шалып, таңдаңыз Бекіту жасау -> салыстыру -> тең

Құттықтаймыз, біз бірінші тестімізді жасадық! Қарапайым, солай емес пе? Енді сіз сценарийді толығымен іске қосып, нәтижеден ләззат ала аласыз. Тек оны аздап рефакциялау және оны алып тастау ғана қалады title бөлек айнымалыға айналдырады. Бірақ мұны сізге үй тапсырмасы ретінде қалдырамыз)

қорытынды

Бұл нұсқаулықта біз толыққанды сценарий құрдық және сонымен бірге өніміміздің кейбір мүмкіндіктерін қарастырдық. Әрине, біз барлық функционалдылықты пайдаланбадық және келесі мақалаларда TestMace мүмкіндіктеріне толық шолу жасаймыз. Бізбен бірге қалыңыз!

P.S. Барлық қадамдарды қайта шығаруға тым жалқаулар үшін біз мейірімділікпен жазып алдық репозиторий мақаладағы жобамен. көмегімен аша аласыз файл -> Ашық жоба және Жоба қалтасын таңдаңыз.

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

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