TestMace. Mimitian gancang

TestMace. Mimitian gancang

Halo sadayana. Kami lalaunan muncul tina bayangan sareng neraskeun séri tulisan ngeunaan produk urang. Sanggeus saméméhna artikel review, kami narima loba eupan balik (lolobana positif), saran jeung laporan bug. Dinten ieu kami bakal nunjukkeun TestMace dina tindakan sareng anjeun bakal tiasa ngahargaan sababaraha fitur aplikasi kami. Pikeun immersion anu langkung lengkep, kuring mamatahan anjeun ngarujuk kana dokuméntasi kami di http://docs-ru.testmace.com. Ku kituna, hayu urang balik!

setting

Hayu urang mimitian ku banality. Aplikasina sayogi sareng leres-leres diuji dina tilu platform - Linux, Windows, MacOS. Anjeun tiasa ngundeur installer pikeun OS anjeun resep ramatloka urang. Pikeun pangguna Linux tiasa dipasang pakét snap. Kami ngarepkeun yén Microsoft Store sareng App Store enggal-enggal kéngingkeun (Naha peryogi? Kumaha saur anjeun?).

Skénario ékspériméntal

Kami milih skenario standar di handap ieu salaku subjek tés kami:

  • Login: pamaké - admin, sandi - sandi
  • tambahkeun entri anyar
  • Hayu urang pariksa yen catetan ieu ditambahkeun bener

Urang bakal nguji dina https://testmace-quick-start.herokuapp.com/. Ieu normal json-server, sampurna pikeun nguji aplikasi sapertos kitu. Urang ngan ditambahkeun otorisasina ku token ka sadaya ruteu json-server sarta dijieun metoda login pikeun nampa token ieu. Urang bakal mindahkeun progressively, saeutik demi saeutik ngaronjatkeun proyék urang.

Nyiptakeun proyék sareng nyobian nyiptakeun éntitas tanpa otorisasina

Kahiji, hayu urang nyieun proyék anyar (file->proyék anyar). Upami anjeun ngaluncurkeun aplikasi pikeun pertama kalina, proyék énggal bakal dibuka sacara otomatis. Kahiji, hayu urang cobaan nyieun pamundut pikeun nyieun rékaman anyar (bisi nyieun rékaman sadia tanpa otorisasina). Pilih item tina menu konteks titik Project Tambahkeun node -> RequestStep. Setel nami titik ka nyieun-pos. Hasilna, titik anyar bakal dijieun dina tangkal jeung tab pikeun titik ieu bakal muka. Hayu urang nyetél parameter pamundut ieu:

  • Jenis pamundut: POST
  • Privacy FAQ https://testmace-quick-start.herokuapp.com/posts
  • Badan pamundut: json kalayan nilai {"title": "New testmace quick start post"}
    Upami anjeun ngalakukeun sadayana leres, antarmuka bakal katingali sapertos kieu:

TestMace. Mimitian gancang

Sanajan kitu, lamun urang nyoba minuhan pamundut teh, server bakal balik kode 401 sarta tanpa otorisasina urang moal meunang nanaon dina server ieu. Nya, sacara umum, sapertos anu diharapkeun).

Nambahkeun pamundut otorisasina

Sakumaha geus disebutkeun, urang boga titik tungtung POST /login, anu nyandak json salaku badan pamundut bentuk: {"username": "<username>", "password": "<password>"}dimana username и password (deui, tina paragraf bubuka di luhur) boga harti admin и password masing-masing. Salaku tanggepan, titik akhir ieu mulihkeun json sapertos {"token": "<token>"}. Urang bakal ngagunakeun éta pikeun otorisasina. Hayu urang nyieun RequestStep node kalawan ngaran lebet, bakal meta salaku karuhun proyek titik Nganggo sered-sareng-serelek, pindahkeun titik anu dipasihkeun dina tangkal anu langkung luhur tibatan titik nyieun-pos. Hayu urang setel parameter di handap ieu kana pamundut nu nembe dijieun:

Hayu urang ngaéksekusi pamundut jeung nampa kodeu dua hundredth kalawan token dina respon. Sapertos kieu:

TestMace. Mimitian gancang

Refactoring: miceun duplikasi domain

Sajauh ieu pamundut teu dikaitkeun kana hiji naskah. Tapi ieu teu hijina aral. Lamun kasampak raket, anjeun bakal aya bewara yén sahenteuna domain ieu duplicated dina duanana requests. Henteu saé. Ieu waktu pikeun refactor ieu bagian tina Aksara hareup, sarta variabel bakal nulungan urang jeung ieu.

Pikeun perkiraan anu munggaran, variabel ngagaduhan peran anu sami sareng alat anu sami sareng basa pamrograman - ngaleungitkeun duplikasi, ningkatkeun kabacaan, jsb. Anjeun tiasa maca langkung seueur ngeunaan variabel dina dokuméntasi urang. Dina hal ieu, urang bakal butuh variabel pamaké.

Hayu urang ngartikeun variabel dina tingkat titik Project domain kalawan harti https://testmace-quick-start.herokuapp.com. Pikeun ieu perlu

  • Buka tab sareng titik ieu teras klik dina ikon kalkulator di katuhu luhur
  • Klik dina + TAMBAHAN VARIABEL
  • Lebetkeun nami variabel sareng nilai
    Dina kasus urang, dialog sareng variabel anu ditambah bakal katingali sapertos kieu:

TestMace. Mimitian gancang

OKÉ. Ayeuna, kusabab warisan, urang tiasa nganggo variabel ieu dina turunan tina sagala tingkat nyarang. Dina kasus urang ieu titik lebet и nyieun-pos. Pikeun ngagunakeun variabel dina widang téks, anjeun kedah nyerat ${<variable_name>}. Contona, url login dirobah jadi ${domain}/login, mungguh pikeun nyieun-pos url titik bakal kasampak kawas ${domain}/posts.

Ku kituna, dipandu ku prinsip DRY, urang geus rada ningkat skenario.

Simpen token ka variabel

Kusabab urang ngobrol ngeunaan variabel, hayu urang ngalegaan topik ieu sakedik. Di momen, bisi sukses login, urang nampi ti server hiji token otorisasina, nu urang bakal butuh dina requests saterusna. Hayu urang simpen token ieu kana variabel. Sabab nilai variabel bakal ditangtukeun nalika palaksanaan skrip, kami nganggo mékanisme khusus pikeun ieu - variabel dinamis.

Kahiji, hayu urang ngalakukeun pamundut login. Dina tab Diparaké jawaban, mindahkeun kursor leuwih token jeung dina menu konteks (anu disebut boh ku tombol mouse katuhu atawa ku ngaklik on tombol ...) pilih item nu Napelkeun kana variabel. Dialog bakal muncul kalayan widang di handap ieu:

  • jalan - bagian mana tina jawaban anu dicandak (dina hal urang éta body.token)
  • nilai ayeuna - naon nilai perenahna sapanjang Path (dina hal urang ieu nilai token)
  • Ngaran anu rupa-rupa - ngaran variabel dimana nilai ayeuna bakal dilestarikan. Dina hal urang bakal token
  • titik - di mana tina karuhun variabel bakal dijieun Ngaran anu rupa-rupa. Hayu urang milih Project

Dialog anu réngsé sapertos kieu:

TestMace. Mimitian gancang

Ayeuna unggal waktos titik dieksekusi lebet variabel dinamis token bakal diropéa kalawan nilai anyar tina respon. Sareng variabel ieu bakal disimpen dina proyek titik na, hatur nuhun kana warisan, bakal sadia pikeun turunan.

Pikeun ngakses variabel dinamis, anjeun kedah nganggo diwangun-di variabel $dynamicVar. Contona, pikeun ngakses token nu disimpen, Anjeun kudu nelepon ${$dynamicVar.token}.

Urang lulus token otorisasina kana pamundut

Dina léngkah-léngkah saacanna kami nampi token otorisasina sareng anu kedah urang laksanakeun nyaéta nambihan lulugu Authorization kalawan harti Bearer <tokenValue> dina sagala requests merlukeun otorisasina, kaasup nyieun-pos. Aya sababaraha cara pikeun ngalakukeun ieu:

  1. Salin token sacara manual sareng tambahkeun lulugu otorisasi kana pamundut anu dipikaresep. Metoda jalan, tapi pamakéan na diwatesan ngan pikeun requests tina tipe "dijieun na dialungkeun". Teu cocog pikeun palaksanaan ulang naskah
  2. Paké pungsionalitasna otorisasi.
  3. Anggo headers standar

Ngagunakeun métode kadua sigana atra, tapi dina konteks artikel ieu, pendekatan ieu ... uninteresting. Nya, saleresna: mékanisme otorisasi ditambah dikurangan akrab ka anjeun tina alat anu sanés (sanaos urang gaduh hal sapertos warisan otorisasi) sareng henteu mungkin ngangkat patarosan.

Hal séjén nyaéta headers standar! Sacara nutshell, header standar diwariskeun headers HTTP nu ditambahkeun kana pamundut sacara standar iwal eksplisit ditumpurkeun. Nganggo fungsionalitas ieu, anjeun tiasa, contona, ngalaksanakeun otorisasi khusus atanapi ngan saukur ngaleungitkeun duplikasi dina naskah. Hayu urang nganggo fitur ieu pikeun lulus token dina headers.

Saméméhna, urang prudently disimpen token ka variabel dinamis $dynamicVar.token dina tingkat titik Project. Sadaya anu tetep nyaéta ngalakukeun ieu:

  1. Nangtukeun judul standar Authorization kalawan harti Bearer ${$dynamicVar.token} dina tingkat titik Project. Jang ngalampahkeun ieu, dina antarmuka Project tina titik anjeun kedah muka dialog sareng judul standar (tombol headers di pojok katuhu luhur) sareng tambahkeun judul anu cocog. Dialog sareng nilai anu dieusian bakal katingali sapertos kieu:
    TestMace. Mimitian gancang
  2. Pareuman lulugu ieu tina pamundut login. Ieu kaharti: dina waktu login, urang teu acan gaduh token sarta kami bakal install deui kalawan pamundut ieu. Ku alatan éta, dina panganteur login tina pamundut dina tab headers di daérah Diwariskeun pupus centang lulugu Otorisasina.

Éta hungkul. Ayeuna lulugu otorisasina bakal diasupkeun ka sadaya pamenta anu mangrupa anak ti titik Project, iwal ti titik login. Tétéla dina tahap ieu urang geus boga naskah siap tur sagala kudu urang pigawé nyaéta ngajalankeun eta. Anjeun tiasa ngajalankeun skrip ku milih lalumpatan dina menu kontéks titik Project.

Mariksa kabeneran nyiptakeun tulisan

Dina tahap ieu, skrip urang tiasa log in sareng, nganggo token otorisasi, ngadamel tulisan. Nanging, urang kedah mastikeun yén pos anu nembé diciptakeun ngagaduhan nami anu leres. Hartina, dina hakekatna, anu tinggaleun nyaéta ngalakukeun ieu:

  • Kirim pamundut pikeun nampi pos ku id,
  • Pariksa yén nami anu ditampi ti server cocog sareng nami anu dikirim nalika nyiptakeun pos

Hayu urang nempo lengkah kahiji. Kusabab nilai id ditangtukeun nalika palaksanaan naskah, anjeun kedah nyiptakeun variabel dinamis (nyaéta postId) ti node nyieun-pos dina tingkat titik Project. Urang geus nyaho kumaha carana ngalakukeun ieu, ngan tingal bagian Simpen token ka variabel. Sadaya anu tetep nyaéta nyiptakeun pamundut pikeun nampi kiriman nganggo id ieu. Jang ngalampahkeun ieu, hayu urang nyieun RequestStep meunang-pos kalayan parameter di handap ieu:

  • Jenis pamundut: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Pikeun ngalaksanakeun léngkah kadua, urang kedah terang Penegasan cangreud. Titik Assertion mangrupikeun titik anu ngamungkinkeun anjeun nyerat cek pikeun pamundut khusus. Unggal titik Assertion bisa ngandung sababaraha assertions (cék). Anjeun tiasa maca langkung seueur ngeunaan sagala jinis pernyataan ti kami dokuméntasi. Urang bakal ngagunakeun Compare negeskeun kalawan operator equal. Aya sababaraha cara pikeun nyieun assertions:

  1. Panjang. Jieun titik Assertion sacara manual tina menu kontéks tina titik RequestStep. Dina titik Cindekna dijieun, tambahkeun pernyataan dipikaresep tur eusian widang.
  2. Gancang. Jieun titik Cindekna babarengan jeung pernyataan ti réspon titik RequestStep ngagunakeun menu konteks

Hayu urang nganggo metodeu kadua. Ieu bakal kasampak kawas pikeun kasus urang.

TestMace. Mimitian gancang

Pikeun anu henteu ngartos, ieu anu lumangsung:

  1. Jieun pamundut dina node meunang-pos
  2. Dina tab Diparaké ngajawab, nelepon menu konteks tur pilih Jieun negeskeun -> ngabandingkeun -> sarua

Gening, kami parantos nyiptakeun tés munggaran! Sederhana, sanés? Ayeuna anjeun tiasa ngajalankeun skrip lengkep sareng nikmati hasilna. Sadaya anu tetep nyaéta refactor sakedik sareng cabut title kana variabel anu misah. Tapi kami bakal ngantepkeun ieu kanggo anjeun salaku PR)

kacindekan

Dina pituduh ieu, kami nyiptakeun skénario anu lengkep sareng dina waktos anu sami marios sababaraha fitur produk urang. Tangtosna, kami henteu nganggo sadaya fungsionalitas sareng dina tulisan di handap ieu kami bakal masihan gambaran lengkep ngeunaan kamampuan TestMace. Tetep di dieu!

PS Pikeun maranéhanana anu teuing puguh pikeun baranahan sagala léngkah, kami geus bageur nawaran reureuh di kacatet gudang kalawan proyék ti artikel. Anjeun tiasa muka éta kalayan file -> Buka proyék tur pilih folder Project.

sumber: www.habr.com

Tambahkeun komentar