TestMace - API-тай ажиллах хүчирхэг IDE

Сайн уу! Өнөөдөр бид мэдээллийн технологийн олон нийтэд өөрийн бүтээгдэхүүн болох API-тай ажиллах IDE-ийг танилцуулахыг хүсч байна TestMace. Магадгүй та нарын зарим нь бидний талаар аль хэдийн мэддэг болсон байх өмнөх нийтлэлүүд. Гэсэн хэдий ч уг хэрэгслийн талаар иж бүрэн хяналт тавиагүй тул бид энэ харамсалтай дутагдлыг арилгах болно.

TestMace - API-тай ажиллах хүчирхэг IDE

Хүсэл тэмүүлэл

Чухамдаа бид энэ амьдралд хэрхэн ирж, API-тай дэвшилтэт ажиллах хэрэгсэл бүтээхээр шийдсэнээс эхэлмээр байна. Бүтээгдэхүүнд байх ёстой функцүүдийн жагсаалтаас эхэлье, бидний бодлоор үүнийг "API-тай ажиллах IDE" гэж хэлж болно.

  • Асуулга, скрипт үүсгэх, гүйцэтгэх (асуултуудын дараалал)
  • Төрөл бүрийн тест бичих
  • Туршилтын үе
  • Swagger, OpenAPI, WADL гэх мэт форматаас импортлох зэрэг API тайлбартай ажиллах.
  • Дооглох хүсэлтүүд
  • Скрипт бичих нэг буюу хэд хэдэн хэлийг сайн дэмждэг, үүнд алдартай номын сантай нэгтгэх боломжтой
  • гэх мэт.

Жагсаалтыг таны амтанд тохируулан өргөжүүлж болно. Үүнээс гадна, зөвхөн IDE өөрөө төдийгүй үүлэн синхрончлол, командын мөрийн хэрэгсэл, онлайн хяналтын үйлчилгээ гэх мэт тодорхой дэд бүтцийг бий болгох нь чухал юм. Эцсийн эцэст, сүүлийн жилүүдийн чиг хандлага нь зөвхөн програмын хүчирхэг функцийг төдийгүй тааламжтай интерфейсийг бидэнд зааж өгдөг.

Ийм хэрэгсэл хэнд хэрэгтэй вэ? Мэдээжийн хэрэг, API-г хөгжүүлэх, туршихтай ямар нэгэн байдлаар холбоотой бүх хүмүүс хөгжүүлэгчид, шалгагчид =). Түүнээс гадна, хэрэв эхнийх нь ганц асуулт, энгийн скриптүүдийг гүйцэтгэхэд хангалттай байдаг бол тестерүүдийн хувьд энэ нь бусад зүйлсийн дотор тест бичих хүчирхэг механизмыг агуулсан байх ёстой гол хэрэгслүүдийн нэг юм. CI.

Тиймээс бид эдгээр удирдамжийг дагаж бүтээгдэхүүнээ бүтээж эхэлсэн. Энэ үе шатанд ямар үр дүнд хүрсэнийг харцгаая.

Хурдан эхлэл

Аппликейшнтэй анх танилцаж эхэлцгээе. Та татаж авч болно манай вэбсайт дээр. Одоогийн байдлаар Windows, Linux, MacOS гэсэн гурван үндсэн платформыг дэмждэг. Татаж авах, суулгах, эхлүүлэх. Та үүнийг анх удаа эхлүүлэх үед дараах цонхыг харж болно.

TestMace - API-тай ажиллах хүчирхэг IDE

Анхны хүсэлтээ үүсгэхийн тулд агуулгын хэсгийн дээд талд байгаа нэмэх тэмдэг дээр дарна уу. Асуулгын таб дараах байдлаар харагдаж байна.

TestMace - API-тай ажиллах хүчирхэг IDE

Үүнийг илүү нарийвчлан авч үзье. Хүсэлтийн интерфэйс нь алдартай амралтын үйлчлүүлэгчдийн интерфейстэй маш төстэй бөгөөд энэ нь ижил төстэй хэрэгслүүдээс шилжих ажлыг хөнгөвчилдөг. Эхний хүсэлтийг url руу хийцгээе https://next.json-generator.com/api/json/get/NJv-NT-U8

TestMace - API-тай ажиллах хүчирхэг IDE

Ерөнхийдөө, эхний ээлжинд хариу өгөх самбар нь ямар ч гэнэтийн зүйл үүсгэдэггүй. Гэсэн хэдий ч би зарим зүйлд анхаарлаа хандуулахыг хүсч байна:

  1. Хариултын их биеийг мод хэлбэрээр дүрсэлсэн бөгөөд энэ нь нэгдүгээрт мэдээллийн агуулгыг нэмж, хоёрдугаарт, доор байгаа зарим сонирхолтой шинж чанаруудыг нэмэх боломжийг танд олгоно.
  2. Өгөгдсөн хүсэлтийн тестийн жагсаалтыг харуулдаг Баталгаажуулах таб байдаг

Таны харж байгаагаар манай хэрэгслийг тухтай амрах үйлчлүүлэгч болгон ашиглаж болно. Гэсэн хэдий ч, хэрэв түүний боломжууд зөвхөн хүсэлт илгээхээр хязгаарлагддаг бол бид энд байхгүй байх байсан. Дараа нь би TestMace-ийн үндсэн ойлголт, функцийг тоймлох болно.

Үндсэн ойлголт ба шинж чанарууд

Зангилаа

TestMace функц нь өөр өөр төрлийн зангилаанд хуваагддаг. Дээрх жишээн дээр бид RequestStep зангилааны ажиллагааг харуулсан. Гэсэн хэдий ч дараах төрлийн зангилаануудыг одоо аппликешнд ашиглах боломжтой.

  • Хүсэлтийн алхам. Энэ бол та хүсэлт үүсгэж болох зангилаа юм. Энэ нь зөвхөн нэг Баталгаажуулалтын зангилаа хүүхэд элементтэй байж болно.
  • Баталгаа. Зангилаа нь тест бичихэд ашиглагддаг. Зөвхөн RequestStep зангилааны хүүхэд зангилаа байж болно.
  • Хавтас. Folder болон RequestStep цэгүүдийг дотроо бүлэглэх боломжийг танд олгоно.
  • Төсөл. Энэ нь төсөл үүсгэх үед автоматаар үүсгэгдсэн эх зангилаа юм. Үгүй бол энэ нь Folder зангилааны функцийг давтана.
  • Холбоос. Фолдер эсвэл RequestStep зангилаа руу холбоно уу. Асуулга болон скриптүүдийг дахин ашиглах боломжийг танд олгоно.
  • гэх мэт.

Зангилаанууд нь зураас (зүүн доод талд байгаа самбар, "нэг удаагийн" асуулга хурдан үүсгэхэд ашиглагддаг) болон төслүүдэд (зүүн дээд талд байгаа самбар) байрладаг бөгөөд бид үүнийг илүү нарийвчлан авч үзэх болно.

Төсөл

Та програмыг эхлүүлэх үед зүүн дээд буланд ганц Төслийн мөр байгааг анзаарч магадгүй. Энэ бол төслийн модны үндэс юм. Таныг төсөл эхлүүлэхэд түр зуурын төсөл үүснэ, зам нь таны үйлдлийн системээс хамаарна. Та хүссэн үедээ төслөө өөрт тохиромжтой газар нүүлгэж болно.

Төслийн гол зорилго нь файлын систем дэх хөгжүүлэлтийг хадгалах, тэдгээрийг хувилбарын хяналтын системээр дамжуулан цаашид синхрончлох, CI дээр скрипт ажиллуулах, өөрчлөлтийг хянах гэх мэт чадвар юм.

Хувьсагчид

Хувьсагч нь програмын гол механизмуудын нэг юм. TestMace гэх мэт хэрэгслүүдтэй ажилладаг хүмүүс бидний ярьж буй зүйлийн талаар аль хэдийн ойлголттой байж магадгүй юм. Тиймээс хувьсагч нь нийтлэг өгөгдлийг хадгалах, зангилаа хооронд харилцах арга юм. Жишээлбэл, аналог нь Postman эсвэл Insomnia дахь орчны хувьсагч юм. Гэсэн хэдий ч бид цаашаа явж, сэдвийг боловсруулсан. TestMace-д хувьсагчдыг зангилааны түвшинд тохируулж болно. Ямар ч. Мөн өвөг дээдсээс хувьсагчийг өвлөн авах, удамд давхцах хувьсагчдыг авах механизм байдаг. Нэмж дурдахад олон тооны суурилагдсан хувьсагчид байдаг бөгөөд суулгагдсан хувьсагчдын нэр нь дараахаас эхэлдэг. $…. Үүний заримыг нь харуулав.

  • $prevStep — өмнөх зангилааны хувьсагчидтай холбох
  • $nextStep — дараагийн зангилааны хувьсагчтай холбох
  • $parent - ижил зүйл, гэхдээ зөвхөн өвөг дээдсийн хувьд
  • $response - серверийн хариу
  • $env - одоогийн орчны хувьсагч
  • $dynamicVar - скрипт эсвэл асуулгын гүйцэтгэлийн явцад үүссэн динамик хувьсагч

$env - эдгээр нь үндсэндээ Төслийн зангилааны түвшний энгийн хувьсагчууд боловч сонгосон орчноос хамаарч орчны хувьсагчдын багц өөрчлөгддөг.

хувьсагч руу хандана ${variable_name}
Хувьсагчийн утга нь өөр хувьсагч эсвэл бүр бүхэл илэрхийлэл байж болно. Жишээлбэл, url хувьсагч нь иймэрхүү илэрхийлэл байж болно
http://${host}:${port}/${endpoint}.

Скриптийг гүйцэтгэх явцад хувьсагчдыг хуваарилах боломжийг тусад нь тэмдэглэх нь зүйтэй. Жишээлбэл, амжилттай нэвтэрсний дараа серверээс ирсэн зөвшөөрлийн өгөгдлийг (токен эсвэл бүхэлд нь толгой) хадгалах шаардлагатай байдаг. TestMace нь ийм өгөгдлийг өвөг дээдсийн аль нэгнийх нь динамик хувьсагч болгон хадгалах боломжийг олгодог. Одоо байгаа "статик" хувьсагчтай мөргөлдөхөөс зайлсхийхийн тулд динамик хувьсагчдыг тусдаа объектод байрлуулна. $dynamicVar.

Хувилбарууд

Дээрх бүх функцуудыг ашигласнаар та асуулгын скриптүүдийг бүхэлд нь ажиллуулж болно. Жишээлбэл, аж ахуйн нэгж үүсгэх -> аж ахуйн нэгжийг асуух -> объектыг устгах. Энэ тохиолдолд, жишээлбэл, та хэд хэдэн RequestStep зангилаануудыг бүлэглэхийн тулд Folder зангилаа ашиглаж болно.

Автоматаар гүйцээх болон илэрхийлэлийг тодруулах

Хувьсагчтай ажиллахад тохиромжтой (зөвхөн биш) автоматаар бөглөх шаардлагатай. Мэдээжийн хэрэг, илэрхийллийн утгыг онцлон тэмдэглэх нь тодорхой хувьсагч нь юутай тэнцүү болохыг тодруулахад илүү хялбар бөгөөд илүү тохиромжтой байх болно. Зуун удаа сонссоноос нэг удаа харсан нь дээр гэдэг нь яг ийм юм.

TestMace - API-тай ажиллах хүчирхэг IDE

Автомат бөглөх нь зөвхөн хувьсагчдад төдийгүй, жишээлбэл, гарчиг, тодорхой толгойн утгуудад (жишээлбэл, Агуулгын төрлийн толгойн автомат бөглөх), протоколууд болон бусад олон зүйлд хэрэгждэг гэдгийг тэмдэглэх нь зүйтэй. Аппликешн нэмэгдэхийн хэрээр жагсаалт байнга шинэчлэгддэг.

Буцаах/дахин хийх

Өөрчлөлтийг буцаах/дахин хийх нь маш тохиромжтой зүйл боловч зарим шалтгааны улмаас хаа сайгүй хэрэгждэггүй (мөн API-тай ажиллах хэрэгслүүд үл хамаарах зүйл биш). Гэхдээ бид эдгээрийн нэг биш!) Бид буцаах/дахин хийх үйлдлийг төслийн туршид хэрэгжүүлсэн бөгөөд энэ нь танд зөвхөн тодорхой зангилаа засварлахаас гадна түүнийг үүсгэх, устгах, шилжүүлэх гэх мэт үйлдлийг буцаах боломжийг олгодог. Хамгийн чухал үйлдлүүд нь баталгаажуулалтыг шаарддаг.

Туршилтуудыг бий болгох

Баталгаажуулах зангилаа нь тест үүсгэх үүрэгтэй. Гол онцлогуудын нэг нь суулгасан редакторуудыг ашиглан програмчлалгүйгээр тест үүсгэх чадвар юм.

Баталгаажуулах зангилаа нь батламжийн багцаас бүрдэнэ. Батламж бүр өөрийн гэсэн төрөлтэй бөгөөд одоогоор хэд хэдэн төрлийн батламж байдаг

  1. Утгыг харьцуулах - зүгээр л 2 утгыг харьцуулна. Хэд хэдэн харьцуулах операторууд байдаг: тэнцүү, тэнцүү биш, их, их эсвэл тэнцүү, бага, бага эсвэл тэнцүү.

  2. Утга агуулсан - мөрөнд дэд мөр үүсэхийг шалгана.

  3. XPath - XML ​​дээрх сонгогч тодорхой утгыг агуулж байгаа эсэхийг шалгадаг.

  4. JavaScript батламж нь амжилттай бол үнэн, бүтэлгүйтвэл худал буцаадаг дурын JavaScript скрипт юм.

Зөвхөн сүүлийнх нь хэрэглэгчээс програмчлалын ур чадвар шаарддаг, бусад 3 баталгаа нь график интерфэйсийг ашиглан бүтээгдсэн гэдгийг би тэмдэглэж байна. Жишээлбэл, харьцуулах утгыг баталгаажуулах харилцах цонх дараах байдалтай байна.

TestMace - API-тай ажиллах хүчирхэг IDE

Бялуу дээрх мөстөлт нь хариултаас батламжийг хурдан бий болгох явдал юм, зүгээр л хараарай!

TestMace - API-тай ажиллах хүчирхэг IDE

Гэсэн хэдий ч, ийм баталгаа нь тодорхой хязгаарлалттай тул та үүнийг даван туулахын тулд javascript батламжийг ашиглахыг хүсч болно. Мөн энд TestMace нь автоматаар бөглөх, синтаксийг тодруулах, тэр ч байтугай статик анализатор бүхий тав тухтай орчинг бүрдүүлдэг.

API тайлбар

TestMace нь API-г ашиглахаас гадна үүнийг баримтжуулах боломжийг олгодог. Түүнээс гадна тайлбар нь шаталсан бүтэцтэй бөгөөд төслийн бусад хэсэгт органик байдлаар нийцдэг. Үүнээс гадна Swagger 2.0 / OpenAPI 3.0 форматаас API тайлбарыг импортлох боломжтой. Тайлбар нь өөрөө зүгээр нэг жин дарах биш, харин төслийн бусад хэсгүүдтэй нягт уялдаатай, тухайлбал URL, HTTP толгой, асуулгын параметр гэх мэтийг автоматаар бөглөх боломжтой бөгөөд ирээдүйд бид тест нэмэхээр төлөвлөж байна. Хариулт нь API тайлбартай нийцэж байгаа эсэх.

Хуваалцах зангилаа

Тохиолдол: Та асуудалтай хүсэлт, тэр ч байтугай бүхэл бүтэн скриптийг хамт ажиллагсадтайгаа хуваалцах эсвэл зүгээр л алдаатай хавсаргахыг хүсч байна. TestMace энэ тохиолдлыг мөн хамардаг: програм нь танд дурын зангилаа, тэр ч байтугай URL дахь дэд модыг цуваа болгох боломжийг олгодог. Хуулж буулгаснаар та хүсэлтийг өөр машин эсвэл төсөл рүү хялбархан шилжүүлэх боломжтой.

Хүн унших боломжтой төслийн хадгалах формат

Одоогийн байдлаар зангилаа бүр yml өргөтгөлтэй тусдаа файлд (Assertion зангилаатай адил) эсвэл зангилааны нэр болон index.yml файлтай хавтсанд хадгалагдаж байна.
Жишээ нь, дээрх хянан үзэхэд бидний хийсэн хүсэлтийн файл дараах байдалтай байна.

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

Таны харж байгаагаар бүх зүйл маш тодорхой байна. Хэрэв хүсвэл энэ форматыг гараар хялбархан засах боломжтой.

Файлын систем дэх хавтаснуудын шатлал нь төслийн зангилааны шатлалыг бүрэн давтдаг. Жишээлбэл, скрипт:

TestMace - API-тай ажиллах хүчирхэг IDE

Файлын системийг дараах бүтцэд буулгана (зөвхөн хавтасны шатлалыг харуулсан боловч мөн чанар нь ойлгомжтой)

TestMace - API-тай ажиллах хүчирхэг IDE

Энэ нь төслийг хянах үйл явцыг хөнгөвчлөх болно.

Шууданчаас импортлох

Дээр дурдсан бүх зүйлийг уншсаны дараа зарим хэрэглэгчид шинэ бүтээгдэхүүн туршиж үзэхийг хүсэх (зөв үү?) эсвэл (ямар ч тоглоогүй юм бэ!) Төсөлдөө бүрэн ашиглахыг хүсэх болно. Гэсэн хэдий ч шилжилт хөдөлгөөнийг нэг Postman дахь олон тооны бүтээн байгуулалтууд зогсоож болно. Ийм тохиолдолд TestMace нь Postman-аас цуглуулгуудыг импортлохыг дэмждэг. Одоогоор туршилтгүй импортыг дэмжиж байгаа ч цаашид дэмжихийг үгүйсгэхгүй.

Төлөвлөгөө

Энэ хүртэл уншсан олон хүмүүст манай бүтээгдэхүүн таалагдсан гэж найдаж байна. Гэсэн хэдий ч энэ нь бүгд биш юм! Бүтээгдэхүүний ажил эрчимтэй явагдаж байгаа бөгөөд бид удахгүй нэмэхээр төлөвлөж буй зарим функцуудыг энд оруулав.

Үүлэн синхрончлол

Хамгийн их эрэлт хэрэгцээтэй функцүүдийн нэг. Одоогийн байдлаар бид синхрончлолын хувьд хувилбарын хяналтын системийг ашиглахыг санал болгож байгаа бөгөөд үүний тулд бид энэ төрлийн хадгалалтын форматыг илүү ээлтэй болгож байна. Гэхдээ энэ ажлын урсгал нь хүн бүрт тохиромжгүй тул бид серверүүдээрээ дамжуулан олон хүнд танил болсон синхрончлолын механизмыг нэмэхээр төлөвлөж байна.

CLI

Дээр дурдсанчлан, IDE түвшний бүтээгдэхүүнүүд нь одоо байгаа програмууд эсвэл ажлын урсгалуудтай бүх төрлийн интеграцчлалгүйгээр хийж чадахгүй. CLI нь TestMace дээр бичсэн тестүүдийг тасралтгүй нэгтгэх процесст нэгтгэхэд яг хэрэгтэй зүйл юм. CLI дээр ажиллаж байгаа бөгөөд эхний хувилбарууд нь энгийн консолын тайлангаар төслийг эхлүүлэх болно. Цаашид бид тайлангийн гаралтыг JUnit форматаар нэмэхээр төлөвлөж байна.

Plugin систем

Манай хэрэгслийн бүх хүч чадлыг үл харгалзан шийдэл шаарддаг тохиолдлын багц хязгааргүй юм. Эцсийн эцэст, тодорхой төсөлд зориулагдсан ажлууд байдаг. Тийм ч учраас бид ирээдүйд залгаасуудыг хөгжүүлэх SDK-г нэмэхээр төлөвлөж байгаа бөгөөд хөгжүүлэгч бүр өөрт таалагдсан функцийг нэмэх боломжтой болно.

Зангилааны төрлүүдийн хүрээг өргөжүүлэх

Энэхүү зангилааны багц нь хэрэглэгчийн шаардсан бүх тохиолдлыг хамардаггүй. Нэмэхээр төлөвлөж буй зангилаанууд:

  • Скрипт зангилаа - js болон холбогдох API ашиглан өгөгдлийг хөрвүүлж, байрлуулна. Энэ төрлийн зангилаа ашиглан та Postman дээр хүсэлтийн өмнөх болон дараах скриптүүдийг хийж болно.
  • GraphQL зангилаа - graphql дэмжлэг
  • Захиалгат баталгаажуулалтын зангилаа - төсөлд байгаа батламжийн багцыг өргөжүүлэх боломжийг танд олгоно
    Мэдээжийн хэрэг, энэ нь эцсийн жагсаалт биш бөгөөд таны санал хүсэлтийн дагуу байнга шинэчлэгдэж байх болно.

тусламж

Та шууданчаас юугаараа ялгаатай вэ?

  1. Төслийн үйл ажиллагааг бараг хязгааргүй томруулах боломжийг олгодог зангилааны тухай ойлголт
  2. Файлын системд хадгалсан хүний ​​унших боломжтой төслийн формат нь хувилбарын хяналтын системийг ашиглан ажлыг хялбаршуулдаг
  3. Програмчлалгүйгээр тест үүсгэх чадвар, тест засварлагч дээр илүү дэвшилтэт js дэмжлэг үзүүлэх (автоматаар бөглөх, статик анализатор)
  4. Нарийвчилсан автомат бөглөх, хувьсагчийн одоогийн утгыг тодруулах

Энэ нээлттэй эхийн бүтээгдэхүүн мөн үү?

Үгүй ээ, одоогоор эх сурвалжууд хаалттай байгаа ч цаашид эх сурвалжаа нээх боломжийг судалж байна.

Та юугаар амьдардаг вэ?)

Үнэгүй хувилбарын хамт бид бүтээгдэхүүний төлбөртэй хувилбарыг гаргахаар төлөвлөж байна. Энэ нь юуны түрүүнд серверийн тал, жишээлбэл, синхрончлол шаарддаг зүйлсийг багтаах болно.

дүгнэлт

Манай төсөл тогтвортой хувилбар руу үсрэнгүй хөгжиж байна. Гэсэн хэдий ч, бүтээгдэхүүнийг аль хэдийн ашиглах боломжтой бөгөөд манай анхны хэрэглэгчдийн эерэг санал хүсэлт нь үүний нотолгоо юм. Олон нийттэй нягт хамтран ажиллахгүйгээр сайн хэрэгсэл бүтээх боломжгүй тул бид санал хүсэлтийг идэвхтэй цуглуулдаг. Та биднийг эндээс олж болно:

Албан ёсны вэб сайт

цахилгаан

Сул

Facebook-ийн

Асуудлыг хянагч

Бид таны хүсэл, саналыг тэсэн ядан хүлээж байна!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх