TestMace. Permulaan cepat

TestMace. Permulaan cepat

Hai semua. Kami perlahan-lahan muncul dari bayang-bayang dan meneruskan siri artikel tentang produk kami. Selepas sebelumnya ulasan artikel, kami menerima banyak maklum balas (kebanyakannya positif), cadangan dan laporan pepijat. Hari ini kami akan tunjukkan TestMace dalam tindakan dan anda akan dapat menghargai beberapa ciri aplikasi kami. Untuk rendaman yang lebih lengkap, saya menasihati anda untuk merujuk kepada dokumentasi kami di http://docs-ru.testmace.com. Jadi, mari pergi!

Pemasangan

Mari kita mulakan dengan banality. Aplikasi ini tersedia dan sebenarnya diuji pada tiga platform - Linux, Windows, MacOS. Anda boleh memuat turun pemasang untuk OS yang anda minati laman web kami. Untuk pengguna Linux adalah mungkin untuk memasang pakej snap. Kami sangat berharap bahawa Microsoft Store dan App Store akan segera mendapatkannya (Adakah ia perlu? Apa pendapat anda?).

Senario eksperimen

Kami memilih senario standard berikut sebagai subjek ujian kami:

  • Log masuk: pengguna - pentadbir, kata laluan - kata laluan
  • tambah entri baru
  • Mari periksa sama ada rekod telah ditambah dengan betul

Kami akan menguji https://testmace-quick-start.herokuapp.com/. Ini adalah biasa json-server, sesuai untuk menguji aplikasi sedemikian. Kami baru sahaja menambah kebenaran melalui token kepada semua laluan pelayan json dan mencipta kaedah log masuk untuk menerima token ini. Kami akan bergerak secara progresif, menambah baik projek kami secara beransur-ansur.

Mencipta projek dan cuba mencipta entiti tanpa kebenaran

Mula-mula, mari buat projek baharu (File->Projek baru). Jika anda melancarkan aplikasi buat kali pertama, projek baharu akan dibuka secara automatik. Mula-mula, mari cuba buat permintaan untuk mencipta rekod baharu (sekiranya mencipta rekod tersedia tanpa kebenaran). Pilih item daripada menu konteks nod Projek Tambah nod -> RequestStep. Tetapkan nama nod kepada cipta-siaran. Akibatnya, nod baharu akan dibuat dalam pepohon dan tab untuk nod ini akan dibuka. Mari kita tetapkan parameter permintaan berikut:

  • Jenis permintaan: POST
  • url: https://testmace-quick-start.herokuapp.com/posts
  • Badan permintaan: json dengan nilai {"title": "New testmace quick start post"}
    Jika anda melakukan semuanya dengan betul, antara muka akan kelihatan seperti ini:

TestMace. Permulaan cepat

Walau bagaimanapun, jika kami cuba memenuhi permintaan, pelayan akan mengembalikan kod 401 dan tanpa kebenaran kami tidak akan mendapat apa-apa pada pelayan ini. Nah, secara umum, seperti yang dijangkakan).

Menambah permintaan kebenaran

Seperti yang telah dikatakan, kami mempunyai titik akhir POST /login, yang mengambil json sebagai badan permintaan borang: {"username": "<username>", "password": "<password>"}Jika username ΠΈ password (sekali lagi, dari perenggan pendahuluan di atas) mempunyai makna admin ΠΈ password masing-masing. Sebagai tindak balas, titik akhir ini mengembalikan json like {"token": "<token>"}. Kami akan menggunakannya untuk kebenaran. Jom buat RequestStep nod dengan nama log masuk, akan bertindak sebagai moyang Projek nod Menggunakan drag-and-drop, gerakkan nod yang diberikan dalam pokok lebih tinggi daripada nod cipta-siaran. Mari kita tetapkan parameter berikut kepada permintaan yang baru dibuat:

Mari kita laksanakan permintaan dan terima kod dua ratus dengan token dalam jawapan. Sesuatu seperti ini:

TestMace. Permulaan cepat

Pemfaktoran semula: mengalih keluar pertindihan domain

Setakat ini permintaan tidak dipautkan ke dalam satu skrip. Tetapi ini bukan satu-satunya kelemahan. Jika anda melihat dengan teliti, anda akan dapati bahawa sekurang-kurangnya domain diduplikasi dalam kedua-dua permintaan. Tidak baik. Sudah tiba masanya untuk memfaktorkan semula bahagian skrip masa hadapan ini, dan pembolehubah akan membantu kami dengan ini.

Untuk anggaran pertama, pembolehubah berfungsi sama seperti dalam alat dan bahasa pengaturcaraan lain yang serupa - menghapuskan pertindihan, meningkatkan kebolehbacaan, dsb. Anda boleh membaca lebih lanjut mengenai pembolehubah dalam dokumentasi kami. Dalam kes ini, kami memerlukan pembolehubah pengguna.

Mari kita tentukan pembolehubah pada tahap nod Projek domain dengan makna https://testmace-quick-start.herokuapp.com. Untuk ini adalah perlu

  • Buka tab dengan nod ini dan klik pada ikon kalkulator di bahagian atas sebelah kanan
  • Klik pada + TAMBAH PEMBOLEH UBAH
  • Masukkan nama dan nilai pembolehubah
    Dalam kes kami, dialog dengan pembolehubah tambahan akan kelihatan seperti ini:

TestMace. Permulaan cepat

OKEY. Sekarang, disebabkan pewarisan, kita boleh menggunakan pembolehubah ini dalam keturunan mana-mana peringkat bersarang. Dalam kes kami ini adalah nod log masuk ΠΈ cipta-siaran. Untuk menggunakan pembolehubah dalam medan teks, anda perlu menulis ${<variable_name>}. Sebagai contoh, url log masuk ditukar kepada ${domain}/login, masing-masing untuk cipta-siaran url nod akan kelihatan seperti ${domain}/posts.

Oleh itu, berpandukan prinsip DRY, kami telah menambah baik sedikit senario.

Simpan token ke pembolehubah

Oleh kerana kita bercakap tentang pembolehubah, mari kita kembangkan sedikit topik ini. Pada masa ini, sekiranya log masuk berjaya, kami menerima daripada pelayan token kebenaran, yang kami perlukan dalam permintaan seterusnya. Mari kita simpan token ini ke dalam pembolehubah. Kerana nilai pembolehubah akan ditentukan semasa pelaksanaan skrip, kami menggunakan mekanisme khas untuk ini - pembolehubah dinamik.

Mula-mula, mari kita laksanakan permintaan log masuk. Dalam tab Diuraikan jawab, gerakkan kursor ke atas token dan dalam menu konteks (yang dipanggil sama ada dengan butang kanan tetikus atau dengan mengklik pada butang ...) pilih item Berikan kepada pembolehubah. Dialog akan muncul dengan medan berikut:

  • Jalan β€” bahagian mana jawapan yang diambil (dalam kes kami, ia adalah body.token)
  • Nilai semasa β€” apakah nilai yang terletak di sepanjang Laluan (dalam kes kami ini adalah nilai token)
  • Nama berubah β€” nama pembolehubah di mana Nilai semasa akan terpelihara. Dalam kes kami ia akan menjadi token
  • nod β€” di antara nenek moyang mana pembolehubah akan dicipta Nama berubah. Mari pilih Projek

Dialog yang lengkap kelihatan seperti ini:

TestMace. Permulaan cepat

Kini setiap kali nod dilaksanakan log masuk pembolehubah dinamik token akan dikemas kini dengan nilai baharu daripada respons. Dan pembolehubah ini akan disimpan dalam Projek nod dan, terima kasih kepada warisan, akan tersedia kepada keturunan.

Untuk mengakses pembolehubah dinamik, anda mesti menggunakan pembolehubah terbina dalam $dynamicVar. Sebagai contoh, untuk mengakses token yang disimpan, anda perlu menghubungi ${$dynamicVar.token}.

Kami menyerahkan token kebenaran ke dalam permintaan

Dalam langkah sebelumnya, kami menerima token kebenaran dan apa yang perlu kami lakukan ialah menambah pengepala Authorization dengan makna Bearer <tokenValue> dalam semua permintaan yang memerlukan kebenaran, termasuk cipta-siaran. Terdapat beberapa cara untuk melakukan ini:

  1. Salin token secara manual dan tambahkan pengepala kebenaran pada permintaan minat. Kaedah ini berfungsi, tetapi penggunaannya terhad hanya kepada permintaan jenis "dibuat dan dibuang". Tidak sesuai untuk pelaksanaan skrip berulang
  2. Gunakan fungsi kebenaran.
  3. Guna pengepala lalai

Menggunakan kaedah kedua nampaknya jelas, tetapi dalam konteks artikel ini, pendekatan ini... tidak menarik. Sebenarnya: mekanisme kebenaran tambah tolak biasa kepada anda daripada alat lain (walaupun kami mempunyai perkara seperti pewarisan kebenaran) dan tidak mungkin menimbulkan persoalan.

Perkara lain ialah pengepala lalai! Secara ringkasnya, pengepala lalai ialah pengepala HTTP yang diwarisi yang ditambahkan pada permintaan secara lalai melainkan dilumpuhkan secara eksplisit. Menggunakan fungsi ini, anda boleh, sebagai contoh, melaksanakan kebenaran tersuai atau hanya menyingkirkan pendua dalam skrip. Mari gunakan ciri ini untuk menghantar token dalam pengepala.

Sebelum ini, kami secara berhemat menyimpan token kepada pembolehubah dinamik $dynamicVar.token pada tahap nod Projek. Apa yang tinggal ialah melakukan perkara berikut:

  1. Tentukan tajuk lalai Authorization dengan makna Bearer ${$dynamicVar.token} pada tahap nod Projek. Untuk melakukan ini, dalam antara muka Projek nod anda perlu membuka dialog dengan tajuk lalai (button Pengepala di penjuru kanan sebelah atas) dan tambahkan tajuk yang sepadan. Dialog dengan nilai yang diisi akan kelihatan seperti ini:
    TestMace. Permulaan cepat
  2. Lumpuhkan pengepala ini daripada permintaan log masuk. Ini boleh difahami: pada masa log masuk, kami belum mempunyai token dan kami akan memasangnya dengan permintaan ini. Oleh itu, dalam antara muka log masuk permintaan dalam tab Pengepala di kawasan Diwarisi nyahtandakan pengepala Kebenaran.

Itu sahaja. Sekarang pengepala kebenaran akan ditambahkan pada semua permintaan yang merupakan anak kepada nod Projek, kecuali untuk nod log masuk. Ternyata pada peringkat ini kami sudah sedia ada skrip dan apa yang perlu kami lakukan ialah melancarkannya. Anda boleh menjalankan skrip dengan memilih Main dalam menu konteks nod Projek.

Menyemak ketepatan penciptaan catatan

Pada peringkat ini, skrip kami boleh log masuk dan, menggunakan token kebenaran, membuat siaran. Walau bagaimanapun, kita perlu memastikan bahawa siaran yang baru dibuat mempunyai nama yang betul. Iaitu, pada dasarnya, yang tinggal hanyalah melakukan perkara berikut:

  • Hantar permintaan untuk menerima siaran melalui id,
  • Semak sama ada nama yang diterima daripada pelayan sepadan dengan nama yang dihantar semasa membuat siaran

Mari lihat langkah pertama. Oleh kerana nilai id ditentukan semasa pelaksanaan skrip, anda perlu mencipta pembolehubah dinamik (mari kita panggilnya postId) daripada nod cipta-siaran pada tahap nod Projek. Kami sudah tahu bagaimana untuk melakukan ini, hanya rujuk bahagian Simpan token ke pembolehubah. Yang tinggal hanyalah membuat permintaan untuk menerima siaran menggunakan id ini. Untuk melakukan ini, mari buat RequestStep dapatkan-pos dengan parameter berikut:

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

Untuk melaksanakan langkah kedua, kita perlu berkenalan dengannya Penegasan simpul. Nod Penegasan ialah nod yang membolehkan anda menulis semakan untuk permintaan tertentu. Setiap nod Penegasan boleh mengandungi beberapa penegasan (semakan). Anda boleh membaca lebih lanjut tentang semua jenis penegasan daripada kami dokumentasi. Kami akan gunakan Compare penegasan dengan pengendali equal. Terdapat beberapa cara untuk membuat pernyataan:

  1. Panjang. Buat nod Penegasan secara manual daripada menu konteks nod RequestStep. Dalam nod Penegasan yang dibuat, tambahkan penegasan minat dan isikan medan.
  2. Cepat. Buat nod Penegasan bersama-sama dengan penegasan daripada respons nod RequestStep menggunakan menu konteks

Mari gunakan kaedah kedua. Inilah yang akan kelihatan untuk kes kami.

TestMace. Permulaan cepat

Bagi mereka yang tidak faham, inilah yang berlaku:

  1. Buat permintaan dalam nod dapatkan-pos
  2. Di tab Diuraikan jawab, panggil menu konteks dan pilih Buat penegasan -> Bandingkan -> sama

Tahniah, kami telah mencipta ujian pertama kami! Mudah, bukan? Kini anda boleh menjalankan skrip sepenuhnya dan menikmati hasilnya. Yang tinggal hanyalah memfaktorkan semula sedikit dan mengeluarkannya title ke dalam pembolehubah yang berasingan. Tetapi kami akan meninggalkan ini untuk anda sebagai kerja rumah)

Kesimpulan

Dalam panduan ini, kami mencipta senario lengkap dan pada masa yang sama menyemak beberapa ciri produk kami. Sudah tentu, kami tidak menggunakan semua fungsi dan dalam artikel berikut kami akan memberikan gambaran keseluruhan terperinci tentang keupayaan TestMace. Nantikan!

PS Bagi mereka yang terlalu malas untuk mengeluarkan semula semua langkah, kami telah merakamkan repositori dengan projek dari artikel itu. Anda boleh membukanya dengan File -> Buka projek dan pilih folder Projek.

Sumber: www.habr.com

Tambah komen