Nima uchun TestMace Postmandan yaxshiroq

Nima uchun TestMace Postmandan yaxshiroq

Hammaga salom! TestMace! Ehtimol, ko'p odamlar biz haqimizda bilishadi bizning oldingi maqolalar. Hozirgina qo'shilganlar uchun: biz TestMace API bilan ishlash uchun IDE ishlab chiqmoqdamiz. TestMace-ni raqobatdosh mahsulotlar bilan solishtirganda eng ko'p beriladigan savol "Siz Postmandan nimasi bilan farq qilasiz?" Bu savolga batafsil javob berish vaqti keldi, deb qaror qildik. Quyida biz o'z afzalliklarimiz haqida gapirib berdik Pochtachi.

Tugunlarga bo'linish

Agar siz Postman bilan ishlasangiz, so'rov interfeysi barcha kerakli funktsiyalarni o'z ichiga olganligini bilasiz. Skriptlar, testlar va, aslida, so'rovlarning o'zlari mavjud. Bu yangi boshlanuvchilar uchun osonlashtiradi, lekin katta stsenariylarda bu yondashuv moslashuvchan emas. Agar siz bir nechta so'rovlar yaratmoqchi bo'lsangiz va ular bo'yicha yig'ishni amalga oshirmoqchi bo'lsangiz-chi? Agar siz skriptni so'rovsiz yoki ketma-ket bir nechta mantiqiy ajratilgan skriptlarsiz bajarishni xohlasangiz nima bo'ladi? Axir, testlarni oddiy yordamchi skriptlardan ajratish yaxshi bo'lar edi. Bundan tashqari, "barcha funktsiyalarni bitta tugunga qo'shish" yondashuvini kengaytirib bo'lmaydi - interfeys tezda haddan tashqari yuklanadi.

TestMace dastlab barcha funksiyalarni har xil turdagi tugunlarga ajratadi. So'rov yubormoqchimisiz? Bu siz uchun so'rov bosqichi tugun Skript yozmoqchimisiz? Bu siz uchun stsenariy tugun Testlar kerakmi? Iltimos - Tasdiqlash tugun Ha, siz hali ham hamma narsani o'rashingiz mumkin Papkasida joylashgan tugun Va bularning barchasi bir-biri bilan osongina birlashtirilishi mumkin. Ushbu yondashuv nafaqat juda moslashuvchan, balki yagona mas'uliyat tamoyiliga muvofiq, faqat hozirgi paytda sizga kerak bo'lgan narsadan foydalanishga imkon beradi. Agar so'rov yubormoqchi bo'lsam, nima uchun menga skriptlar va testlar kerak?

Inson o'qiy oladigan loyiha formati

TestMace va Postman o'rtasida ularni saqlash usulida kontseptual farq bor. Postman-da barcha so'rovlar mahalliy xotirada saqlanadi. Agar bir nechta foydalanuvchilar o'rtasida so'rovlarni almashish zarurati tug'ilsa, siz o'rnatilgan sinxronizatsiyadan foydalanishingiz kerak. Aslida, bu umumiy qabul qilingan yondashuv, ammo uning kamchiliklari yo'q. Ma'lumotlar xavfsizligi haqida nima deyish mumkin? Axir, ba'zi kompaniyalarning siyosati ma'lumotlarni uchinchi shaxslar bilan saqlashga ruxsat bermasligi mumkin. Biroq, bizning fikrimizcha, TestMace taklif qiladigan yaxshiroq narsa bor! Va bu yaxshilanishning nomi "odam tomonidan o'qiladigan loyiha formati".

TestMace-da, printsipial jihatdan, "loyiha" ob'ekti mavjudligidan boshlaylik. Ilova dastlab loyihalarni versiyalarni boshqarish tizimlarida saqlash uchun ishlab chiqilgan: loyiha daraxti fayl tuzilishiga deyarli birma-bir proyeksiya qilinadi, yaml saqlash formati sifatida ishlatiladi (qo'shimcha qavslar va vergullarsiz) va har bir tugunning fayl ko'rinishi sharhlar bilan hujjatlarda batafsil tasvirlangan. Ammo ko'p hollarda siz u erga qaramaysiz - barcha maydon nomlari mantiqiy nomlarga ega.

Bu foydalanuvchiga nima beradi? Bu sizga tanish yondashuvlardan foydalangan holda jamoaning ish oqimini juda moslashuvchan tarzda o'zgartirishga imkon beradi. Masalan, ishlab chiquvchilar loyihani backend bilan bir xil omborda saqlashlari mumkin. Filiallarda, kod bazasini o'zgartirishdan tashqari, ishlab chiquvchi mavjud so'rov skriptlari va testlarini tuzatishi mumkin. Omborga o'zgartirishlar kiritganingizdan so'ng (git, svn, mercurial - sizga yoqadigan narsa), CI (sizning sevimli, hech kim tomonidan yuklanmagan) bizning konsol yordam dasturimizni ishga tushiradi. testmace-cli, va bajarilgandan so'ng olingan hisobot (masalan, testmace-cli da qo'llab-quvvatlanadigan junit formatida) tegishli tizimga yuboriladi. Va yuqorida aytib o'tilgan xavfsizlik muammosi endi muammo emas.

Ko'rib turganingizdek, TestMace o'zining ekotizimini va paradigmasini yuklamaydi. Buning o'rniga, u o'rnatilgan jarayonlarga osongina mos keladi.

Dinamik o'zgaruvchilar

TestMace kodsiz kontseptsiyaga amal qiladi: agar muammoni koddan foydalanmasdan hal qilish mumkin bo'lsa, biz bu imkoniyatni taqdim etishga harakat qilamiz. O'zgaruvchilar bilan ishlash - bu ko'p hollarda dasturlashsiz ishlashingiz mumkin bo'lgan funksionallik.

Misol: biz serverdan javob oldik va biz javobning bir qismini o'zgaruvchiga saqlamoqchimiz. Postmanda test skriptida (bu o'zi g'alati) biz shunday yozamiz:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Ammo bizning fikrimizcha, bunday oddiy va tez-tez ishlatiladigan stsenariy uchun skript yozish ortiqcha ko'rinadi. Shuning uchun TestMace-da grafik interfeys yordamida o'zgaruvchiga javobning bir qismini belgilash mumkin. Qarang, bu qanchalik oddiy:

Nima uchun TestMace Postmandan yaxshiroq

Va endi har bir so'rov bilan bu dinamik o'zgaruvchi yangilanadi. Ammo siz e'tiroz bildirishingiz mumkin, chunki "Pochtachi" yondashuvi yanada moslashuvchan va sizga nafaqat topshiriqni bajarish, balki oldindan ishlov berishni ham amalga oshirish imkonini beradi. Oldingi misolni qanday o'zgartirish mumkin:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Xo'sh, bu maqsadda TestMace mavjud stsenariy ushbu stsenariyni qamrab oluvchi tugun. TestMace tomonidan allaqachon bajarilgan oldingi holatni takrorlash uchun siz so'rov bo'yicha skript tugunini yaratishingiz va quyidagi kodni skript sifatida ishlatishingiz kerak:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Ko'rib turganingizdek, tugunlarning tarkibi bu erda ham yaxshi xizmat qildi. Va yuqorida tavsiflangan bunday oddiy holat uchun siz shunchaki ifodani belgilashingiz mumkin ${crypto.MD5($response.data)} GUI orqali yaratilgan o'zgaruvchi!

GUI orqali testlarni yaratish

Postman skriptlarni yozish orqali testlarni yaratishga imkon beradi (Postman misolida bu JavaScript). Ushbu yondashuv juda ko'p afzalliklarga ega - deyarli cheksiz moslashuvchanlik, tayyor echimlar mavjudligi va boshqalar.

Biroq, haqiqat ko'pincha shunday (biz unday emasmiz, hayot shunday)ki, tester dasturlash qobiliyatiga ega emas, lekin u hozir jamoaga foyda keltirmoqchi. Bunday hollarda, kodsiz kontseptsiyaga rioya qilgan holda, TestMace skriptlarni yozishga murojaat qilmasdan GUI orqali oddiy testlarni yaratishga imkon beradi. Bu erda, masalan, tenglik uchun qiymatlarni taqqoslaydigan test yaratish jarayoni qanday ko'rinadi:

Nima uchun TestMace Postmandan yaxshiroq

Biroq, grafik muharrirda testlarni yaratish bu imkoniyatni yo'qotmaydi testlarni kodda yozish. Xuddi shu kutubxonalar bu erda skript tugunidagi kabi va Chay yozish testlari uchun.

Vaziyatlar ko'pincha loyihaning turli qismlarida ma'lum bir so'rov yoki hatto butun skriptni bir necha marta bajarish kerak bo'lganda paydo bo'ladi. Bunday so'rovlarga misol sifatida maxsus ko'p bosqichli avtorizatsiya, atrof-muhitni kerakli holatga keltirish va hokazo bo'lishi mumkin. Umuman olganda, dasturlash tillari nuqtai nazaridan, biz ilovaning turli qismlarida qayta ishlatilishi mumkin bo'lgan funktsiyalarga ega bo'lishni xohlaymiz. TestMace-da bu funktsiya tomonidan amalga oshiriladi aloqa tugun Foydalanish juda oson:
1) so'rov yoki skript yaratish
2) Link tipidagi tugunni yaratish
3) parametrlarda birinchi bosqichda yaratilgan skriptga havolani belgilang

Murakkab versiyada siz skriptdan qaysi dinamik o'zgaruvchilar havolaga nisbatan yuqori darajaga o'tkazilishini belgilashingiz mumkin. Ovoz chalkashmi? Aytaylik, biz nomli papka yaratdik post yaratish, uning ichida ushbu tugunga dinamik o'zgaruvchi tayinlangan postId. Endi havola tugunida havolani yaratish o'zgaruvchini aniq belgilashingiz mumkin postId ajdodga tayinlangan havolani yaratish. Ushbu mexanizm (yana dasturlash tilida) "funktsiya" dan natijani qaytarish uchun ishlatilishi mumkin. Umuman olganda, bu juda zo'r, DRY qizg'in davom etmoqda va yana bitta kod qatori buzilmagan.

Nima uchun TestMace Postmandan yaxshiroq

Postmanga kelsak, so'rovlarni qayta ishlatish uchun xususiyat so'rovi mavjud 2015 yildan beri osilgan, va u hatto borga o'xshaydi ba'zi maslahatlarular bu muammo ustida ishlamoqda. Hozirgi ko'rinishida Postman, albatta, ijro chizig'ini o'zgartirish qobiliyatiga ega, bu nazariy jihatdan shunga o'xshash xatti-harakatlarni amalga oshirishga imkon beradi, ammo bu haqiqiy ishlaydigan yondashuvdan ko'ra ko'proq iflos xakerlikdir.

Boshqa farqlar

  • O'zgaruvchilar doirasini ko'proq nazorat qilish. Postman-da o'zgaruvchini aniqlash mumkin bo'lgan eng kichik doira - bu to'plam. TestMace har qanday so'rov yoki papka uchun o'zgaruvchilarni aniqlash imkonini beradi. Postman Share to'plamida faqat to'plamlarni eksport qilish imkonini beradi, TestMace-da esa ulashish har qanday tugun uchun ishlaydi
  • TestMace qo'llab-quvvatlaydi irsiy sarlavhalar, bu sukut bo'yicha bolalar so'rovlariga almashtirilishi mumkin. Pochtachi bu haqda nimadir bor: muammo, va u hatto yopiq, lekin u yechim sifatida taklif etiladi ... skriptlardan foydalaning. TestMace-da bularning barchasi GUI orqali sozlangan va ixtiyoriy ravishda ma'lum avlodlarda meros qilib olingan sarlavhalarni o'chirib qo'yish imkoniyati mavjud.
  • Bekor qilish/Qayta qilish. Faqat tugunlarni tahrirlashda emas, balki loyiha tuzilishini o'zgartiradigan ko'chirish, o'chirish, nomini o'zgartirish va boshqa operatsiyalarda ham ishlaydi.
  • So'rovlarga biriktirilgan fayllar loyihaning bir qismiga aylanadi va Postmandan farqli o'laroq, mukammal sinxronlashtirilgan holda u bilan birga saqlanadi. (Ha, endi har safar boshlaganingizda fayllarni qo'lda tanlash va ularni arxivdagi hamkasblarga topshirishingiz shart emas)

Yo'lda allaqachon mavjud xususiyatlar

Biz keyingi nashrlarda maxfiylik pardasini ko'tarish vasvasasiga qarshi tura olmadik, ayniqsa funksionallik juda mazali bo'lsa va nashrdan oldin jilolanayotgan bo'lsa. Xullas, uchrashamiz.

Vazifalar

Ma'lumki, Postman qiymatlarni yaratish uchun dinamik o'zgaruvchilardan foydalanadi. Ularning ro'yxati juda ta'sirli va funktsiyalarning katta qismi soxta qiymatlarni yaratish uchun ishlatiladi. Masalan, tasodifiy elektron pochta xabarini yaratish uchun siz quyidagilarni yozishingiz kerak:

{{$randomEmail}}

Biroq, bu o'zgaruvchilar bo'lgani uchun (dinamik bo'lsa ham), ularni funksiya sifatida ishlatib bo'lmaydi: ularni parametrlash mumkin emas, shuning uchun satrdan xeshni olish mumkin bo'lmaydi.

Biz TestMace-ga "halol" funktsiyalarni qo'shishni rejalashtirmoqdamiz. ${} ichida faqat o'zgaruvchiga kirish emas, balki funksiyani chaqirish ham mumkin bo'ladi. Bular. Agar siz mashhur soxta elektron pochta xabarini yaratishingiz kerak bo'lsa, biz shunchaki yozamiz

${faker.internet.email()}

Bu funktsiya ekanligiga qo'shimcha ravishda, siz ob'ektda usulni chaqirish mumkinligini sezasiz. Va dinamik o'zgaruvchilarning katta tekis ro'yxati o'rniga bizda mantiqiy guruhlangan ob'ektlar to'plami mavjud.

Agar satrning xeshini hisoblamoqchi bo'lsak-chi? Osonlik bilan!

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

Siz hatto o'zgaruvchilarni parametr sifatida o'tkazishingiz mumkinligini sezasiz! Bu vaqtda qiziquvchan o'quvchi nimadir noto'g'ri ekanligiga shubha qilishi mumkin ...

Ifodalarda JavaScript-dan foydalanish

... Va yaxshi sababga ko'ra! Funktsiyalarga qo'yiladigan talablar shakllanayotganda, biz to'satdan haqiqiy javascriptni ifodalarda yozish kerak degan xulosaga keldik. Shunday qilib, endi siz quyidagi kabi iboralarni yozishingiz mumkin:

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

Va bularning barchasi skriptlarsiz, to'g'ridan-to'g'ri kirish maydonlarida!

Postmanga kelsak, bu erda siz faqat o'zgaruvchilardan foydalanishingiz mumkin va siz eng kichik ifodani yozishga harakat qilganingizda, validator uni la'natlaydi va hisoblashdan bosh tortadi.

Nima uchun TestMace Postmandan yaxshiroq

Kengaytirilgan avtomatik toΚ»ldirish

Hozirda TestMace-da shunday ko'rinadigan standart avtomatik to'ldirish mavjud:

Nima uchun TestMace Postmandan yaxshiroq

Bu erda, avtomatik to'ldirish qatoriga qo'shimcha ravishda, bu chiziq nimaga tegishli ekanligi ko'rsatilgan. Bu mexanizm faqat ${} qavslar bilan o'ralgan ifodalarda ishlaydi.

Ko'rib turganingizdek, o'zgaruvchining turini (masalan, satr, raqam, massiv va boshqalar) ko'rsatadigan vizual markerlar qo'shilgan. Shuningdek, siz avtoto'ldirish rejimlarini o'zgartirishingiz mumkin (masalan, o'zgaruvchilar yoki sarlavhalar bilan avtomatik to'ldirishni tanlashingiz mumkin). Ammo bu ham eng muhimi emas!

Birinchidan, avtoto'ldirish hatto ifodalarda ham ishlaydi (iloji bo'lsa). Bu shunday ko'rinadi:

Nima uchun TestMace Postmandan yaxshiroq

Ikkinchidan, avtoto'ldirish endi skriptlarda mavjud. Bu qanday ishlashini ko'ring!

Nima uchun TestMace Postmandan yaxshiroq

Ushbu funktsiyani Postman bilan taqqoslashning ma'nosi yo'q - avtoto'ldirish faqat o'zgaruvchilar, sarlavhalar va ularning qiymatlarining statik ro'yxati bilan cheklangan (agar biror narsani unutgan bo'lsam, meni to'g'rilang). Skriptlar avtomatik to'ldirilmaydi :)

xulosa

Oktyabr oyida mahsulotimiz ishlab chiqilishi boshlanganiga bir yil bo'ldi. Bu vaqt ichida biz koβ€˜p ishlarni uddaladik va qaysidir jihatlari bilan raqobatchilarimizga yetib oldik. Qanday bo'lmasin, bizning maqsadimiz API bilan ishlash uchun chinakam qulay vositani yaratishdir. Bizda hali ko'p ish bor, kelasi yil uchun loyihamizni rivojlantirishning taxminiy rejasi: https://testmace.com/roadmap.

Sizning fikr-mulohazalaringiz bizga ko'plab xususiyatlarni yaxshiroq boshqarish imkonini beradi va sizning yordamingiz bizga kuch va to'g'ri ish qilayotganimizga ishonch bag'ishlaydi. Shunday bo'ladiki, bugun bizning loyihamiz uchun muhim kun - TestMace nashr etilgan kun ProductHunt. Iltimos, loyihamizni qo'llab-quvvatlang, bu biz uchun juda muhim. Bundan tashqari, bugungi kunda bizning PH sahifamizda jozibali taklif bor va u cheklangan

Manba: www.habr.com

a Izoh qo'shish