Яагаад TestMace Postman-аас дээр вэ?

Яагаад TestMace Postman-аас дээр вэ?

Сайн байцгаана уу TestMace! Магадгүй олон хүн бидний талаар мэддэг байх бидний өмнөх нийтлэл. Дөнгөж элссэн хүмүүсийн хувьд: бид TestMace API-тай ажиллах IDE хөгжүүлж байна. TestMace-ийг өрсөлдөгч бүтээгдэхүүнтэй харьцуулахдаа хамгийн их асуудаг асуулт бол "Та шууданчаас юугаараа ялгаатай вэ?" Энэ асуултад дэлгэрэнгүй хариулт өгөх цаг болсон гэж бид шийдсэн. Доор бид өөрсдийн давуу талуудыг тодорхойлсон Шуудан зөөгч.

Зангилаа болгон хуваах

Хэрэв та Postman-тай ажилладаг бол хүсэлтийн интерфейс нь шаардлагатай бүх функцийг агуулдаг гэдгийг та мэднэ. Скриптүүд, тестүүд, үнэндээ хүсэлтүүд өөрсдөө байдаг. Энэ нь эхлэгчдэд хялбар болгодог, гэхдээ том хувилбаруудад энэ арга нь уян хатан биш юм. Хэрэв та хэд хэдэн асуулга үүсгэж, тэдгээр дээр нэгтгэхийг хүсвэл яах вэ? Хэрэв та скриптийг хүсэлтгүйгээр эсвэл хэд хэдэн логикоор тусгаарлагдсан скриптүүдийг дараалан ажиллуулахыг хүсвэл яах вэ? Эцсийн эцэст тестийг ердийн хэрэгслийн скриптээс салгах нь зүйтэй юм. Нэмж дурдахад "бүх функцийг нэг зангилаа руу нэмэх" арга нь өргөтгөх боломжгүй - интерфэйс хурдан ачаалалтай болдог.

TestMace нь эхлээд бүх функцийг өөр өөр төрлийн зангилаа болгон хуваадаг. Та хүсэлт гаргах уу? Энэ нь танд зориулагдсан хүсэлтийн алхам зангилаа Та скрипт бичихийг хүсч байна уу? Энэ нь танд зориулагдсан скрипт зангилаа Тест хэрэгтэй юу? Гуйя - Нотолгоо зангилаа Өө тийм ээ, та энэ бүх зүйлийг дотор нь ороож болно хавтас зангилаа Мөн энэ бүгдийг бие биетэйгээ амархан нэгтгэж болно. Энэ арга нь маш уян хатан төдийгүй нэг хариуцлагын зарчмын дагуу зөвхөн яг одоо хэрэгтэй байгаа зүйлээ ашиглах боломжийг олгодог. Хэрэв би хүсэлт гаргахыг хүсч байвал яагаад скрипт, тест хэрэгтэй байна вэ?

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

TestMace болон Postman хоёрын хооронд хадгалагдах арга барилын хувьд ойлголтын ялгаа бий. Postman-д бүх хүсэлтийг локал хадгалалтын хаа нэгтээ хадгалдаг. Хэрэв хэд хэдэн хэрэглэгчийн хооронд хүсэлт хуваалцах шаардлагатай бол та суулгасан синхрончлолыг ашиглах хэрэгтэй. Үнэн хэрэгтээ энэ нь нийтээр хүлээн зөвшөөрөгдсөн арга боловч сул талуудгүй биш юм. Мэдээллийн аюулгүй байдлын талаар юу хэлэх вэ? Эцсийн эцэст, зарим компаниудын бодлого нь гуравдагч этгээдэд өгөгдөл хадгалахыг зөвшөөрөхгүй байж магадгүй юм. Гэсэн хэдий ч, бид TestMace-д санал болгох илүү сайн зүйл байгаа гэж бодож байна! Энэхүү сайжруулалтын нэр нь "хүн унших боломжтой төслийн формат" юм.

TestMace-д зарчмын хувьд "төслийн" байгууллага байдаг гэдгийг эхэлцгээе. Уг программыг эхэндээ хувилбарын удирдлагын системд төслүүдийг хадгалах зорилготойгоор хөгжүүлсэн: төслийн мод нь файлын бүтцэд бараг нэг нэгээр нь проекц, yaml нь хадгалах формат болгон (нэмэлт хаалт, таслалгүйгээр) ашиглагддаг. Зангилаа бүрийн файлын дүрслэлийг тайлбар бүхий баримт бичигт дэлгэрэнгүй тайлбарласан болно. Гэхдээ ихэнх тохиолдолд та тэнд хайхгүй - бүх талбарын нэр логик нэртэй байдаг.

Энэ нь хэрэглэгчдэд юу өгөх вэ? Энэ нь танд танил арга барилыг ашиглан багийн ажлын урсгалыг уян хатан байдлаар өөрчлөх боломжийг танд олгоно. Жишээлбэл, хөгжүүлэгчид төслөө backend-тэй ижил санд хадгалах боломжтой. Салбаруудад кодын баазыг өөрчлөхөөс гадна хөгжүүлэгч одоо байгаа асуулгын скрипт, тестийг засах боломжтой. Хадгалах газарт (git, svn, mercurial - танд хамгийн дуртай зүйл) өөрчлөлт хийсний дараа CI (таны дуртай, хэн ч ногдуулаагүй) консолын хэрэгслийг ажиллуулж байна. testmace-cli, мөн гүйцэтгэлийн дараа хүлээн авсан тайланг (жишээ нь, testmace-cli дээр дэмждэг junit форматаар) зохих систем рүү илгээдэг. Мөн дээр дурдсан аюулгүй байдлын асуудал бол асуудал биш болсон.

Таны харж байгаагаар TestMace нь өөрийн экосистем, парадигмыг тулгадаггүй. Үүний оронд энэ нь тогтсон процессуудад амархан нийцдэг.

Динамик хувьсагчид

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

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

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

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

Яагаад TestMace Postman-аас дээр вэ?

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

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

За, энэ зорилгоор TestMace байна скрипт Энэ хувилбарыг хамарсан зангилаа. Өмнөх тохиолдлыг хуулбарлахын тулд TestMace аль хэдийн гүйцэтгэсэн бол хүсэлтийн дагуу скриптийн зангилаа үүсгэж, дараах кодыг скрипт болгон ашиглах хэрэгтэй.

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

Таны харж байгаагаар зангилааны найрлага энд бас сайн үйлчилсэн. Дээр дурдсанчлан ийм энгийн тохиолдлын хувьд та зүгээр л илэрхийллийг зааж өгч болно ${crypto.MD5($response.data)} GUI-ээр үүсгэгдсэн хувьсагч!

GUI ашиглан тест үүсгэх

Postman нь скрипт бичих замаар тест үүсгэх боломжийг олгодог (Postman-ийн хувьд энэ нь JavaScript юм). Энэ арга нь олон давуу талтай байдаг - бараг хязгааргүй уян хатан байдал, бэлэн шийдлийн бэлэн байдал гэх мэт.

Гэсэн хэдий ч бодит байдал ихэвчлэн ийм байдаг (бид тийм биш, амьдрал ийм байдаг) тестер програмчлалын ур чадваргүй, гэхдээ тэр яг одоо багтаа ашиг тусаа өгөхийг хүсдэг. Ийм тохиолдлуудад кодгүй үзэл баримтлалын дагуу TestMace нь скрипт бичихгүйгээр GUI-ээр дамжуулан энгийн тестүүдийг үүсгэх боломжийг олгодог. Жишээлбэл, тэгш байдлын утгыг харьцуулах тестийг бий болгох үйл явц дараах байдалтай байна.

Яагаад TestMace Postman-аас дээр вэ?

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

Төслийн янз бүрийн хэсэгт тодорхой асуулга эсвэл бүр бүхэл бүтэн скриптийг хэд хэдэн удаа гүйцэтгэх шаардлагатай үед нөхцөл байдал ихэвчлэн үүсдэг. Ийм хүсэлтийн жишээ нь олон үе шаттай захиалгат зөвшөөрөл, хүрээлэн буй орчныг хүссэн төлөвт хүргэх гэх мэт байж болно. Ерөнхийдөө програмчлалын хэлээр ярих юм бол бид програмын өөр өөр хэсэгт дахин ашиглах боломжтой функцуудтай байхыг хүсч байна. TestMace дээр энэ функцийг гүйцэтгэдэг Холбоос зангилаа Үүнийг ашиглахад маш энгийн:
1) асуулга эсвэл скрипт үүсгэх
2) Link төрлийн зангилаа үүсгэх
3) параметрүүдэд эхний алхамд үүсгэсэн скриптийн холбоосыг зааж өгнө үү

Илүү дэвшилтэт хувилбарт та скриптээс аль динамик хувьсагчийг холбоостой харьцуулахад илүү өндөр түвшинд шилжүүлэхийг зааж өгч болно. Төөрөгдөлтэй сонсогдож байна уу? Бид нэртэй хавтас үүсгэсэн гэж бодъё үүсгэх-пост, дотор нь энэ зангилаанд динамик хувьсагч оноогдсон байдаг postId. Одоо холбоосын зангилаа холбоос үүсгэх хувьсагч гэдгийг тодорхой зааж өгч болно postId өвөг дээдэст хуваарилагдсан холбоос үүсгэх. Энэ механизмыг (дахин програмчлалын хэлээр) "функц" -ээс үр дүнг буцаахад ашиглаж болно. Ерөнхийдөө маш сайхан байна, DRY эрчимтэй явагдаж байгаа бөгөөд нэг ч мөр код гэмтээгүй.

Яагаад TestMace Postman-аас дээр вэ?

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

Бусад ялгаа

  • Хувьсагчдын хамрах хүрээг илүү хянах. Postman-д хувьсагчийг тодорхойлж болох хамгийн жижиг хамрах хүрээ нь цуглуулга юм. TestMace нь ямар ч асуулга эсвэл хавтсанд хувьсагчийг тодорхойлох боломжийг олгодог. Postman Share цуглуулгад зөвхөн цуглуулгаа экспортлох боломжийг олгодог бол TestMace дээр хуваалцах нь дурын зангилаанд ажилладаг
  • TestMace дэмждэг удамшлын толгой, үүнийг анхдагчаар хүүхдийн асуулгад орлуулж болно. Шуудангийн ажилтан энэ талаар ямар нэгэн зүйл байна: даалгавар, мөн энэ нь бүр хаалттай, гэхдээ үүнийг шийдэл болгон санал болгож байна... скрипт ашиглах. TestMace-д энэ бүгдийг GUI-ээр тохируулсан бөгөөд тодорхой үр удамд удамшсан толгой хэсгийг идэвхгүй болгох сонголт байдаг.
  • Буцаах/дахин хийх. Зөвхөн зангилаа засварлах үед төдийгүй төслийн бүтцийг өөрчлөх, зөөх, устгах, нэрийг өөрчлөх болон бусад үйлдлүүдийг хийх үед ажилладаг.
  • Хүсэлтэд хавсаргасан файлууд нь төслийн нэг хэсэг болж, Postman-аас ялгаатай нь төгс синхрончлолын хамт хадгалагддаг. (Тийм ээ, та файлуудыг эхлүүлэх болгондоо гараар сонгож, архивт байгаа хамт олон руу шилжүүлэх шаардлагагүй болсон)

Аль хэдийн замдаа орсон онцлог шинж чанарууд

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

Чиг үүрэг

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

{{$randomEmail}}

Гэсэн хэдий ч эдгээр нь хувьсагч (динамик ч гэсэн) учраас тэдгээрийг функц болгон ашиглах боломжгүй: тэдгээрийг параметржүүлэх боломжгүй тул мөрөөс хэш авах боломжгүй болно.

Бид TestMace-д "шударга" функцуудыг нэмэхээр төлөвлөж байна. ${} дотор зөвхөн хувьсагч руу хандахаас гадна функцийг дуудах боломжтой болно. Тэдгээр. Хэрэв та алдартай хуурамч имэйл үүсгэх шаардлагатай бол бид зүгээр л бичих болно

${faker.internet.email()}

Энэ нь функц болохоос гадна объект дээр аргыг дуудах боломжтой гэдгийг та анзаарах болно. Динамик хувьсагчийн том хавтгай жагсаалтын оронд бид логик бүлэглэсэн объектуудын багцтай болно.

Хэрэв бид мөрийн хэшийг тооцоолохыг хүсвэл яах вэ? Амархан!

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

Та хувьсагчдыг параметр болгон дамжуулж болно гэдгийг анзаарах болно! Энэ үед сониуч уншигч ямар нэг зүйл буруу байна гэж сэжиглэж магадгүй ...

Илэрхийлэлд JavaScript ашиглах

... Мөн сайн шалтгаантай! Функцэд тавигдах шаардлагыг бий болгож байх үед бид гэнэт зөв JavaScript-ийг илэрхийлэлд бичих ёстой гэсэн дүгнэлтэд хүрсэн. Тиймээс та одоо дараах илэрхийлэлүүдийг бичих боломжтой.

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

Энэ бүхэн скриптгүйгээр шууд оролтын талбарт байна!

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

Яагаад TestMace Postman-аас дээр вэ?

Нарийвчилсан автомат бөглөх

Одоогоор TestMace нь дараах байдлаар харагдах стандарт автоматаар гүйцэтгэгчтэй.

Яагаад TestMace Postman-аас дээр вэ?

Энд автоматаар бөглөх мөрөөс гадна энэ мөр юунд хамаарахыг зааж өгсөн болно. Энэ механизм нь зөвхөн ${} хаалтанд хүрээлэгдсэн илэрхийлэлд ажилладаг.

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

Нэгдүгээрт, автомат бөглөх нь илэрхийлэлд хүртэл ажилладаг (боломжтой бол). Энэ нь иймэрхүү харагдаж байна:

Яагаад TestMace Postman-аас дээр вэ?

Хоёрдугаарт, автоматаар бөглөх нь скрипт дээр боломжтой болсон. Энэ нь хэрхэн ажилладагийг хараарай!

Яагаад TestMace Postman-аас дээр вэ?

Энэ функцийг Postman-тай харьцуулах нь утгагүй юм - автомат бөглөх нь зөвхөн хувьсагчийн статик жагсаалт, толгой хэсэг, тэдгээрийн утгуудын жагсаалтаар хязгаарлагддаг (хэрэв би ямар нэг зүйлийг мартсан бол засаарай). Скриптүүд автоматаар бөглөгддөггүй :)

дүгнэлт

XNUMX-р сард манай бүтээгдэхүүнийг боловсруулж эхэлснээс хойш нэг жил тохиож байна. Энэ хугацаанд бид олон зүйлийг хийж, зарим талаараа өрсөлдөгчдөө гүйцэж чадлаа. Гэсэн хэдий ч бидний зорилго бол API-тай ажиллахад тохиромжтой хэрэгсэл болгох явдал юм. Бидэнд хийх ажил их байгаа тул ирэх жилийн төслөө хөгжүүлэх бүдүүвч төлөвлөгөөг энд оруулав. https://testmace.com/roadmap.

Таны санал хүсэлт бидэнд олон боломжуудыг илүү сайн удирдах боломжийг олгох бөгөөд таны дэмжлэг бидэнд хүч чадал, зөв ​​зүйл хийж байна гэсэн итгэлийг өгдөг. Өнөөдөр манай төслийн хувьд чухал өдөр буюу TestMace-ийг нийтэлсэн өдөр тохиож байна ProductHunt. Манай төслийг дэмжээрэй, энэ нь бидний хувьд маш чухал юм. Түүгээр ч барахгүй өнөөдөр манай PH хуудсанд сонирхолтой санал байгаа бөгөөд энэ нь хязгаарлагдмал

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

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