TestMace. Хурдан эхлэл

TestMace. Хурдан эхлэл

Сайн уу. Бид сүүдрээс аажмаар гарч, бүтээгдэхүүнийхээ тухай цуврал нийтлэлүүдийг үргэлжлүүлж байна. Дараа нь өмнөх тойм нийтлэлд бид маш олон санал хүсэлт (ихэнхдээ эерэг), санал, алдааны тайланг хүлээн авсан. Өнөөдөр бид харуулах болно TestMace ажиллаж байгаа бөгөөд та манай програмын зарим шинж чанарыг үнэлэх боломжтой болно. Илүү бүрэн дүрэхийн тулд манай баримт бичгийг эндээс үзэхийг танд зөвлөж байна http://docs-ru.testmace.com. За, явцгаая!

тохиргоо

Энгийн байдлаас эхэлцгээе. Энэхүү програм нь Linux, Windows, MacOS гэсэн гурван платформ дээр туршиж үзэх боломжтой. Та сонирхож буй үйлдлийн системийнхээ суулгагчийг татаж авах боломжтой манай вэбсайт. Линукс хэрэглэгчдийн хувьд үүнийг суулгах боломжтой гэнэтийн багц. Майкрософт дэлгүүр болон App Store удахгүй үүнтэй холбогдоно гэдэгт бид үнэхээр найдаж байна (Энэ шаардлагатай юу? Та юу гэж бодож байна?).

Туршилтын хувилбар

Бид туршилтын сэдэв болгон дараах стандарт хувилбарыг сонгосон.

  • Нэвтрэх: хэрэглэгч - админ, нууц үг - нууц үг
  • шинэ оруулга нэмнэ үү
  • Бичлэгийг зөв оруулсан эсэхийг шалгацгаая

Бид туршилт хийх болно https://testmace-quick-start.herokuapp.com/. Энэ бол хэвийн зүйл json-сервер, ийм програмуудыг туршихад тохиромжтой. Бид зүгээр л бүх json серверийн чиглүүлэлтүүдэд токеноор зөвшөөрлийг нэмсэн бөгөөд энэ токеныг хүлээн авах нэвтрэх аргыг үүсгэсэн. Бид төслөө аажмаар сайжруулж, алхам алхмаар урагшлах болно.

Төсөл зохиож, зөвшөөрөлгүй аж ахуйн нэгж байгуулах гэж оролдсон

Эхлээд шинэ төсөл үүсгэцгээе (Файлын->Шинэ төсөл). Хэрэв та програмыг анх удаа ажиллуулж байгаа бол шинэ төсөл автоматаар нээгдэнэ. Эхлээд шинэ бичлэг үүсгэх хүсэлт гаргахыг хичээцгээе (хэрэв зөвшөөрөлгүйгээр бүртгэл үүсгэх боломжтой бол). Төслийн зангилааны контекст цэснээс зүйлсийг сонгоно уу Зангилаа нэмэх -> Хүсэлтийн алхам. Зангилааны нэрийг тохируулна уу үүсгэх-пост. Үүний үр дүнд модонд шинэ зангилаа үүсэх бөгөөд энэ зангилааны таб нээгдэнэ. Дараах хүсэлтийн параметрүүдийг тохируулцгаая.

  • Хүсэлтийн төрөл: POST
  • url: https://testmace-quick-start.herokuapp.com/posts
  • Хүсэлтийн үндсэн хэсэг: утга бүхий json {"title": "New testmace quick start post"}
    Хэрэв та бүх зүйлийг зөв хийсэн бол интерфэйс дараах байдлаар харагдах болно.

TestMace. Хурдан эхлэл

Гэсэн хэдий ч, хэрэв бид хүсэлтийг биелүүлэхийг оролдвол сервер 401 кодыг буцааж өгөх бөгөөд зөвшөөрөлгүйгээр бид энэ сервер дээр юу ч авахгүй. За, ерөнхийдөө, хүлээгдэж буй шиг).

Зөвшөөрлийн хүсэлтийг нэмж байна

Өмнө дурьдсанчлан, бидэнд POST төгсгөлийн цэг бий /login, энэ нь json-г маягтын хүсэлтийн хэсэг болгон авдаг: {"username": "<username>", "password": "<password>"}хаана username и password (дээрх оршил хэсгээс) гэсэн утгатай байна admin и password тус тус. Хариуд нь энэ төгсгөлийн цэг json like-г буцаана {"token": "<token>"}. Бид үүнийг зөвшөөрөл авахад ашиглах болно. бүтээцгээе Хүсэлтийн алхам нэртэй зангилаа нэвтрэх, өвөг дээдсийн үүрэг гүйцэтгэнэ Төслийн зангилаа Чирэх, буулгах аргыг ашиглан модны өгөгдсөн зангилааг зангилаанаас өндөрт шилжүүлнэ үүсгэх-пост. Шинээр үүсгэсэн хүсэлтэд дараах параметрүүдийг тохируулъя.

Хүсэлтийг биелүүлж хариуд нь токен бүхий хоёр зуу дахь кодыг хүлээн авцгаая. Энэ нь иймэрхүү зүйл:

TestMace. Хурдан эхлэл

Refactoring: домэйн давхардлыг арилгах

Одоогоор хүсэлтүүд нэг скриптэд холбогдоогүй байна. Гэхдээ энэ нь цорын ганц сул тал биш юм. Хэрэв та анхааралтай ажиглавал хамгийн багадаа домэйн хоёр хүсэлтэд давхардсан байгааг анзаарах болно. Сайн биш. Ирээдүйн скриптийн энэ хэсгийг дахин засварлах цаг болсон бөгөөд хувьсагч нь үүнд туслах болно.

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

Төслийн зангилааны түвшинд хувьсагчийг тодорхойлъё domain үнэ цэнэтэй https://testmace-quick-start.herokuapp.com. Үүний тулд энэ нь зайлшгүй шаардлагатай

  • Энэ зангилаатай табыг нээгээд баруун дээд буланд байгаа тооны машины дүрс дээр дарна уу
  • Дээр дарна уу + ХУВЬСАГЧ НЭМЭХ
  • Хувьсагчийн нэр болон утгыг оруулна уу
    Манай тохиолдолд нэмсэн хувьсагчтай харилцах цонх дараах байдлаар харагдах болно.

TestMace. Хурдан эхлэл

БОЛЖ БАЙНА УУ. Одоо өв залгамжлалын улмаас бид энэ хувьсагчийг ямар ч үүрлэх түвшний удамд ашиглаж болно. Манай тохиолдолд эдгээр нь зангилаа юм нэвтрэх и үүсгэх-пост. Текстийн талбарт хувьсагчийг ашиглахын тулд та бичих хэрэгтэй ${<variable_name>}. Жишээлбэл, нэвтрэх url-г хөрвүүлсэн ${domain}/login, төлөө тус тус үүсгэх-пост зангилааны url нь иймэрхүү харагдах болно ${domain}/posts.

Тиймээс бид DRY зарчмыг удирдлага болгон хувилбарыг бага зэрэг сайжруулсан.

Токеныг хувьсагчид хадгална уу

Нэгэнт хувьсагчийн тухай ярьж байгаа тул энэ сэдвийг бага зэрэг дэлгэрүүлье. Одоогийн байдлаар, амжилттай нэвтэрсэн тохиолдолд бид серверээс зөвшөөрлийн тэмдэг хүлээн авдаг бөгөөд энэ нь дараагийн хүсэлтүүдэд хэрэгтэй болно. Энэ токеныг хувьсагч болгон хадгалъя. Учир нь скриптийг гүйцэтгэх явцад хувьсагчийн утгыг тодорхойлох болно, бид үүний тулд тусгай механизм ашигладаг - динамик хувьсагч.

Эхлээд нэвтрэх хүсэлтийг гүйцэтгье. Таб дотор Задалсан гэж хариулж, курсорыг токен дээр хөдөлгөж, контекст цэсэнд (үүнийг хулганы баруун товчлуураар эсвэл товчлуур дээр дарж дууддаг ...) тухайн зүйлийг сонгоно уу. Хувьсагчид оноох. Дараах талбаруудтай харилцах цонх гарч ирнэ.

  • Зам - хариултын аль хэсгийг авсан бэ (бидний тохиолдолд энэ нь body.token)
  • Одоогийн үнэ цэнэ - Замын дагуу ямар үнэ цэнэ (бидний тохиолдолд энэ нь жетон утга)
  • Хувьсах нэр — хувьсагчийн нэр хаана байна Одоогийн үнэ цэнэ хадгалагдах болно. Манай тохиолдолд ийм байх болно token
  • Зангилаа - өвөг дээдсийн аль нь хувьсагчийг үүсгэх болно Хувьсах нэр. Төслийг сонгоцгооё

Дууссан харилцах цонх дараах байдалтай байна.

TestMace. Хурдан эхлэл

Одоо зангилаа ажиллах бүрт нэвтрэх динамик хувьсагч token хариултын шинэ утгаар шинэчлэгдэх болно. Мөн энэ хувьсагч дотор хадгалагдах болно Төслийн зангилаа ба өв залгамжлалын ачаар үр удамд боломжтой болно.

Динамик хувьсагчдад хандахын тулд та ашиглах ёстой суулгасан хувьсагч $dynamicVar. Жишээлбэл, хадгалагдсан жетон руу хандахын тулд та залгах хэрэгтэй ${$dynamicVar.token}.

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

Өмнөх алхмуудад бид зөвшөөрлийн тэмдгийг хүлээн авсан бөгөөд бидний хийх ёстой зүйл бол толгой хэсгийг нэмэх явдал юм Authorization утга учиртай Bearer <tokenValue> зөвшөөрөл шаардлагатай бүх хүсэлт, үүнд үүсгэх-пост. Үүнийг хийх хэд хэдэн арга байдаг:

  1. Токеныг гараар хуулж, сонирхсон хүсэлтүүдэд зөвшөөрлийн толгой хэсгийг нэмнэ үү. Энэ арга нь ажилладаг боловч түүний хэрэглээ нь зөвхөн "хийсэн, хаясан" төрлийн хүсэлтээр хязгаарлагддаг. Скриптийг давтан гүйцэтгэхэд тохиромжгүй
  2. Функцийг ашиглах зөвшөөрөл.
  3. Хэрэглэх үндсэн толгой

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

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

Өмнө нь бид токеныг динамик хувьсагч болгон болгоомжтой хадгалсан $dynamicVar.token Төслийн зангилааны түвшинд. Үлдсэн зүйл бол дараахь зүйлийг хийх явдал юм.

  1. Өгөгдмөл гарчгийг тодорхойлох Authorization үнэ цэнэтэй Bearer ${$dynamicVar.token} Төслийн зангилааны түвшинд. Үүнийг хийхийн тулд зангилааны Төслийн интерфейс дээр анхдагч гарчигтай харилцах цонхыг нээх хэрэгтэй (товч толгой баруун дээд буланд) болон харгалзах гарчгийг нэмнэ. Дүүргэгдсэн утгууд бүхий харилцах цонх дараах байдлаар харагдах болно.
    TestMace. Хурдан эхлэл
  2. Нэвтрэх хүсэлтээс энэ толгой хэсгийг идэвхгүй болго. Энэ нь ойлгомжтой: нэвтрэх үед бидэнд токен байхгүй байгаа бөгөөд бид үүнийг энэ хүсэлтээр суулгах болно. Тиймээс, таб дээрх хүсэлтийн нэвтрэх интерфейс дээр толгой талбайд Өв залгамжлагдсан Зөвшөөрлийн толгой хэсгийг сонго.

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

Нийтлэл үүсгэх зөв эсэхийг шалгаж байна

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

  • id-р нийтлэл хүлээн авах хүсэлт илгээх,
  • Серверээс хүлээн авсан нэр нь нийтлэл үүсгэх үед илгээсэн нэртэй таарч байгаа эсэхийг шалгаарай

Эхний алхамыг харцгаая. Скриптийг гүйцэтгэх явцад id утга тодорхойлогддог тул та динамик хувьсагч үүсгэх хэрэгтэй (үүнийг нэрлэе. postId) зангилаанаас үүсгэх-пост Төслийн зангилааны түвшинд. Үүнийг хэрхэн яаж хийхийг бид аль хэдийн мэдэж байгаа, зүгээр л хэсгийг үзнэ үү Токеныг хувьсагчид хадгална уу. Энэ ID-г ашиглан нийтлэл хүлээн авах хүсэлт гаргах л үлдлээ. Үүнийг хийхийн тулд RequestStep-ийг үүсгэцгээе шуудан авах дараах параметрүүдтэй:

  • Хүсэлтийн төрөл: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Хоёр дахь алхамыг хэрэгжүүлэхийн тулд бид танилцах хэрэгтэй Нотолгоо зангилаа. Баталгаажуулах зангилаа нь тодорхой хүсэлтийн шалгалтыг бичих боломжийг олгодог зангилаа юм. Баталгаажуулах зангилаа бүр хэд хэдэн баталгаажуулалт (шалгалт) агуулж болно. Та манай бүх төрлийн мэдэгдлийн талаар илүү ихийг уншиж болно баримт бичиг. Бид ашиглах болно Compare оператортой баталгаажуулах equal. Баталгаа үүсгэх хэд хэдэн арга байдаг:

  1. Урт. RequestStep зангилааны контекст цэснээс Баталгаажуулах зангилааг гараар үүсгэнэ үү. Үүсгэсэн Баталгаажуулах зангилаа хэсэгт сонирхлын батламжийг нэмж, талбаруудыг бөглөнө үү.
  2. Хурдан. Контекст цэсийг ашиглан RequestStep зангилааны хариултаас баталгаажуулалтын хамт Баталгаажуулах зангилаа үүсгэнэ үү.

Хоёрдахь аргыг ашиглацгаая. Энэ нь манай тохиолдолд иймэрхүү харагдах болно.

TestMace. Хурдан эхлэл

Ойлгохгүй байгаа хүмүүст юу болж байгааг энд харуулав.

  1. Зангилаанд хүсэлт гаргах шуудан авах
  2. Таб дотор Задалсан хариулж, контекст цэс рүү залгаад сонгоно уу Баталгаа үүсгэх -> харьцуулах -> тэгш

Баяр хүргэе, бид анхны тестээ хийлээ! Энгийн, тийм үү? Одоо та скриптийг бүрэн ажиллуулж, үр дүнг таашаах боломжтой. Үлдсэн зүйл бол үүнийг бага зэрэг сэргээж, арилгах явдал юм title тусдаа хувьсагч болгон хувиргана. Гэхдээ бид үүнийг танд гэрийн даалгавар болгон үлдээх болно)

дүгнэлт

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

Жич Бүх алхмуудыг хуулбарлахаас залхуурсан хүмүүст зориулж бид сайн бичлэг хийсэн хадгалах газар нийтлэл дэх төслийн хамт. Та үүнийг нээж болно Файлын -> Нээлттэй төсөл болон Төслийн хавтсыг сонгоно уу.

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

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