TestMace. Tez boshlash

TestMace. Tez boshlash

Hammaga salom. Biz asta-sekin soyadan chiqayapmiz va mahsulotimiz haqidagi maqolalar seriyasini davom ettirmoqdamiz. Keyin oldingi maqolani ko'rib chiqish, biz juda ko'p fikr-mulohazalar (asosan ijobiy), takliflar va xato hisobotlarini oldik. Bugun biz ko'rsatamiz TestMace amalda va siz bizning ilovamizning ba'zi xususiyatlarini qadrlashingiz mumkin bo'ladi. To'liqroq suvga cho'mish uchun men sizga bizning hujjatlarimizga murojaat qilishingizni maslahat beraman http://docs-ru.testmace.com. Xo'sh, ketaylik!

sozlama

Keling, oddiylikdan boshlaylik. Ilova mavjud va aslida uchta platformada sinovdan o'tgan - Linux, Windows, MacOS. Sizni qiziqtirgan OS uchun o'rnatuvchini yuklab olishingiz mumkin bizning veb-saytimiz. Linux foydalanuvchilari uchun uni o'rnatish mumkin snap paketi. Umid qilamizki, Microsoft do'koni va App Store tez orada unga erishadi (Bu kerakmi? Nima deb o'ylaysiz?).

Eksperimental stsenariy

Biz sinov mavzusi sifatida quyidagi standart stsenariyni tanladik:

  • Kirish: foydalanuvchi - admin, parol - parol
  • yangi yozuv qo'shing
  • Keling, yozuv to'g'ri qo'shilganligini tekshirib ko'raylik

Biz sinovdan o'tamiz https://testmace-quick-start.herokuapp.com/. Bu odatiy hol json-server, bunday ilovalarni sinab ko'rish uchun juda mos keladi. Biz barcha json-server marshrutlariga token orqali avtorizatsiyani qo'shdik va ushbu tokenni olish uchun kirish usulini yaratdik. Biz bosqichma-bosqich harakat qilamiz, asta-sekin loyihamizni takomillashtiramiz.

Loyiha yaratish va ruxsatsiz ob'ekt yaratishga urinish

Birinchidan, yangi loyiha yaratamiz (Fayl->Yangi loyiha). Ilovani birinchi marta ishga tushirayotgan bo'lsangiz, yangi loyiha avtomatik ravishda ochiladi. Birinchidan, yangi yozuv yaratish uchun so'rov berishga harakat qilaylik (agar yozuvlar ruxsatsiz yaratish mumkin bo'lsa). Loyiha tugunining kontekst menyusidan elementlarni tanlang Tugun qo'shing -> Request Step. Tugun nomini o'rnating post yaratish. Natijada, daraxtda yangi tugun yaratiladi va bu tugun uchun yorliq ochiladi. Quyidagi so'rov parametrlarini o'rnatamiz:

TestMace. Tez boshlash

Biroq, agar biz so'rovni bajarishga harakat qilsak, server 401 kodini qaytaradi va avtorizatsiyasiz biz ushbu serverda hech narsa olmaymiz. Xo'sh, umuman olganda, kutilganidek).

Avtorizatsiya soʻrovi qoʻshilmoqda

Yuqorida aytib o'tilganidek, bizda POST so'nggi nuqtasi bor /login, json ni shaklning so'rov tanasi sifatida qabul qiladi: {"username": "<username>", "password": "<password>"}qayerda username и password (yana yuqoridagi kirish paragrafidan) ma'nolarga ega admin и password mos ravishda. Bunga javoban, bu oxirgi nuqta json like-ni qaytaradi {"token": "<token>"}. Biz undan avtorizatsiya uchun foydalanamiz. Keling, yarataylik Request Step nomi bilan tugun Kirish, ajdod sifatida harakat qiladi loyiha tugun Drag-and-drop-dan foydalanib, daraxtdagi berilgan tugunni tugundan yuqoriroqqa o'tkazing post yaratish. Yangi yaratilgan so'rovga quyidagi parametrlarni o'rnatamiz:

Keling, so'rovni bajaramiz va javobda token bilan ikki yuzinchi kodni olamiz. Shunga o'xshash narsa:

TestMace. Tez boshlash

Refaktoring: domen takrorlanishini olib tashlash

Hozircha so'rovlar bitta skriptga bog'lanmagan. Ammo bu yagona kamchilik emas. Agar siz diqqat bilan qarasangiz, hech bo'lmaganda domen ikkala so'rovda ham takrorlanganligini sezasiz. Yaxshi emas. Kelajakdagi skriptning ushbu qismini qayta tiklash vaqti keldi va o'zgaruvchilar bunda bizga yordam beradi.

Birinchi taxminga ko'ra, o'zgaruvchilar boshqa shunga o'xshash vositalar va dasturlash tillarida bo'lgani kabi bir xil rol o'ynaydi - takrorlashni yo'q qilish, o'qishni oshirish va hk. O'zgaruvchilar haqida ko'proq o'qishingiz mumkin bizning hujjatlarimiz. Bunday holda, bizga foydalanuvchi o'zgaruvchilari kerak bo'ladi.

Loyiha tugunlari darajasida o'zgaruvchini aniqlaymiz domain ma'nosi bilan https://testmace-quick-start.herokuapp.com. Buning uchun kerak

  • Ushbu tugun bilan yorliqni oching va yuqori o'ng burchakdagi kalkulyator belgisini bosing
  • ni bosing + OʻZGARCHI QOʻSHISH
  • O'zgaruvchi nomi va qiymatini kiriting
    Bizning holatda, qo'shilgan o'zgaruvchiga ega bo'lgan dialog quyidagicha ko'rinadi:

TestMace. Tez boshlash

KELISHDIKMI. Endi, meros tufayli, biz bu o'zgaruvchidan har qanday joylashtirish darajasidagi avlodlarda foydalanishimiz mumkin. Bizning holatlarimizda bu tugunlar Kirish и post yaratish. Matn maydonida o'zgaruvchidan foydalanish uchun siz yozishingiz kerak ${<variable_name>}. Masalan, login url ga aylantiriladi ${domain}/login, mos ravishda uchun post yaratish tugun url o'xshash bo'ladi ${domain}/posts.

Shunday qilib, DRY tamoyiliga asoslanib, biz stsenariyni biroz yaxshiladik.

Tokenni o'zgaruvchiga saqlang

Biz o'zgaruvchilar haqida gapirayotganimiz uchun, keling, ushbu mavzuni biroz kengaytiramiz. Ayni paytda, muvaffaqiyatli tizimga kirgan taqdirda, biz serverdan keyingi so'rovlarda kerak bo'ladigan avtorizatsiya tokenini olamiz. Keling, ushbu tokenni o'zgaruvchiga saqlaymiz. Chunki o'zgaruvchining qiymati skriptni bajarish paytida aniqlanadi, biz buning uchun maxsus mexanizmdan foydalanamiz - dinamik o'zgaruvchilar.

Birinchidan, kirish so'rovini bajaramiz. Yorliqda Ajratilgan javob berish uchun kursorni token ustiga olib boring va kontekst menyusida (u sichqonchaning o'ng tugmasi yoki tugmani bosish orqali chaqiriladi ...) elementni tanlang. O'zgaruvchiga tayinlash. Quyidagi maydonlar bilan dialog paydo bo'ladi:

  • Yo'l — javobning qaysi qismi olinadi (bizning holimizda bu body.token)
  • Joriy qiymat — Yoʻl boʻylab qanday qiymat yotadi (bizning holimizda bu token qiymati)
  • Argumentlar nomi — bu yerda oʻzgaruvchining nomi Joriy qiymat saqlanib qoladi. Bizning holatlarimizda shunday bo'ladi token
  • Node — ajdodlarning qaysi birida o‘zgaruvchi yaratiladi Argumentlar nomi. Loyihani tanlaymiz

Tugallangan dialog oynasi quyidagicha ko'rinadi:

TestMace. Tez boshlash

Endi tugun har safar bajarilganda Kirish dinamik o'zgaruvchi token javobdan olingan yangi qiymat bilan yangilanadi. Va bu o'zgaruvchi saqlanadi loyiha tugun va meros tufayli avlodlar uchun mavjud bo'ladi.

Dinamik o'zgaruvchilarga kirish uchun siz foydalanishingiz kerak o'rnatilgan o'zgaruvchi $dynamicVar. Misol uchun, saqlangan tokenga kirish uchun siz qo'ng'iroq qilishingiz kerak ${$dynamicVar.token}.

Biz avtorizatsiya belgisini so'rovlarga o'tkazamiz

Oldingi bosqichlarda biz avtorizatsiya belgisini oldik va faqat sarlavha qo'shishimiz kerak Authorization ma'no bilan Bearer <tokenValue> avtorizatsiyani talab qiladigan barcha so'rovlarda, shu jumladan post yaratish. Buning bir necha yo'li mavjud:

  1. Tokenni qo'lda nusxalash va qiziqish so'rovlariga avtorizatsiya sarlavhasini qo'shing. Usul ishlaydi, lekin undan foydalanish faqat "yasalgan va tashlangan" turdagi so'rovlar bilan cheklangan. Skriptlarni takroriy bajarish uchun mos emas
  2. Funktsiyadan foydalaning ruxsat.
  3. Foydalanish standart sarlavhalar

Ikkinchi usuldan foydalanish aniq ko'rinadi, ammo ushbu maqola kontekstida bu yondashuv ... qiziq emas. Xo'sh, haqiqatan ham: avtorizatsiya mexanizmi plyus minus sizga boshqa vositalardan tanish (hatto bizda shunga o'xshash narsalar bo'lsa ham) avtorizatsiya merosi) va savollar tug'dirishi dargumon.

Yana bir narsa - standart sarlavhalar! Xulosa qilib aytganda, standart sarlavhalar meros qilib olingan HTTP sarlavhalari bo'lib, ular aniq o'chirib qo'yilmasa, sukut bo'yicha so'rovga qo'shiladi. Ushbu funksiyadan foydalanib, siz, masalan, maxsus avtorizatsiyani amalga oshirishingiz yoki oddiygina skriptlardagi takrorlanishdan xalos bo'lishingiz mumkin. Keling, ushbu xususiyatdan tokenni sarlavhalarga o'tkazish uchun foydalanaylik.

Ilgari biz tokenni ehtiyotkorlik bilan dinamik o'zgaruvchiga saqlagan edik $dynamicVar.token Loyiha tugunlari darajasida. Qolgan narsa faqat quyidagilarni bajarishdir:

  1. Standart sarlavhani aniqlang Authorization ma'nosi bilan Bearer ${$dynamicVar.token} Loyiha tugunlari darajasida. Buning uchun tugunning Loyiha interfeysida standart sarlavhalar bilan dialogni ochishingiz kerak (tugma Ustunlarning yuqori o'ng burchakda) va tegishli sarlavha qo'shing. To'ldirilgan qiymatlar bilan dialog oynasi quyidagicha ko'rinadi:
    TestMace. Tez boshlash
  2. Kirish so'rovidan ushbu sarlavhani o'chirib qo'ying. Bu tushunarli: tizimga kirish vaqtida bizda hali token yo'q va biz uni ushbu so'rov bilan o'rnatamiz. Shuning uchun, yorliqdagi so'rovning kirish interfeysida Ustunlarning hududida Meros Avtorizatsiya sarlavhasini olib tashlang.

Ana xolos. Endi avtorizatsiya sarlavhasi login tugunidan tashqari Loyiha tugunining bolalari bo'lgan barcha so'rovlarga qo'shiladi. Ma'lum bo'lishicha, bu bosqichda biz allaqachon tayyor skriptga egamiz va faqat uni ishga tushirishimiz kerak. Skriptni tanlash orqali ishga tushirishingiz mumkin yugurish Loyiha tugunining kontekst menyusida.

Post yaratishning to'g'riligini tekshirish

Ushbu bosqichda bizning skriptimiz tizimga kirishi va avtorizatsiya belgisi yordamida post yaratishi mumkin. Biroq, biz yangi yaratilgan postning to'g'ri nomiga ega ekanligiga ishonch hosil qilishimiz kerak. Ya'ni, mohiyatiga ko'ra, faqat quyidagilarni bajarish qoladi:

  • Identifikator bo'yicha post olish uchun so'rov yuboring,
  • Serverdan olingan ism post yaratishda yuborilgan nomga mos kelishini tekshiring

Keling, birinchi qadamni ko'rib chiqaylik. Id qiymati skriptni bajarishda aniqlanganligi sababli siz dinamik o'zgaruvchini yaratishingiz kerak (uni chaqiraylik) postId) tugundan post yaratish Loyiha tugunlari darajasida. Buni qanday qilishni allaqachon bilamiz, faqat bo'limga murojaat qiling Tokenni o'zgaruvchiga saqlang. Faqatgina ushbu identifikatordan foydalangan holda post olish uchun so'rov yaratish qoladi. Buning uchun keling, RequestStep ni yaratamiz post olish quyidagi parametrlar bilan:

  • So'rov turi: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Ikkinchi bosqichni amalga oshirish uchun biz tanishishimiz kerak Tasdiqlash tugun. Tasdiqlash tuguni - bu muayyan so'rovlar uchun cheklarni yozish imkonini beruvchi tugun. Har bir tasdiqlash tugunida bir nechta tasdiqlar (tekshiruvlar) bo'lishi mumkin. Barcha turdagi da'volar haqida ko'proq ma'lumotni bizning maqolamizdan o'qishingiz mumkin hujjatlar. foydalanamiz Compare operator bilan tasdiqlash equal. Da'volarni yaratishning bir necha yo'li mavjud:

  1. Uzoq. RequestStep tugunining kontekst menyusidan Assertion tugunini qo'lda yarating. Yaratilgan tasdiqlash tugunida qiziqish tasdiqini qo'shing va maydonlarni to'ldiring.
  2. Tez. Kontekst menyusi yordamida RequestStep tugun javobidan tasdiqlash bilan birga tasdiqlash tugunini yarating

Keling, ikkinchi usuldan foydalanamiz. Bizning holatimizda bu shunday ko'rinadi.

TestMace. Tez boshlash

Tushunmaganlar uchun nima bo'layotgani quyidagicha:

  1. Tugunda so'rov yuboring post olish
  2. Yorliqda Ajratilgan javob bering, kontekst menyusiga qo'ng'iroq qiling va tanlang Tasdiqlash yaratish -> solishtiring -> teng

Tabriklaymiz, biz birinchi testimizni yaratdik! Oddiy, shunday emasmi? Endi siz skriptni to'liq ishga tushirishingiz va natijadan bahramand bo'lishingiz mumkin. Qolgan narsa - uni biroz qayta tiklash va uni olib tashlash title alohida o'zgaruvchiga. Ammo biz buni sizga uy vazifasi sifatida qoldiramiz)

xulosa

Ushbu qo'llanmada biz to'liq stsenariy yaratdik va shu bilan birga mahsulotimizning ba'zi xususiyatlarini ko'rib chiqdik. Albatta, biz barcha funktsiyalardan foydalanmadik va keyingi maqolalarda biz TestMace imkoniyatlari haqida batafsil ma'lumot beramiz. Yangiliklarni kuzatib boring, xabardor bo'lib boring; Biz bilan qoling!

P.S. Barcha qadamlarni takrorlash uchun juda dangasa bo'lganlar uchun biz mehribonlik bilan yozib oldik ombori maqoladan loyiha bilan. bilan ochishingiz mumkin Fayl -> Ochiq loyiha va Loyiha jildini tanlang.

Manba: www.habr.com

a Izoh qo'shish