Сайн байцгаана уу
Зангилаа болгон хуваах
Хэрэв та Postman-тай ажилладаг бол хүсэлтийн интерфейс нь шаардлагатай бүх функцийг агуулдаг гэдгийг та мэднэ. Скриптүүд, тестүүд, үнэндээ хүсэлтүүд өөрсдөө байдаг. Энэ нь эхлэгчдэд хялбар болгодог, гэхдээ том хувилбаруудад энэ арга нь уян хатан биш юм. Хэрэв та хэд хэдэн асуулга үүсгэж, тэдгээр дээр нэгтгэхийг хүсвэл яах вэ? Хэрэв та скриптийг хүсэлтгүйгээр эсвэл хэд хэдэн логикоор тусгаарлагдсан скриптүүдийг дараалан ажиллуулахыг хүсвэл яах вэ? Эцсийн эцэст тестийг ердийн хэрэгслийн скриптээс салгах нь зүйтэй юм. Нэмж дурдахад "бүх функцийг нэг зангилаа руу нэмэх" арга нь өргөтгөх боломжгүй - интерфэйс хурдан ачаалалтай болдог.
TestMace нь эхлээд бүх функцийг өөр өөр төрлийн зангилаа болгон хуваадаг. Та хүсэлт гаргах уу? Энэ нь танд зориулагдсан
Хүн унших боломжтой төслийн формат
TestMace болон Postman хоёрын хооронд хадгалагдах арга барилын хувьд ойлголтын ялгаа бий. Postman-д бүх хүсэлтийг локал хадгалалтын хаа нэгтээ хадгалдаг. Хэрэв хэд хэдэн хэрэглэгчийн хооронд хүсэлт хуваалцах шаардлагатай бол та суулгасан синхрончлолыг ашиглах хэрэгтэй. Үнэн хэрэгтээ энэ нь нийтээр хүлээн зөвшөөрөгдсөн арга боловч сул талуудгүй биш юм. Мэдээллийн аюулгүй байдлын талаар юу хэлэх вэ? Эцсийн эцэст, зарим компаниудын бодлого нь гуравдагч этгээдэд өгөгдөл хадгалахыг зөвшөөрөхгүй байж магадгүй юм. Гэсэн хэдий ч, бид TestMace-д санал болгох илүү сайн зүйл байгаа гэж бодож байна! Энэхүү сайжруулалтын нэр нь "хүн унших боломжтой төслийн формат" юм.
TestMace-д зарчмын хувьд "төслийн" байгууллага байдаг гэдгийг эхэлцгээе. Уг программыг эхэндээ хувилбарын удирдлагын системд төслүүдийг хадгалах зорилготойгоор хөгжүүлсэн: төслийн мод нь файлын бүтцэд бараг нэг нэгээр нь проекц, yaml нь хадгалах формат болгон (нэмэлт хаалт, таслалгүйгээр) ашиглагддаг. Зангилаа бүрийн файлын дүрслэлийг тайлбар бүхий баримт бичигт дэлгэрэнгүй тайлбарласан болно. Гэхдээ ихэнх тохиолдолд та тэнд хайхгүй - бүх талбарын нэр логик нэртэй байдаг.
Энэ нь хэрэглэгчдэд юу өгөх вэ? Энэ нь танд танил арга барилыг ашиглан багийн ажлын урсгалыг уян хатан байдлаар өөрчлөх боломжийг танд олгоно. Жишээлбэл, хөгжүүлэгчид төслөө backend-тэй ижил санд хадгалах боломжтой. Салбаруудад кодын баазыг өөрчлөхөөс гадна хөгжүүлэгч одоо байгаа асуулгын скрипт, тестийг засах боломжтой. Хадгалах газарт (git, svn, mercurial - танд хамгийн дуртай зүйл) өөрчлөлт хийсний дараа CI (таны дуртай, хэн ч ногдуулаагүй) консолын хэрэгслийг ажиллуулж байна.
Таны харж байгаагаар TestMace нь өөрийн экосистем, парадигмыг тулгадаггүй. Үүний оронд энэ нь тогтсон процессуудад амархан нийцдэг.
Динамик хувьсагчид
TestMace нь кодгүй үзэл баримтлалыг баримталдаг: хэрэв код ашиглахгүйгээр асуудлыг шийдэж чадвал бид энэ боломжийг олгохыг хичээдэг. Хувьсагчтай ажиллах нь ихэнх тохиолдолд програмчлалгүйгээр хийх боломжтой функцүүдийн нэг юм.
Жишээ нь: бид серверээс хариу хүлээн авсан бөгөөд хариултын нэг хэсгийг хувьсагч болгон хадгалахыг хүсэж байна. Postman дээр тестийн скрипт дээр (энэ нь өөрөө хачирхалтай) бид дараахь зүйлийг бичнэ.
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);
Гэхдээ бидний бодлоор ийм энгийн бөгөөд байнга хэрэглэгддэг хувилбарт зориулж скрипт бичих нь илүүц мэт санагддаг. Тиймээс TestMace дээр график интерфэйсийг ашиглан хувьсагчдад хариултын хэсгийг оноож өгөх боломжтой. Энэ нь хичнээн энгийн болохыг хараарай:
Одоо хүсэлт бүрт энэ динамик хувьсагч шинэчлэгдэх болно. Гэхдээ Postman арга нь илүү уян хатан бөгөөд зөвхөн даалгавар өгөхөөс гадна зарим урьдчилсан боловсруулалт хийх боломжийг олгодог гэж та эсэргүүцэж болно. Өмнөх жишээг хэрхэн өөрчлөхийг эндээс үзнэ үү.
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));
За, энэ зорилгоор 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 дээр энэ функцийг гүйцэтгэдэг
1) асуулга эсвэл скрипт үүсгэх
2) Link төрлийн зангилаа үүсгэх
3) параметрүүдэд эхний алхамд үүсгэсэн скриптийн холбоосыг зааж өгнө үү
Илүү дэвшилтэт хувилбарт та скриптээс аль динамик хувьсагчийг холбоостой харьцуулахад илүү өндөр түвшинд шилжүүлэхийг зааж өгч болно. Төөрөгдөлтэй сонсогдож байна уу? Бид нэртэй хавтас үүсгэсэн гэж бодъё үүсгэх-пост, дотор нь энэ зангилаанд динамик хувьсагч оноогдсон байдаг postId
. Одоо холбоосын зангилаа холбоос үүсгэх хувьсагч гэдгийг тодорхой зааж өгч болно postId
өвөг дээдэст хуваарилагдсан холбоос үүсгэх. Энэ механизмыг (дахин програмчлалын хэлээр) "функц" -ээс үр дүнг буцаахад ашиглаж болно. Ерөнхийдөө маш сайхан байна, DRY эрчимтэй явагдаж байгаа бөгөөд нэг ч мөр код гэмтээгүй.
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-тай харьцуулах нь утгагүй юм - автомат бөглөх нь зөвхөн хувьсагчийн статик жагсаалт, толгой хэсэг, тэдгээрийн утгуудын жагсаалтаар хязгаарлагддаг (хэрэв би ямар нэг зүйлийг мартсан бол засаарай). Скриптүүд автоматаар бөглөгддөггүй :)
дүгнэлт
XNUMX-р сард манай бүтээгдэхүүнийг боловсруулж эхэлснээс хойш нэг жил тохиож байна. Энэ хугацаанд бид олон зүйлийг хийж, зарим талаараа өрсөлдөгчдөө гүйцэж чадлаа. Гэсэн хэдий ч бидний зорилго бол API-тай ажиллахад тохиромжтой хэрэгсэл болгох явдал юм. Бидэнд хийх ажил их байгаа тул ирэх жилийн төслөө хөгжүүлэх бүдүүвч төлөвлөгөөг энд оруулав.
Таны санал хүсэлт бидэнд олон боломжуудыг илүү сайн удирдах боломжийг олгох бөгөөд таны дэмжлэг бидэнд хүч чадал, зөв зүйл хийж байна гэсэн итгэлийг өгдөг. Өнөөдөр манай төслийн хувьд чухал өдөр буюу TestMace-ийг нийтэлсэн өдөр тохиож байна
Эх сурвалж: www.habr.com