Mengapa TestMace lebih baik dari Postman

Mengapa TestMace lebih baik dari Postman

Halo semuanya, ini dia TesGada! Mungkin banyak orang yang mengetahui tentang kami dari dari kita sebelumnya artikel. Bagi yang baru bergabung: kami sedang mengembangkan IDE untuk bekerja dengan API TestMace. Pertanyaan yang paling sering diajukan saat membandingkan TestMace dengan produk pesaing adalah β€œApa bedanya Anda dengan Postman?” Kami memutuskan bahwa sudah waktunya untuk memberikan jawaban rinci atas pertanyaan ini. Di bawah ini kami telah menguraikan keunggulan kami Tukang pos.

Memisahkan menjadi node

Jika Anda bekerja dengan Tukang Pos, maka Anda tahu bahwa antarmuka permintaan berisi semua fungsi yang diperlukan. Ada skrip, tes, dan, pada kenyataannya, permintaan itu sendiri. Hal ini memudahkan bagi pemula, namun dalam skenario besar pendekatan ini tidak fleksibel. Bagaimana jika Anda ingin membuat beberapa kueri dan melakukan agregasi terhadapnya? Bagaimana jika Anda ingin menjalankan skrip tanpa permintaan atau beberapa skrip yang dipisahkan secara logis secara berurutan? Lagi pula, sebaiknya pisahkan pengujian dari skrip utilitas biasa. Selain itu, pendekatan β€œtambahkan semua fungsi ke dalam satu node” tidak dapat diskalakan - antarmuka dengan cepat menjadi kelebihan beban.

TestMace awalnya membagi semua fungsionalitas menjadi beberapa jenis node. Apakah Anda ingin mengajukan permintaan? ini untuk kamu langkah permintaan simpul Apakah Anda ingin menulis naskah? ini untuk kamu naskah simpul Butuh tes? Silakan - Tuntutan simpul Oh ya, Anda masih bisa menyelesaikan semuanya map simpul Dan semua ini dapat dengan mudah digabungkan satu sama lain. Pendekatan ini tidak hanya sangat fleksibel, tetapi juga, sesuai dengan prinsip tanggung jawab tunggal, memungkinkan Anda menggunakan hanya apa yang benar-benar Anda butuhkan saat ini. Mengapa saya memerlukan skrip dan tes jika saya hanya ingin membuat permintaan?

Format proyek yang dapat dibaca manusia

Ada perbedaan konseptual antara TestMace dan Postman dalam cara penyimpanannya. Di Postman, semua permintaan disimpan di suatu tempat di penyimpanan lokal. Jika ada kebutuhan untuk berbagi permintaan antara beberapa pengguna, maka Anda perlu menggunakan sinkronisasi bawaan. Faktanya, ini adalah pendekatan yang diterima secara umum, namun bukan tanpa kekurangan. Bagaimana dengan keamanan data? Lagi pula, kebijakan beberapa perusahaan mungkin tidak mengizinkan penyimpanan data dengan pihak ketiga. Namun, menurut kami TestMace memiliki sesuatu yang lebih baik untuk ditawarkan! Dan nama perbaikan ini adalah β€œformat proyek yang dapat dibaca manusia.”

Mari kita mulai dengan fakta bahwa TestMace, pada prinsipnya, memiliki entitas "proyek". Dan aplikasi ini awalnya dikembangkan dengan tujuan untuk menyimpan proyek dalam sistem kontrol versi: pohon proyek hampir diproyeksikan satu-satu ke struktur file, yaml digunakan sebagai format penyimpanan (tanpa tanda kurung dan koma tambahan), dan representasi file dari setiap node dijelaskan secara rinci dalam dokumentasi dengan komentar. Namun dalam kebanyakan kasus, Anda tidak akan melihat ke sana - semua nama bidang memiliki nama yang logis.

Apa yang diberikan hal ini kepada pengguna? Hal ini memungkinkan Anda mengubah alur kerja tim dengan sangat fleksibel, menggunakan pendekatan yang sudah dikenal. Misalnya, pengembang dapat menyimpan proyek di repositori yang sama dengan backend. Di cabang, selain mengubah basis kode itu sendiri, pengembang dapat memperbaiki skrip dan pengujian kueri yang ada. Setelah melakukan perubahan pada repositori (git, svn, mercurial - apa pun yang paling Anda sukai), CI (favorit Anda, tidak dikenakan oleh siapa pun) meluncurkan utilitas konsol kami testmace-cli, dan laporan yang diterima setelah eksekusi (misalnya, dalam format junit, yang juga didukung di testmace-cli) dikirim ke sistem yang sesuai. Dan masalah keamanan yang disebutkan di atas tidak lagi menjadi masalah.

Seperti yang Anda lihat, TestMace tidak memaksakan ekosistem dan paradigmanya. Sebaliknya, hal ini mudah disesuaikan dengan proses yang sudah ada.

Variabel Dinamis

TestMace mengikuti konsep tanpa kode: jika suatu masalah dapat diselesaikan tanpa menggunakan kode, kami mencoba memberikan kesempatan ini. Bekerja dengan variabel adalah jenis fungsi yang dalam banyak kasus dapat Anda lakukan tanpa pemrograman.

Contoh: kita menerima respon dari server, dan kita ingin menyimpan sebagian respon tersebut ke dalam variabel. Di Postman, dalam skrip pengujian (yang sebenarnya aneh) kami akan menulis sesuatu seperti:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Namun menurut kami, menulis skrip untuk skenario yang sederhana dan sering digunakan seperti itu terlihat mubazir. Oleh karena itu, di TestMace dimungkinkan untuk menetapkan sebagian jawaban ke variabel menggunakan antarmuka grafis. Lihat betapa sederhananya:

Mengapa TestMace lebih baik dari Postman

Dan sekarang dengan setiap permintaan, variabel dinamis ini akan diperbarui. Namun Anda dapat menolak, dengan alasan bahwa pendekatan Tukang Pos lebih fleksibel dan memungkinkan Anda tidak hanya membuat tugas, tetapi juga melakukan beberapa pra-pemrosesan. Berikut cara memodifikasi contoh sebelumnya:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Nah, untuk tujuan ini TestMace punya naskah node, yang mencakup skenario ini. Untuk mereproduksi kasus sebelumnya, tetapi sudah dijalankan oleh TestMace, Anda perlu membuat node skrip mengikuti permintaan dan menggunakan kode berikut sebagai skrip:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Seperti yang Anda lihat, komposisi node juga terlayani dengan baik di sini. Dan untuk kasus sederhana seperti dijelaskan di atas, Anda cukup menetapkan ekspresi ${crypto.MD5($response.data)} variabel yang dibuat melalui GUI!

Membuat tes melalui GUI

Tukang pos memungkinkan Anda membuat pengujian dengan menulis skrip (dalam kasus Tukang Pos, ini adalah JavaScript). Pendekatan ini memiliki banyak keuntungan - fleksibilitas yang hampir tidak terbatas, ketersediaan solusi siap pakai, dll.

Namun kenyataannya seringkali (kita tidak seperti itu, hidup memang seperti itu) bahwa seorang tester tidak memiliki kemampuan pemrograman, tetapi dia ingin memberikan manfaat bagi tim saat ini. Untuk kasus seperti itu, mengikuti konsep tanpa kode, TestMace memungkinkan Anda membuat pengujian sederhana melalui GUI tanpa harus menulis skrip. Sebagai contoh, berikut adalah proses pembuatan tes yang membandingkan nilai kesetaraan:

Mengapa TestMace lebih baik dari Postman

Namun, membuat pengujian dalam editor grafis tidak menghilangkan kemungkinan tersebut tes menulis dalam kode. Semua perpustakaan yang sama ada di sini seperti di node skrip, dan chai untuk tes menulis.

Situasi sering muncul ketika kueri tertentu atau bahkan keseluruhan skrip perlu dijalankan beberapa kali di berbagai bagian proyek. Contoh permintaan tersebut dapat berupa otorisasi multi-tahap khusus, membawa lingkungan ke kondisi yang diinginkan, dll. Secara umum, dalam bahasa pemrograman, kami ingin memiliki fungsi yang dapat digunakan kembali di berbagai bagian aplikasi. Di TestMace fungsi ini dilakukan oleh link simpul Sangat mudah digunakan:
1) membuat kueri atau skrip
2) membuat node bertipe Link
3) di parameter, tentukan tautan ke skrip yang dibuat pada langkah pertama

Dalam versi yang lebih maju, Anda dapat menentukan variabel dinamis mana dari skrip yang diteruskan ke tingkat yang lebih tinggi dibandingkan dengan tautan. Kedengarannya membingungkan? Katakanlah kita membuat Folder dengan nama buat-posting, di dalamnya variabel dinamis ditetapkan ke node ini postId. Sekarang di simpul Tautan buat-posting-tautan Anda dapat secara eksplisit menentukan variabel tersebut postId ditugaskan kepada leluhur buat-posting-tautan. Mekanisme ini (sekali lagi, dalam bahasa pemrograman) dapat digunakan untuk mengembalikan hasil dari suatu β€œfungsi”. Secara umum keren, DRY sedang berjalan lancar dan sekali lagi tidak ada satu baris kode pun yang rusak.

Mengapa TestMace lebih baik dari Postman

Sedangkan untuk Postman, terdapat fitur request untuk menggunakan kembali permintaan gantung sejak tahun 2015, dan tampaknya ada genap beberapa petunjukbahwa mereka sedang mengatasi masalah ini. Dalam bentuknya yang sekarang, Postman, tentu saja, memiliki kemampuan untuk mengubah alur eksekusi, yang secara teori mungkin memungkinkan penerapan perilaku serupa, tetapi ini lebih merupakan peretasan kotor daripada pendekatan yang benar-benar berhasil.

Perbedaan lainnya

  • Kontrol yang lebih besar atas cakupan variabel. Cakupan terkecil di mana suatu variabel dapat didefinisikan di Postman adalah koleksi. TestMace memungkinkan Anda menentukan variabel untuk kueri atau folder apa pun. Di Postman Share, koleksi memungkinkan Anda mengekspor koleksi saja, sedangkan di TestMace, berbagi berfungsi untuk node mana pun
  • TestMace mendukung header yang dapat diwariskan, yang dapat diganti menjadi kueri anak secara default. Tukang pos punya sesuatu tentang ini: tugas, dan bahkan ditutup, tetapi ditawarkan sebagai solusi... menggunakan skrip. Di TestMace, ini semua dikonfigurasi melalui GUI dan ada opsi untuk menonaktifkan header yang diwarisi secara opsional di turunan tertentu
  • Batalkan/Ulangi. Bekerja tidak hanya saat mengedit node, tetapi juga saat memindahkan, menghapus, mengganti nama, dan operasi lain yang mengubah struktur proyek
  • File yang dilampirkan ke permintaan menjadi bagian dari proyek dan disimpan di dalamnya, sekaligus disinkronkan dengan sempurna, tidak seperti Tukang Pos. (Ya, Anda tidak perlu lagi memilih file secara manual setiap kali Anda memulai dan mentransfernya ke rekan kerja di arsip)

Fitur-fitur yang sudah dalam perjalanan

Kami tidak dapat menahan godaan untuk membuka tabir kerahasiaan pada rilis berikutnya, terutama ketika fungsinya sangat bagus dan sudah menjalani penyempurnaan pra-rilis. Jadi, mari kita bertemu.

Fungsi

Seperti yang Anda ketahui, Tukang Pos menggunakan apa yang disebut variabel dinamis untuk menghasilkan nilai. Daftarnya sangat mengesankan dan sebagian besar fungsi digunakan untuk menghasilkan nilai palsu. Misalnya, untuk membuat email acak, Anda perlu menulis:

{{$randomEmail}}

Namun, karena ini adalah variabel (meskipun dinamis), mereka tidak dapat digunakan sebagai fungsi: mereka tidak dapat diparameterisasi, oleh karena itu tidak mungkin untuk mengambil hash dari sebuah string.

Kami berencana menambahkan fungsi "jujur" ke TestMace. Tepat di dalam ${}, Anda tidak hanya dapat mengakses variabel, tetapi juga memanggil fungsi. Itu. jika Anda perlu membuat email palsu yang terkenal itu, kami cukup menulis

${faker.internet.email()}

Selain fakta bahwa ini adalah sebuah fungsi, Anda akan melihat bahwa dimungkinkan untuk memanggil metode pada suatu objek. Dan alih-alih daftar besar variabel dinamis, kita memiliki sekumpulan objek yang dikelompokkan secara logis.

Bagaimana jika kita ingin menghitung hash suatu string? Mudah!

${crypto.MD5($dynamicVar.data)}

Anda akan melihat bahwa Anda bahkan dapat meneruskan variabel sebagai parameter! Pada titik ini, pembaca yang ingin tahu mungkin mencurigai ada sesuatu yang salah...

Menggunakan JavaScript dalam Ekspresi

... Dan untuk alasan yang bagus! Ketika persyaratan untuk fungsi sedang dibentuk, kami tiba-tiba sampai pada kesimpulan bahwa javascript yang valid harus ditulis dalam ekspresi. Jadi sekarang Anda bebas menulis ekspresi seperti:

${1 + '' + crypto.MD5('asdf')}

Dan semua ini tanpa skrip, langsung di kolom input!

Sedangkan untuk Postman, di sini Anda hanya dapat menggunakan variabel, dan ketika Anda mencoba menulis ekspresi sekecil apa pun, validator akan mengutuk dan menolak menghitungnya.

Mengapa TestMace lebih baik dari Postman

Pelengkapan otomatis tingkat lanjut

Saat ini TestMace memiliki pelengkapan otomatis standar yang terlihat seperti ini:

Mengapa TestMace lebih baik dari Postman

Di sini, selain baris pelengkapan otomatis, ditunjukkan milik baris tersebut. Mekanisme ini hanya bekerja pada ekspresi yang diapit tanda kurung ${}.

Seperti yang Anda lihat, penanda visual telah ditambahkan yang menunjukkan jenis variabel (misalnya, string, angka, array, dll.). Anda juga dapat mengubah mode pelengkapan otomatis (misalnya, Anda dapat memilih pelengkapan otomatis dengan variabel atau header). Tetapi ini pun bukanlah hal yang paling penting!

Pertama, pelengkapan otomatis berfungsi bahkan dalam ekspresi (jika memungkinkan). Ini adalah tampilannya:

Mengapa TestMace lebih baik dari Postman

Dan kedua, pelengkapan otomatis kini tersedia dalam skrip. Lihatlah cara kerjanya!

Mengapa TestMace lebih baik dari Postman

Tidak ada gunanya membandingkan fungsi ini dengan Tukang Pos - pelengkapan otomatis di sana hanya terbatas pada daftar statis variabel, header, dan nilainya (koreksi saya jika saya lupa sesuatu). Skrip tidak dilengkapi secara otomatis :)

Kesimpulan

Oktober menandai tahun sejak dimulainya pengembangan produk kami. Selama waktu ini, kami berhasil melakukan banyak hal dan, dalam beberapa hal, berhasil mengejar pesaing kami. Namun demikian, tujuan kami adalah membuat alat yang benar-benar nyaman untuk bekerja dengan API. Masih banyak pekerjaan yang harus kami selesaikan, berikut adalah rencana kasar pengembangan proyek kami untuk tahun mendatang: https://testmace.com/roadmap.

Masukan Anda akan memungkinkan kami menavigasi kelimpahan fitur dengan lebih baik, dan dukungan Anda memberi kami kekuatan dan keyakinan bahwa kami melakukan hal yang benar. Kebetulan hari ini adalah hari penting untuk proyek kami - hari dimana TestMace diterbitkan ProductHunt. Tolong dukung proyek kami, ini sangat penting bagi kami. Apalagi ada tawaran menggiurkan di halaman PH kami hari ini, dan terbatas

Sumber: www.habr.com

Tambah komentar