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:
So'rov tanasi: qiymatli json {"title": "New testmace quick start post"}
Agar siz hamma narsani to'g'ri bajargan bo'lsangiz, interfeys quyidagicha ko'rinadi:
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:
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:
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:
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:
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
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:
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:
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:
Uzoq. RequestStep tugunining kontekst menyusidan Assertion tugunini qo'lda yarating. Yaratilgan tasdiqlash tugunida qiziqish tasdiqini qo'shing va maydonlarni to'ldiring.
Tez. Kontekst menyusi yordamida RequestStep tugun javobidan tasdiqlash bilan birga tasdiqlash tugunini yarating
Keling, ikkinchi usuldan foydalanamiz. Bizning holatimizda bu shunday ko'rinadi.
Tushunmaganlar uchun nima bo'layotgani quyidagicha:
Tugunda so'rov yuboring post olish
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.