TestMace - API ilə işləmək üçün güclü IDE

Hamıya salam! Bu gün biz İT ictimaiyyətinə məhsulumuzu - API ilə işləmək üçün IDE təqdim etmək istəyirik TestMace. Ola bilsin ki, bəziləriniz bizim haqqımızda artıq bilirsiniz əvvəlki məqalələr. Bununla belə, alətlə bağlı hərtərəfli nəzərdən keçirilməmişdir, ona görə də bu uğursuz çatışmazlığı aradan qaldırırıq.

TestMace - API ilə işləmək üçün güclü IDE

Motivasiya

Başlamaq istərdim ki, əslində bu həyata necə gəldik və API ilə qabaqcıl iş üçün öz alətimizi yaratmağa qərar verdik. Bir məhsulun olması lazım olan funksionallıq siyahısından başlayaq, bu barədə fikrimizcə, bunun "APİ-lərlə işləmək üçün IDE" olduğunu söyləyə bilərik:

  • Sorğuların və skriptlərin yaradılması və icrası (sorğuların ardıcıllığı)
  • Müxtəlif növ testlərin yazılması
  • Test nəsli
  • API təsvirləri ilə işləmək, o cümlədən Swagger, OpenAPI, WADL və s. kimi formatlardan idxal etmək.
  • İstehza tələbləri
  • Məşhur kitabxanalarla inteqrasiya da daxil olmaqla skriptlərin yazılması üçün bir və ya bir neçə dil üçün yaxşı dəstək
  • və s.

Siyahı zövqünüzə uyğun olaraq genişləndirilə bilər. Üstəlik, təkcə IDE-nin özünü deyil, həm də bulud sinxronizasiyası, komanda xətti alətləri, onlayn monitorinq xidməti və s. kimi müəyyən bir infrastruktur yaratmaq vacibdir. Nəhayət, son illərin tendensiyaları bizə tətbiqin yalnız güclü funksionallığını deyil, həm də xoş interfeysini diktə edir.

Belə bir vasitə kimə lazımdır? Aydındır ki, ən azı bir şəkildə API-lərin inkişafı və sınaqdan keçirilməsi ilə əlaqəli olanların hamısı tərtibatçılar və sınaqçılardır =). Üstəlik, əgər birincisi üçün tək sorğuları və sadə skriptləri yerinə yetirmək çox vaxt kifayətdirsə, testçilər üçün bu, digər şeylərlə yanaşı, onları işə salmaq imkanı ilə testlər yazmaq üçün güclü mexanizm ehtiva etməli olan əsas vasitələrdən biridir. CI.

Beləliklə, bu qaydalara əməl edərək məhsulumuzu yaratmağa başladıq. Gəlin görək bu mərhələdə nəyə nail olmuşuq.

Tez başlanğıc

Tətbiqlə ilk tanışlıqdan başlayaq. Siz onu yükləyə bilərsiniz veb saytımızda. Hazırda bütün 3 əsas platforma dəstəklənir - Windows, Linux, MacOS. Yükləyin, quraşdırın, işə salın. Onu ilk dəfə işə saldığınız zaman aşağıdakı pəncərəni görə bilərsiniz:

TestMace - API ilə işləmək üçün güclü IDE

İlk sorğunuzu yaratmaq üçün məzmun sahəsinin yuxarısındakı artı işarəsinə klikləyin. Sorğu nişanı belə görünür:

TestMace - API ilə işləmək üçün güclü IDE

Gəlin buna daha ətraflı baxaq. Sorğu interfeysi məşhur istirahət müştərilərinin interfeysinə çox bənzəyir, bu da oxşar alətlərdən miqrasiyanı asanlaşdırır. Gəlin url-ə ilk sorğumuzu edək https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - API ilə işləmək üçün güclü IDE

Ümumiyyətlə, ilk baxışdan cavab paneli də heç bir sürpriz yaratmır. Bununla belə, bəzi məqamlara diqqətinizi çəkmək istərdim:

  1. Cavabın gövdəsi ilk növbədə məlumat məzmununu əlavə edən, ikincisi, aşağıda olan bəzi maraqlı xüsusiyyətləri əlavə etməyə imkan verən ağac şəklində təmsil olunur.
  2. Verilmiş sorğu üçün testlərin siyahısını göstərən Təsdiqlər sekmesi var

Gördüyünüz kimi, alətimiz rahat istirahət müştərisi kimi istifadə edilə bilər. Ancaq onun imkanları yalnız sorğu göndərməklə məhdudlaşsaydı, biz burada olmazdıq. Sonra TestMace-in əsas anlayışlarını və funksionallığını təsvir edəcəyəm.

Əsas anlayışlar və xüsusiyyətlər

Node

TestMace funksionallığı müxtəlif növ qovşaqlara bölünür. Yuxarıdakı nümunədə biz RequestStep qovşağının işini nümayiş etdirdik. Bununla belə, indi tətbiqdə aşağıdakı qovşaq növləri də mövcuddur:

  • Request Step. Bu, sorğu yarada biləcəyiniz qovşaqdır. O, uşaq element kimi yalnız bir Təsdiq qovşağına malik ola bilər.
  • İddia. Düyün testləri yazmaq üçün istifadə olunur. Yalnız RequestStep qovşağının uşaq qovşağı ola bilər.
  • Qovluq. Qovluq və RequestStep qovşaqlarını öz daxilində qruplaşdırmağa imkan verir.
  • Layihə. Bu, layihə yaradılan zaman avtomatik olaraq yaradılan kök nodedur. Əks təqdirdə, Qovluq qovşağının funksionallığını təkrarlayır.
  • Link. Qovluq və ya RequestStep qovşağına keçid. Sorğuları və skriptləri təkrar istifadə etməyə imkan verir.
  • və s.

Qovşaqlar cızıqlarda (sol altındakı panel, tez “birdəfəlik” sorğular yaratmaq üçün istifadə olunur) və layihələrdə (yuxarı solda olan panel) yerləşir.

Layihə

Tətbiqi işə saldığınız zaman yuxarı sol küncdə tək Layihə xəttini görə bilərsiniz. Bu layihə ağacının köküdür. Layihəyə başladığınız zaman keçici layihə yaradılır, onun yolu əməliyyat sisteminizdən asılıdır. İstənilən vaxt layihəni sizin üçün əlverişli yerə köçürə bilərsiniz.

Layihənin əsas məqsədi fayl sistemindəki inkişafları saxlamaq və onları versiyaya nəzarət sistemləri vasitəsilə daha da sinxronlaşdırmaq, CI-də skriptləri işə salmaq, dəyişiklikləri nəzərdən keçirmək və s.

Dəyişənlər

Dəyişənlər tətbiqin əsas mexanizmlərindən biridir. TestMace kimi alətlərlə işləyənlərin artıq nə haqqında danışdığımız barədə təsəvvürləri ola bilər. Beləliklə, dəyişənlər ümumi məlumatları saxlamaq və qovşaqlar arasında əlaqə yaratmaq üçün bir yoldur. Analoq, məsələn, Postman və ya Insomnia-da mühit dəyişənləridir. Bununla belə, biz daha da irəli gedib mövzunu inkişaf etdirdik. TestMace-də dəyişənlər qovşaq səviyyəsində təyin edilə bilər. Hər hansı. Dəyişənlərin əcdadlardan miras alınması və nəsillərdə üst-üstə düşən dəyişənlərin mexanizmi də mövcuddur. Bundan əlavə, bir sıra daxili dəyişənlər var, daxili dəyişənlərin adları ilə başlayır $. Onlardan bəzilərini təqdim edirik:

  • $prevStep — əvvəlki node dəyişənlərinə keçid
  • $nextStep — növbəti node dəyişənlərinə keçid
  • $parent - eyni şey, ancaq əcdad üçün
  • $response - serverdən cavab
  • $env - cari mühit dəyişənləri
  • $dynamicVar - skript və ya sorğunun icrası zamanı yaradılmış dinamik dəyişənlər

$env - bunlar mahiyyətcə adi Layihə qovşağı səviyyəli dəyişənlərdir, lakin ətraf mühit dəyişənləri dəsti seçilmiş mühitdən asılı olaraq dəyişir.

Dəyişən vasitəsilə əldə edilir ${variable_name}
Dəyişənin dəyəri başqa dəyişən, hətta bütün ifadə ola bilər. Məsələn, url dəyişəni kimi bir ifadə ola bilər
http://${host}:${port}/${endpoint}.

Ayrı-ayrılıqda, skriptin icrası zamanı dəyişənlərin təyin edilməsinin mümkünlüyünü qeyd etmək lazımdır. Məsələn, uğurlu girişdən sonra serverdən gələn avtorizasiya məlumatlarını (token və ya bütün başlıq) saxlamaq üçün tez-tez ehtiyac var. TestMace bu cür məlumatları əcdadlardan birinin dinamik dəyişənlərində saxlamağa imkan verir. Artıq mövcud “statik” dəyişənlərlə toqquşmaların qarşısını almaq üçün dinamik dəyişənlər ayrıca obyektə yerləşdirilir. $dynamicVar.

Ssenarilər

Yuxarıda göstərilən bütün funksiyalardan istifadə edərək, bütün sorğu skriptlərini işlədə bilərsiniz. Məsələn, bir varlıq yaratmaq -> obyekti sorğulamaq -> obyekti silmək. Bu halda, məsələn, bir neçə RequestStep qovşağını qruplaşdırmaq üçün Qovluq qovşağından istifadə edə bilərsiniz.

Avtomatik tamamlama və ifadənin vurğulanması

Dəyişənlərlə rahat işləmək üçün (yalnız deyil) avtomatik tamamlama lazımdır. Və təbii ki, konkret dəyişənin nəyə bərabər olduğunu aydınlaşdırmağı asanlaşdırmaq və daha rahat etmək üçün ifadənin dəyərini vurğulamaq. Bu, yüz dəfə eşitməkdənsə, bir dəfə görmək daha yaxşıdır:

TestMace - API ilə işləmək üçün güclü IDE

Qeyd etmək lazımdır ki, avtomatik tamamlama təkcə dəyişənlər üçün deyil, həm də məsələn, başlıqlar, müəyyən başlıqların dəyərləri (məsələn, Məzmun Tipi başlıq üçün avtomatik tamamlama), protokollar və daha çox şey üçün həyata keçirilir. Tətbiq böyüdükcə siyahı daim yenilənir.

Geri al/təkrar et

Dəyişikliklərin ləğvi/yenidən edilməsi çox rahat bir şeydir, lakin nədənsə hər yerdə tətbiq edilmir (və API-lərlə işləmək üçün alətlər istisna deyil). Lakin biz onlardan deyilik!) Biz bütün layihə boyu geri al/təkrar əməliyyatını həyata keçirmişik ki, bu da sizə yalnız müəyyən bir node redaktə etməyi deyil, həm də onun yaradılmasını, silinməsini, hərəkətini və s. Ən kritik əməliyyatlar təsdiq tələb edir.

Testlərin yaradılması

Təsdiq nodu testlərin yaradılmasına cavabdehdir. Əsas xüsusiyyətlərdən biri proqramlaşdırmadan, daxili redaktorlardan istifadə edərək testlər yaratmaq imkanıdır.

Təsdiq nodu bir sıra təsdiqlərdən ibarətdir. Hər bir təsdiqin öz növü var, hazırda bir neçə növ təsdiq var

  1. Dəyərləri müqayisə edin - sadəcə 2 dəyəri müqayisə edin. Bir neçə müqayisə operatoru var: bərabər, bərabər deyil, böyük, böyük və ya bərabər, kiçik, kiçik və ya bərabər.

  2. Dəyəri ehtiva edir - sətirdə alt sətirin baş verməsini yoxlayır.

  3. XPath - XML-də seçicinin müəyyən bir dəyəri ehtiva etdiyini yoxlayır.

  4. JavaScript təsdiqi müvəffəqiyyətdə doğru, uğursuzluqda isə yalan qaytaran ixtiyari javascript skriptidir.

Qeyd edim ki, yalnız sonuncu istifadəçidən proqramlaşdırma bacarığı tələb edir, digər 3 təsdiq qrafik interfeysdən istifadə etməklə yaradılır. Burada, məsələn, müqayisə dəyərləri təsdiqini yaratmaq üçün dialoq belə görünür:

TestMace - API ilə işləmək üçün güclü IDE

Tortun üzərindəki buzlanma, cavablardan tez bir zamanda iddiaların yaradılmasıdır, sadəcə ona baxın!

TestMace - API ilə işləmək üçün güclü IDE

Bununla belə, bu cür iddiaların aşkar məhdudiyyətləri var ki, onları aradan qaldırmaq üçün javascript təsdiqindən istifadə etmək istəyə bilərsiniz. Və burada TestMace avtomatik tamamlama, sintaksis işıqlandırma və hətta statik analizator ilə rahat mühit təmin edir.

API Təsviri

TestMace sizə nəinki API-dən istifadə etməyə, həm də onu sənədləşdirməyə imkan verir. Üstəlik, təsvirin özü də iyerarxik bir quruluşa malikdir və layihənin qalan hissəsinə üzvi şəkildə uyğun gəlir. Bundan əlavə, hazırda Swagger 2.0 / OpenAPI 3.0 formatlarından API təsvirlərini idxal etmək mümkündür. Təsvirin özü sadəcə ölü çəki deyil, layihənin qalan hissəsi ilə sıx inteqrasiya olunur, xüsusən URL-lərin, HTTP başlıqlarının, sorğu parametrlərinin və s.-nin avtomatik tamamlanması mövcuddur və gələcəkdə testlər əlavə etməyi planlaşdırırıq. cavabın API təsvirinə uyğunluğu üçün.

Paylaşma qovşağı

İş: problemli sorğunu və ya hətta bütöv bir skripti həmkarınızla bölüşmək və ya sadəcə onu səhvə əlavə etmək istərdiniz. TestMace bu işi də əhatə edir: proqram istənilən qovşağı və hətta URL-də alt ağacı seriallaşdırmağa imkan verir. Kopyala-yapışdırın və sorğunu asanlıqla başqa maşına və ya layihəyə köçürə bilərsiniz.

İnsan tərəfindən oxuna bilən layihə saxlama formatı

Hazırda hər bir qovşaq yml genişlənməsi ilə ayrıca faylda (Assertion node-da olduğu kimi) və ya qovluğun adı və içərisində index.yml faylı olan qovluqda saxlanılır.
Məsələn, yuxarıdakı araşdırmada etdiyimiz sorğu faylı belə görünür:

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

Gördüyünüz kimi, hər şey çox aydındır. İstəyirsinizsə, bu format asanlıqla əl ilə redaktə edilə bilər.

Fayl sistemindəki qovluqların iyerarxiyası layihədəki qovşaqların iyerarxiyasını tamamilə təkrarlayır. Məsələn, belə bir skript:

TestMace - API ilə işləmək üçün güclü IDE

Fayl sistemini aşağıdakı struktura uyğunlaşdırır (yalnız qovluq iyerarxiyası göstərilir, lakin mahiyyət aydındır)

TestMace - API ilə işləmək üçün güclü IDE

Bu, layihənin nəzərdən keçirilməsi prosesini asanlaşdırır.

Poçtalyondan idxal

Yuxarıdakıların hamısını oxuduqdan sonra bəzi istifadəçilər yeni məhsulu sınamaq (doğru?) və ya (nə cəhənnəm zarafat deyil!) onu öz layihələrində tamamilə istifadə etmək istəyəcəklər. Bununla belə, miqrasiya eyni Postmanda çox sayda inkişafla dayandırıla bilər. Belə hallar üçün TestMace Postman-dan kolleksiyaların idxalını dəstəkləyir. Hazırda sınaqsız idxala dəstək verilir, lakin gələcəkdə onların dəstəklənməsini də istisna etmirik.

Planlar

Ümid edirəm ki, bu günə qədər oxuyanların çoxu məhsulumuzu bəyənib. Bununla belə, hamısı deyil! Məhsul üzərində iş tam sürətlə gedir və tezliklə əlavə etməyi planlaşdırdığımız bəzi funksiyalar bunlardır.

Bulud sinxronizasiyası

Ən çox tələb olunan xüsusiyyətlərdən biri. Hazırda biz sinxronizasiya üçün versiya idarəetmə sistemlərindən istifadə etməyi təklif edirik, bunun üçün formatı bu tip saxlama üçün daha əlverişli edirik. Bununla belə, bu iş axını hər kəs üçün uyğun deyil, ona görə də serverlərimiz vasitəsilə çoxlarına tanış olan sinxronizasiya mexanizmini əlavə etməyi planlaşdırırıq.

CLI

Yuxarıda qeyd edildiyi kimi, IDE səviyyəli məhsullar mövcud proqramlar və ya iş axınları ilə hər cür inteqrasiya olmadan edə bilməz. CLI, TestMace-də yazılmış testləri davamlı inteqrasiya prosesinə inteqrasiya etmək üçün lazım olan şeydir. CLI üzərində iş tam sürətlə davam edir; ilkin versiyalar layihəni sadə konsol hesabatı ilə işə salacaq. Gələcəkdə biz JUnit formatında hesabat çıxışını əlavə etməyi planlaşdırırıq.

Plugin sistemi

Alətimizin bütün gücünə baxmayaraq, həllər tələb edən hallar dəsti sonsuzdur. Axı, müəyyən bir layihəyə xas olan vəzifələr var. Buna görə də biz gələcəkdə plaginlərin hazırlanması üçün SDK əlavə etməyi planlaşdırırıq və hər bir tərtibatçı öz zövqünə uyğun funksionallıq əlavə edə biləcək.

Düyün növlərinin diapazonunun genişləndirilməsi

Bu qovşaqlar dəsti istifadəçinin tələb etdiyi bütün halları əhatə etmir. Əlavə edilməsi planlaşdırılan qovşaqlar:

  • Skript node - js və müvafiq API istifadə edərək məlumatları çevirir və yerləşdirir. Bu tip qovşaqdan istifadə edərək, Postman-da əvvəlcədən sorğu və post-sorğu skriptləri kimi işlər görə bilərsiniz.
  • GraphQL node - graphql dəstəyi
  • Xüsusi təsdiq node - layihədə mövcud təsdiqlər dəstini genişləndirməyə imkan verəcək
    Təbii ki, bu, yekun siyahı deyil, o, digər məsələlərlə yanaşı, rəyiniz sayəsində daim yenilənəcək.

FAQ

Poçtalyondan nə ilə fərqlənirsiniz?

  1. Layihənin funksionallığını demək olar ki, sonsuz şəkildə genişləndirməyə imkan verən qovşaqlar konsepsiyası
  2. Versiyaya nəzarət sistemlərindən istifadə etməklə işi asanlaşdıran fayl sistemində saxlamaqla insan tərəfindən oxuna bilən layihə formatı
  3. Test redaktorunda proqramlaşdırma və daha təkmil js dəstəyi olmadan testlər yaratmaq bacarığı (avtomatik tamamlama, statik analizator)
  4. Təkmil avtomatik tamamlama və dəyişənlərin cari dəyərinin vurğulanması

Bu açıq mənbəli məhsuldur?

Xeyr, hazırda mənbələr bağlıdır, lakin gələcəkdə mənbələrin açılması imkanını nəzərdən keçiririk.

Nə ilə yaşayırsan?)

Pulsuz versiya ilə yanaşı, məhsulun pullu versiyasını da buraxmağı planlaşdırırıq. Bu, ilk növbədə server tərəfi tələb edən şeyləri, məsələn, sinxronizasiyanı əhatə edəcəkdir.

Nəticə

Layihəmiz sabit bir buraxılışa doğru sıçrayış və sərhədlərlə irəliləyir. Bununla belə, məhsul artıq istifadə edilə bilər və ilk istifadəçilərimizin müsbət rəyləri bunun sübutudur. Biz fəal şəkildə rəy toplayırıq, çünki icma ilə sıx əməkdaşlıq etmədən yaxşı alət yaratmaq mümkün deyil. Bizi burada tapa bilərsiniz:

Rəsmi saytında

Teleqram

Süstlük

Facebook

Problem izləyicisi

İstək və təkliflərinizi gözləyirik!

Mənbə: www.habr.com

Добавить комментарий