TestMace - API bilan ishlash uchun kuchli IDE

Hammaga salom! Bugun biz IT ommasiga o'z mahsulotimizni - API bilan ishlash uchun IDEni taqdim qilmoqchimiz TestMace. Ehtimol, ba'zilaringiz biz haqimizda allaqachon bilgandir oldingi maqolalar. Biroq, asbobni har tomonlama ko'rib chiqish yo'q, shuning uchun biz bu baxtsiz kamchilikni bartaraf qilamiz.

TestMace - API bilan ishlash uchun kuchli IDE

Motivatsiya

Men, aslida, biz bu hayotga qanday kelganimizdan va API bilan ilg'or ishlash uchun o'z vositamizni yaratishga qaror qilganimizdan boshlamoqchiman. Keling, mahsulotda bo'lishi kerak bo'lgan funktsiyalar ro'yxatidan boshlaylik, bu haqda, bizning fikrimizcha, bu "API bilan ishlash uchun IDE" deb aytishimiz mumkin:

  • So'rovlar va skriptlarni yaratish va bajarish (so'rovlar ketma-ketligi)
  • Har xil turdagi testlarni yozish
  • Sinov ishlab chiqarish
  • API tavsiflari bilan ishlash, jumladan Swagger, OpenAPI, WADL va boshqalar kabi formatlardan import qilish.
  • Masxara so'rovlari
  • Skriptlarni yozish uchun bir yoki bir nechta tillarni yaxshi qo'llab-quvvatlash, shu jumladan mashhur kutubxonalar bilan integratsiya
  • va hokazo.

Ro'yxat sizning didingizga qarab kengaytirilishi mumkin. Bundan tashqari, nafaqat IDE-ning o'zi, balki bulutli sinxronizatsiya, buyruq qatori vositalari, onlayn monitoring xizmati va boshqalar kabi ma'lum bir infratuzilmani yaratish muhimdir. Oxir-oqibat, so'nggi yillarning tendentsiyalari bizga nafaqat dasturning kuchli funksionalligini, balki uning yoqimli interfeysini ham talab qiladi.

Bunday vosita kimga kerak? Shubhasiz, hech bo'lmaganda API-larni ishlab chiqish va sinovdan o'tkazish bilan bog'liq bo'lganlarning barchasi ishlab chiquvchilar va sinovchilardir =). Bundan tashqari, agar birinchisi uchun ko'pincha bitta so'rovlar va oddiy skriptlarni bajarish etarli bo'lsa, u holda testerlar uchun bu asosiy vositalardan biri bo'lib, u boshqa narsalar qatorida ularni ishga tushirish qobiliyatiga ega testlarni yozish uchun kuchli mexanizmni o'z ichiga olishi kerak. CI.

Shunday qilib, ushbu ko'rsatmalarga amal qilib, biz mahsulotimizni yaratishni boshladik. Keling, ushbu bosqichda nimaga erishganimizni ko'rib chiqaylik.

Tez boshlash

Ilova bilan birinchi tanishuvdan boshlaylik. Siz uni yuklab olishingiz mumkin bizning veb-saytimizda. Ayni paytda barcha uchta asosiy platformalar qo'llab-quvvatlanadi - Windows, Linux, MacOS. Yuklab oling, o'rnating, ishga tushiring. Uni birinchi marta ishga tushirganingizda, siz quyidagi oynani ko'rishingiz mumkin:

TestMace - API bilan ishlash uchun kuchli IDE

Birinchi so'rovingizni yaratish uchun kontent maydonining yuqori qismidagi ortiqcha belgisini bosing. So'rovlar yorlig'i quyidagicha ko'rinadi:

TestMace - API bilan ishlash uchun kuchli IDE

Keling, buni batafsil ko'rib chiqaylik. So'rov interfeysi mashhur dam olish mijozlarining interfeysiga juda o'xshaydi, bu shunga o'xshash vositalardan migratsiyani osonlashtiradi. Keling, url-ga birinchi so'rovni qilaylik https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - API bilan ishlash uchun kuchli IDE

Umuman olganda, birinchi qarashda, javob paneli ham hech qanday kutilmagan hodisalar keltirmaydi. Biroq, men sizning e'tiboringizni ba'zi fikrlarga qaratmoqchiman:

  1. Javobning tanasi birinchi navbatda ma'lumot tarkibini qo'shadigan, ikkinchidan, quyida qaysi bir nechta qiziqarli xususiyatlarni qo'shishga imkon beradigan daraxt shaklida ifodalanadi.
  2. Berilgan so'rov uchun testlar ro'yxatini ko'rsatadigan "Tasdiqlar" yorlig'i mavjud

Ko'rib turganingizdek, bizning vositamiz qulay dam olish mijozi sifatida ishlatilishi mumkin. Biroq, agar uning imkoniyatlari faqat so'rovlarni yuborish bilan cheklangan bo'lsa, biz bu erda bo'lmas edik. Keyinchalik, TestMace-ning asosiy tushunchalari va funksionalligini tasvirlab beraman.

Asosiy tushunchalar va xususiyatlar

Tugun

TestMace funksionalligi har xil turdagi tugunlarga bo'linadi. Yuqoridagi misolda biz RequestStep tugunining ishlashini namoyish qildik. Biroq, endi ilovada quyidagi turdagi tugunlar ham mavjud:

  • Request Step. Bu so'rov yaratishingiz mumkin bo'lgan tugun. U faqat bitta Tasdiqlash tuguniga pastki element sifatida ega bo'lishi mumkin.
  • Tasdiqlash. Tugun testlarni yozish uchun ishlatiladi. Faqat RequestStep tugunining bola tugunlari bo'lishi mumkin.
  • Jild. Folder va RequestStep tugunlarini o'z ichiga guruhlash imkonini beradi.
  • Loyiha. Bu loyiha yaratilganda avtomatik ravishda yaratilgan ildiz tugunidir. Aks holda, u Folder tugunining funksiyasini takrorlaydi.
  • Havola. Papka yoki RequestStep tuguniga havola. So'rovlar va skriptlarni qayta ishlatish imkonini beradi.
  • va hokazo.

Tugunlar tirnalgan joylarda (pastki chapdagi panel, "bir martalik" so'rovlarni tezda yaratish uchun ishlatiladi) va loyihalarda (yuqori chapdagi panel), biz batafsilroq to'xtalib o'tamiz.

Loyiha

Ilovani ishga tushirganingizda, yuqori chap burchakda yolg'iz Loyiha qatorini ko'rishingiz mumkin. Bu loyiha daraxtining ildizi. Loyihani boshlaganingizda, vaqtinchalik loyiha yaratiladi, uning yo'li operatsion tizimingizga bog'liq. Istalgan vaqtda loyihani o'zingiz uchun qulay joyga ko'chirishingiz mumkin.

Loyihaning asosiy maqsadi fayl tizimidagi ishlanmalarni saqlash va ularni versiyalarni boshqarish tizimlari orqali yanada sinxronlashtirish, CI-da skriptlarni ishga tushirish, o'zgarishlarni ko'rib chiqish va hk.

O'zgaruvchilar

O'zgaruvchilar dasturning asosiy mexanizmlaridan biridir. TestMace kabi vositalar bilan ishlaydiganlar, biz nima haqida gapirayotganimiz haqida allaqachon tasavvurga ega bo'lishi mumkin. Shunday qilib, o'zgaruvchilar umumiy ma'lumotlarni saqlash va tugunlar o'rtasida aloqa qilish usulidir. Analog, masalan, Postman yoki Insomnia'dagi muhit o'zgaruvchilari. Biroq, biz oldinga bordik va mavzuni ishlab chiqdik. TestMace-da o'zgaruvchilar tugun darajasida o'rnatilishi mumkin. Har qanday. Shuningdek, o‘zgaruvchilarni ajdodlardan meros qilib olish va avlodlarda bir-biriga o‘xshash o‘zgaruvchilarni olish mexanizmi ham mavjud. Bundan tashqari, bir qator o'rnatilgan o'zgaruvchilar mavjud, o'rnatilgan o'zgaruvchilarning nomlari bilan boshlanadi $. Mana ulardan ba'zilari:

  • $prevStep — oldingi tugunning oʻzgaruvchilariga havola
  • $nextStep — keyingi tugunning oʻzgaruvchilariga havola
  • $parent - xuddi shunday, lekin faqat ajdod uchun
  • $response - serverdan javob
  • $env - joriy muhit o'zgaruvchilari
  • $dynamicVar - skript yoki so'rovni bajarish jarayonida yaratilgan dinamik o'zgaruvchilar

$env - bular mohiyatan oddiy Loyiha tugunlari darajasidagi oʻzgaruvchilardir, ammo muhit oʻzgaruvchilari toʻplami tanlangan muhitga qarab oʻzgaradi.

O'zgaruvchiga kirish orqali ${variable_name}
O'zgaruvchining qiymati boshqa o'zgaruvchi yoki hatto butun ifoda bo'lishi mumkin. Misol uchun, url o'zgaruvchisi kabi ifoda bo'lishi mumkin
http://${host}:${port}/${endpoint}.

Skriptni bajarish paytida o'zgaruvchilarni tayinlash imkoniyatini alohida ta'kidlash kerak. Masalan, muvaffaqiyatli kirishdan so'ng serverdan kelgan avtorizatsiya ma'lumotlarini (token yoki butun sarlavha) saqlash zarurati ko'pincha mavjud. TestMace sizga bunday ma'lumotlarni ajdodlardan birining dinamik o'zgaruvchilariga saqlashga imkon beradi. Mavjud "statik" o'zgaruvchilar bilan to'qnashuvning oldini olish uchun dinamik o'zgaruvchilar alohida ob'ektga joylashtiriladi. $dynamicVar.

Skriptlar

Yuqoridagi barcha xususiyatlardan foydalanib, siz butun so'rov skriptlarini ishga tushirishingiz mumkin. Masalan, ob'ekt yaratish -> ob'ektni so'rash -> ob'ektni o'chirish. Bunday holda, masalan, bir nechta RequestStep tugunlarini guruhlash uchun Folder tugunidan foydalanishingiz mumkin.

Avtoto'ldirish va ifodani ta'kidlash

O'zgaruvchilar bilan qulay ishlash uchun (va nafaqat) avtomatik to'ldirish kerak. Va, albatta, ma'lum bir o'zgaruvchining nimaga tengligini tushuntirishni oson va qulayroq qilish uchun ifoda qiymatini ajratib ko'rsatish. Yuz marta eshitgandan ko'ra, bir marta ko'rgan ma'qul bo'lsa, aynan shunday:

TestMace - API bilan ishlash uchun kuchli IDE

Shuni ta'kidlash kerakki, avtoto'ldirish nafaqat o'zgaruvchilar uchun, balki, masalan, sarlavhalar, ma'lum sarlavhalarning qiymatlari (masalan, Content-Type sarlavhasi uchun avtomatik to'ldirish), protokollar va boshqalar uchun ham amalga oshiriladi. Ilova o'sishi bilan ro'yxat doimiy ravishda yangilanadi.

Bekor qilish/qayta tiklash

O'zgarishlarni bekor qilish/qayta bajarish juda qulay narsa, lekin negadir u hamma joyda qo'llanilmaydi (va API bilan ishlash vositalari bundan mustasno emas). Lekin biz ulardan biri emasmiz!) Biz butun loyiha davomida bekor qilish/qayta tiklash funksiyasini amalga oshirdik, bu sizga nafaqat muayyan tugunni tahrirlashni, balki uni yaratish, oʻchirish, harakatlantirish va hokazolarni ham bekor qilish imkonini beradi. Eng muhim operatsiyalar tasdiqlashni talab qiladi.

Testlarni yaratish

Tasdiqlash tugunlari testlarni yaratish uchun javobgardir. Asosiy xususiyatlardan biri dasturlashsiz, o'rnatilgan muharrirlardan foydalangan holda testlarni yaratish qobiliyatidir.

Tasdiqlash tuguni tasdiqlar to'plamidan iborat. Har bir tasdiqning o'ziga xos turi bor, hozirgi vaqtda bir necha turdagi tasdiqlar mavjud

  1. Qiymatlarni solishtiring - oddiygina 2 qiymatni solishtiring. Bir nechta taqqoslash operatorlari mavjud: teng, teng emas, kattaroq, kattaroq yoki teng, kichik, kichik yoki teng.

  2. Qiymatni o'z ichiga oladi - satrda pastki qatorning paydo bo'lishini tekshiradi.

  3. XPath - XML-dagi selektorda ma'lum bir qiymat mavjudligini tekshiradi.

  4. JavaScript-ni tasdiqlash - bu ixtiyoriy JavaScript skripti bo'lib, muvaffaqiyatda rost, muvaffaqiyatsizlikda esa yolg'on qaytaradi.

Shuni ta'kidlaymanki, faqat oxirgisi foydalanuvchidan dasturlash ko'nikmalarini talab qiladi, qolgan 3 ta tasdiq grafik interfeys yordamida yaratilgan. Bu erda, masalan, taqqoslash qiymatlarini tasdiqlashni yaratish uchun dialog qanday ko'rinishga ega:

TestMace - API bilan ishlash uchun kuchli IDE

Kek ustidagi krem ​​- bu javoblardan tezda tasdiqlarni yaratish, shunchaki qarang!

TestMace - API bilan ishlash uchun kuchli IDE

Biroq, bunday da'volar aniq cheklovlarga ega, siz ularni engish uchun JavaScript tasdiqlashidan foydalanishni xohlashingiz mumkin. Va bu erda TestMace shuningdek, avtoto'ldirish, sintaksisni ta'kidlash va hatto statik analizator bilan qulay muhitni ta'minlaydi.

API tavsifi

TestMace nafaqat API dan foydalanishga, balki uni hujjatlashtirishga ham imkon beradi. Bundan tashqari, tavsifning o'zi ham ierarxik tuzilishga ega va loyihaning qolgan qismiga organik ravishda mos keladi. Bundan tashqari, hozirda Swagger 2.0 / OpenAPI 3.0 formatlaridan API tavsiflarini import qilish mumkin. Tavsifning o'zi shunchaki o'lik vaznga ega emas, balki loyihaning qolgan qismi bilan chambarchas integratsiyalashgan, xususan, URL manzillarini, HTTP sarlavhalarini, so'rov parametrlarini va boshqalarni avtomatik to'ldirish mavjud va kelajakda biz testlarni qo'shishni rejalashtirmoqdamiz. javobning API tavsifiga muvofiqligi uchun.

Ulashish tugun

Vaziyat: muammoli so'rovni yoki hatto butun skriptni hamkasbingiz bilan baham ko'rishni xohlaysiz yoki uni xatoga qo'shmoqchisiz. TestMace bu holatni ham qamrab oladi: ilova istalgan tugunni va hatto URL-dagi pastki daraxtni ketma-ketlashtirishga imkon beradi. Nusxa ko'chiring va so'rovni boshqa mashina yoki loyihaga osongina o'tkazishingiz mumkin.

Inson tomonidan o'qiladigan loyihani saqlash formati

Hozirgi vaqtda har bir tugun yml kengaytmali alohida faylda (Assertion tugunidagi kabi) yoki tugun nomi va undagi index.yml fayli joylashgan papkada saqlanadi.
Misol uchun, yuqoridagi ko'rib chiqishda biz qilgan so'rov fayli shunday ko'rinadi:

index.yml

children: []
variables: {}
type: RequestStep
assignVariables: []
requestData:
  request:
    method: GET
    url: 'https://next.json-generator.com/api/json/get/NJv-NT-U8'
  headers: []
  disabledInheritedHeaders: []
  params: []
  body:
    type: Json
    jsonBody: ''
    xmlBody: ''
    textBody: ''
    formData: []
    file: ''
    formURLEncoded: []
  strictSSL: Inherit
authData:
  type: inherit
name: Scratch 1

Ko'rib turganingizdek, hamma narsa juda aniq. Agar so'ralsa, ushbu formatni qo'lda osongina tahrirlash mumkin.

Fayl tizimidagi papkalar ierarxiyasi loyihadagi tugunlar ierarxiyasini to'liq takrorlaydi. Masalan, skript:

TestMace - API bilan ishlash uchun kuchli IDE

Fayl tizimini quyidagi tuzilishga moslashtiradi (faqat papka ierarxiyasi ko'rsatilgan, ammo mohiyati aniq)

TestMace - API bilan ishlash uchun kuchli IDE

Bu loyihani ko'rib chiqish jarayonini osonlashtiradi.

Pochtachidan import qilish

Yuqoridagilarning barchasini o'qib chiqqandan so'ng, ba'zi foydalanuvchilar yangi mahsulotni sinab ko'rishni xohlashadi (to'g'rimi?) yoki (nima hazil emas!) uni o'z loyihasida to'liq ishlatishadi. Biroq, migratsiya bir xil Postmandagi ko'plab o'zgarishlar bilan to'xtatilishi mumkin. Bunday holatlar uchun TestMace Postman-dan to'plamlarni import qilishni qo'llab-quvvatlaydi. Ayni paytda sinovsiz import qo'llab-quvvatlanmoqda, ammo kelajakda ularni qo'llab-quvvatlashni istisno qilmaymiz.

rejalari

Umid qilamanki, shu paytgacha o'qiganlarning ko'pchiligi bizning mahsulotimizni yoqtirgan. Biroq, bu hammasi emas! Mahsulot ustida ish qizg'in davom etmoqda va biz tez orada qo'shishni rejalashtirgan ba'zi xususiyatlar.

Bulutli sinxronlash

Eng ko'p talab qilinadigan xususiyatlardan biri. Ayni paytda biz sinxronizatsiya uchun versiyalarni boshqarish tizimlaridan foydalanishni taklif qilamiz, buning uchun biz ushbu turdagi saqlash uchun formatni yanada qulayroq qilamiz. Biroq, bu ish jarayoni hamma uchun mos emas, shuning uchun biz serverlarimiz orqali ko'pchilikka tanish bo'lgan sinxronizatsiya mexanizmini qo'shishni rejalashtirmoqdamiz.

CLI

Yuqorida aytib o'tilganidek, IDE darajasidagi mahsulotlar mavjud ilovalar yoki ish oqimlari bilan har qanday integratsiyasiz amalga oshirilmaydi. CLI aynan TestMace-da yozilgan testlarni uzluksiz integratsiya jarayoniga birlashtirish uchun zarur bo'lgan narsadir. CLI ustida ish qizg'in davom etmoqda; dastlabki versiyalar loyihani oddiy konsol hisoboti bilan ishga tushiradi. Kelajakda biz JUnit formatida hisobot chiqishini qo'shishni rejalashtirmoqdamiz.

Plagin tizimi

Bizning vositamizning barcha kuchiga qaramay, echimlarni talab qiladigan holatlar to'plami cheksizdir. Axir, ma'lum bir loyihaga xos bo'lgan vazifalar mavjud. Shuning uchun kelajakda biz plaginlarni ishlab chiqish uchun SDK qo'shishni rejalashtirmoqdamiz va har bir ishlab chiquvchi o'z xohishiga ko'ra funksionallikni qo'shishi mumkin.

Tugun turlari doirasini kengaytirish

Ushbu tugunlar to'plami foydalanuvchi tomonidan talab qilinadigan barcha holatlarni qamrab olmaydi. Qo'shilishi rejalashtirilgan tugunlar:

  • Skript tuguni - js va tegishli API yordamida ma'lumotlarni o'zgartiradi va joylashtiradi. Ushbu turdagi tugunlardan foydalanib, siz Postman-da so'rovdan oldingi va so'rovdan keyingi skriptlar kabi narsalarni qilishingiz mumkin.
  • GraphQL tugun - graphql qo'llab-quvvatlash
  • Maxsus tasdiqlash tuguni - loyihadagi mavjud tasdiqlar to'plamini kengaytirish imkonini beradi
    Tabiiyki, bu yakuniy ro'yxat emas, u boshqa narsalar qatori sizning fikr-mulohazalaringiz tufayli doimiy ravishda yangilanib turadi.

FAQ

Pochtachidan nimasi bilan farq qilasiz?

  1. Loyihaning funksionalligini deyarli cheksiz darajada kengaytirish imkonini beruvchi tugunlar kontseptsiyasi
  2. Fayl tizimida saqlash bilan inson tomonidan o'qiladigan loyiha formati, bu versiyani boshqarish tizimlaridan foydalangan holda ishni soddalashtiradi
  3. Test muharririda dasturlashsiz va ilg'or JS-ni qo'llab-quvvatlamasdan testlarni yaratish qobiliyati (avtomatik yakunlash, statik analizator)
  4. Kengaytirilgan avtomatik to'ldirish va o'zgaruvchilarning joriy qiymatini ajratib ko'rsatish

Bu ochiq manba mahsulotmi?

Yo'q, hozirda manbalar yopiq, ammo kelajakda biz manbalarni ochish imkoniyatini ko'rib chiqmoqdamiz.

Siz nima bilan yashaysiz?)

Bepul versiya bilan bir qatorda biz mahsulotning pullik versiyasini chiqarishni rejalashtirmoqdamiz. U birinchi navbatda server tomonini talab qiladigan narsalarni, masalan, sinxronizatsiyani o'z ichiga oladi.

xulosa

Bizning loyihamiz barqaror nashrga qadam tashlamoqda. Biroq, mahsulot allaqachon ishlatilishi mumkin va bizning dastlabki foydalanuvchilarning ijobiy fikrlari buning dalilidir. Biz fikr-mulohazalarni faol ravishda yig'amiz, chunki hamjamiyat bilan yaqin hamkorliksiz yaxshi vositani yaratish mumkin emas. Bizni bu yerda topishingiz mumkin:

Grant rasmiy veb-sayti

Telegram

bo'shashmasdan

Facebook

Muammolarni kuzatuvchisi

Sizning istak va takliflaringizni kutamiz!

Manba: www.habr.com

a Izoh qo'shish