TesGada. Mulai cepat

TesGada. Mulai cepat

Halo semua. Kami perlahan-lahan bangkit dari bayang-bayang dan melanjutkan rangkaian artikel tentang produk kami. Setelah sebelumnya meninjau artikel, kami menerima banyak umpan balik (kebanyakan positif), saran dan laporan bug. Hari ini kami akan menunjukkannya TesGada beraksi dan Anda akan dapat menghargai beberapa fitur aplikasi kami. Untuk pemahaman yang lebih lengkap, saya menyarankan Anda untuk merujuk ke dokumentasi kami di http://docs-ru.testmace.com. Jadi ayo pergi!

Instalasi

Mari kita mulai dengan banalitas. Aplikasi ini tersedia dan diuji pada tiga platform - Linux, Windows, MacOS. Anda dapat mengunduh penginstal untuk OS yang Anda minati situs kami. Bagi pengguna Linux dimungkinkan untuk melakukan instalasi paket jepret. Kami sangat berharap Microsoft Store dan App Store segera menyediakannya (Apakah perlu? Bagaimana menurut Anda?).

Skenario eksperimental

Kami memilih skenario standar berikut sebagai subjek pengujian kami:

  • Login: pengguna - admin, kata sandi - kata sandi
  • menambahkan entri baru
  • Mari kita periksa apakah catatan telah ditambahkan dengan benar

Kami akan mengujinya https://testmace-quick-start.herokuapp.com/. Ini normal json-server, sempurna untuk menguji aplikasi semacam itu. Kami baru saja menambahkan otorisasi dengan token ke semua rute json-server dan membuat metode login untuk menerima token ini. Kami akan bergerak secara progresif, secara bertahap meningkatkan proyek kami.

Membuat proyek dan mencoba membuat entitas tanpa otorisasi

Pertama, mari kita buat proyek baru (File->Proyek baru). Jika Anda meluncurkan aplikasi untuk pertama kalinya, proyek baru akan terbuka secara otomatis. Pertama, mari kita coba membuat permintaan untuk membuat catatan baru (jika pembuatan catatan tersedia tanpa otorisasi). Pilih item dari menu konteks simpul Proyek Tambahkan simpul -> Langkah Permintaan. Tetapkan nama simpul menjadi buat-posting. Hasilnya, simpul baru akan dibuat di pohon dan tab untuk simpul ini akan terbuka. Mari atur parameter permintaan berikut:

TesGada. Mulai cepat

Namun, jika kami mencoba memenuhi permintaan tersebut, server akan mengembalikan kode 401 dan tanpa izin kami tidak akan mendapatkan apa pun di server ini. Secara umum, seperti yang diharapkan).

Menambahkan permintaan otorisasi

Seperti yang telah dikatakan, kami memiliki titik akhir POST /login, yang menggunakan json sebagai badan permintaan dalam bentuk: {"username": "<username>", "password": "<password>"}Dimana username и password (sekali lagi, dari paragraf pengantar di atas) mempunyai arti admin и password masing-masing. Sebagai tanggapan, titik akhir ini mengembalikan seperti json {"token": "<token>"}. Kami akan menggunakannya untuk otorisasi. Ayo berkreasi Langkah Permintaan simpul dengan nama masuk, akan bertindak sebagai leluhur Project simpul Dengan menggunakan drag-and-drop, pindahkan node tertentu di pohon lebih tinggi dari node tersebut buat-posting. Mari atur parameter berikut ke permintaan yang baru dibuat:

Mari jalankan permintaan dan terima kode ke dua ratus dengan token sebagai responsnya. Sesuatu seperti ini:

TesGada. Mulai cepat

Refactoring: menghapus duplikasi domain

Sejauh ini permintaan tersebut tidak ditautkan ke dalam satu skrip. Tapi ini bukan satu-satunya kelemahan. Jika Anda perhatikan lebih dekat, Anda akan melihat bahwa setidaknya domain tersebut diduplikasi di kedua permintaan. Tidak baik. Saatnya untuk memfaktorkan ulang bagian skrip masa depan ini, dan variabel akan membantu kita dalam hal ini.

Sebagai perkiraan pertama, variabel memiliki peran yang sama seperti pada alat dan bahasa pemrograman serupa lainnya - menghilangkan duplikasi, meningkatkan keterbacaan, dll. Anda dapat membaca lebih lanjut tentang variabel di dokumentasi kami. Dalam hal ini, kita memerlukan variabel pengguna.

Mari kita definisikan variabel pada tingkat simpul Proyek domain dengan makna https://testmace-quick-start.herokuapp.com... Ini membutuhkan

  • Buka tab dengan simpul ini dan klik ikon kalkulator di kanan atas
  • Klik + TAMBAHKAN VARIABEL
  • Masukkan nama dan nilai variabel
    Dalam kasus kami, dialog dengan variabel yang ditambahkan akan terlihat seperti ini:

TesGada. Mulai cepat

OKE. Sekarang, karena pewarisan, kita dapat menggunakan variabel ini pada turunan dari level bersarang mana pun. Dalam kasus kami ini adalah node masuk и buat-posting. Untuk menggunakan variabel dalam bidang teks, Anda perlu menulis ${<variable_name>}. Misalnya, url login diubah menjadi ${domain}/login, masing-masing untuk buat-posting url simpul akan terlihat seperti ${domain}/posts.

Oleh karena itu, dengan berpedoman pada prinsip KERING, kami telah sedikit memperbaiki skenarionya.

Simpan token ke variabel

Karena kita berbicara tentang variabel, mari kita sedikit memperluas topik ini. Saat ini, jika login berhasil, kami menerima token otorisasi dari server, yang akan kami perlukan dalam permintaan berikutnya. Mari simpan token ini ke dalam variabel. Karena nilai variabel akan ditentukan selama eksekusi skrip, kami menggunakan mekanisme khusus untuk ini - variabel dinamis.

Pertama, mari kita lakukan permintaan login. Di tab Diurai jawabannya, gerakkan kursor ke atas token dan di menu konteks (yang disebut dengan tombol kanan mouse atau dengan mengklik tombol ...) pilih item Tetapkan ke variabel. Dialog akan muncul dengan bidang berikut:

  • xtra — bagian mana dari jawaban yang diambil (dalam kasus kami memang demikian body.token)
  • Nilai sekarang — nilai apa yang ada di sepanjang Jalur (dalam kasus kami ini adalah nilai token)
  • Nama variabel — nama variabel dimana Nilai sekarang akan dilestarikan. Dalam kasus kami, itu akan terjadi token
  • Node — di nenek moyang mana variabel tersebut akan dibuat Nama variabel. Mari pilih Proyek

Dialog yang selesai terlihat seperti ini:

TesGada. Mulai cepat

Sekarang setiap kali node dieksekusi masuk variabel dinamis token akan diperbarui dengan nilai baru dari respons. Dan variabel ini akan disimpan Project simpul dan, berkat warisan, akan tersedia untuk keturunan.

Untuk mengakses variabel dinamis, Anda harus menggunakan variabel bawaan $dynamicVar. Misalnya, untuk mengakses token yang disimpan, Anda perlu menelepon ${$dynamicVar.token}.

Kami meneruskan token otorisasi ke dalam permintaan

Pada langkah sebelumnya kita menerima token otorisasi dan yang perlu kita lakukan hanyalah menambahkan header Authorization dengan makna Bearer <tokenValue> dalam semua permintaan yang memerlukan otorisasi, termasuk buat-posting. Ada beberapa cara untuk melakukan ini:

  1. Salin token secara manual dan tambahkan header otorisasi ke permintaan yang diminati. Metode ini berhasil, tetapi penggunaannya terbatas hanya pada permintaan yang bertipe “dibuat dan dibuang”. Tidak cocok untuk eksekusi skrip berulang kali
  2. Gunakan fungsinya otorisasi.
  3. Menggunakan header bawaan

Menggunakan metode kedua tampak jelas, namun dalam konteks artikel ini, pendekatan ini... tidak menarik. Sebenarnya: mekanisme otorisasi plus minus sudah Anda kenal dari alat lain (bahkan jika kami memiliki hal seperti itu warisan otorisasi) dan sepertinya tidak akan menimbulkan pertanyaan.

Hal lainnya adalah header default! Singkatnya, header default adalah header HTTP bawaan yang ditambahkan ke permintaan secara default kecuali dinonaktifkan secara eksplisit. Dengan menggunakan fungsi ini, Anda dapat, misalnya, menerapkan otorisasi khusus atau sekadar menghilangkan duplikasi dalam skrip. Mari gunakan fitur ini untuk meneruskan token di header.

Sebelumnya, kami dengan hati-hati menyimpan token ke variabel dinamis $dynamicVar.token di tingkat simpul Proyek. Yang tersisa hanyalah melakukan hal berikut:

  1. Tentukan judul default Authorization dengan makna Bearer ${$dynamicVar.token} di tingkat simpul Proyek. Untuk melakukan ini, di antarmuka Proyek node Anda perlu membuka dialog dengan judul default (tombol Header di sudut kanan atas) dan tambahkan judul yang sesuai. Dialog dengan nilai yang diisi akan terlihat seperti ini:
    TesGada. Mulai cepat
  2. Nonaktifkan header ini dari permintaan login. Hal ini dapat dimengerti: pada saat login, kami belum memiliki token dan kami akan menginstalnya dengan permintaan ini. Oleh karena itu, di antarmuka login permintaan di tab Header di Warisan hapus centang pada header Otorisasi.

Itu saja. Sekarang header otorisasi akan ditambahkan ke semua permintaan yang merupakan anak dari node Proyek, kecuali untuk node login. Ternyata pada tahap ini kita sudah memiliki script yang sudah siap dan tinggal meluncurkannya saja. Anda dapat menjalankan skrip dengan memilih Run di menu konteks simpul Proyek.

Memeriksa kebenaran pembuatan postingan

Pada tahap ini, skrip kita dapat masuk dan, menggunakan token otorisasi, membuat postingan. Namun, kita perlu memastikan bahwa postingan yang baru dibuat memiliki nama yang benar. Intinya, yang tersisa hanyalah melakukan hal berikut:

  • Kirim permintaan untuk menerima kiriman berdasarkan id,
  • Periksa apakah nama yang diterima dari server cocok dengan nama yang dikirim saat membuat postingan

Mari kita lihat langkah pertama. Karena nilai id ditentukan selama eksekusi skrip, Anda perlu membuat variabel dinamis (sebut saja postId) dari simpul buat-posting di tingkat simpul Proyek. Kita sudah tahu cara melakukan ini, lihat saja bagiannya Simpan token ke variabel. Yang tersisa hanyalah membuat permintaan untuk menerima postingan menggunakan id ini. Untuk melakukan ini, mari buat RequestStep dapatkan-posting dengan parameter berikut:

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

Untuk mengimplementasikan langkah kedua, kita perlu mengenalnya Tuntutan simpul. Node Pernyataan adalah node yang memungkinkan Anda menulis pemeriksaan untuk permintaan tertentu. Setiap node Assertion dapat berisi beberapa pernyataan (pemeriksaan). Anda dapat membaca lebih lanjut tentang semua jenis pernyataan dari kami dokumentasi. Kami akan menggunakan Compare pernyataan dengan operator equal. Ada beberapa cara untuk membuat pernyataan:

  1. Panjang. Buat node Assertion secara manual dari menu konteks node RequestStep. Di node Pernyataan yang dibuat, tambahkan pernyataan minat dan isi kolomnya.
  2. Cepat. Buat node Assertion bersama dengan pernyataan dari respons node RequestStep menggunakan menu konteks

Mari kita gunakan cara kedua. Seperti inilah kasus kita.

TesGada. Mulai cepat

Bagi yang belum paham, berikut kejadiannya:

  1. Buat permintaan di node dapatkan-posting
  2. Di tab Diurai jawab, panggil menu konteks dan pilih Buat pernyataan -> Bandingkan -> Sama

Selamat, kami telah membuat tes pertama kami! Sederhana, bukan? Sekarang Anda dapat menjalankan skrip sepenuhnya dan menikmati hasilnya. Yang tersisa hanyalah memfaktorkannya ulang sedikit dan mengeluarkannya title menjadi variabel tersendiri. Tapi kami akan menyerahkan ini padamu sebagai pekerjaan rumah)

Kesimpulan

Dalam panduan ini, kami membuat skenario lengkap dan sekaligus meninjau beberapa fitur produk kami. Tentu saja, kami tidak menggunakan semua fungsi dan dalam artikel berikut kami akan memberikan gambaran rinci tentang kemampuan TestMace. Pantau terus!

PS Bagi yang terlalu malas untuk mereproduksi semua langkahnya, kami telah mencatatnya dengan baik gudang dengan proyek dari artikel. Anda dapat membukanya dengan File -> Proyek terbuka dan pilih folder Proyek.

Sumber: www.habr.com

Tambah komentar