Pengenalan Prestasi Uji menggunakan JMeter

1. Gambaran keseluruhan

Dalam artikel ini, kita akan menggunakan Apache JMeter untuk mengkonfigurasi dan menjalankan ujian prestasi.

2. Menyiapkan JMeter

Mari muat turun JMeter, unzipnya, pergi ke folder tong sampah dan jalankan yang boleh dilaksanakan (* .bat untuk Windows dan * .sh untuk Linux / Unix).

Seterusnya, kita hanya perlu menambahkan folder ini ke pemboleh ubah persekitaran jalan supaya dapat diakses dari baris perintah.

Versi yang paling stabil pada masa penulisan ialah 3.3 - kita boleh menyemak versi terbaru di sini.

3. Membuat Skrip JMeter

Sekarang mari tulis skrip JMeter pertama kami (fail yang mengandungi keterangan teknikal ujian kami).

API ini adalah aplikasi SpringBoot sederhana yang memaparkan REST API.

Mari kemas kini satu rancangan Uji dan ubah namanya terlebih dahulu, kemudian tambahkan Kumpulan Thread .

A Thread Group membolehkan kita untuk mengetahui aliran pengguna dan menyerupai bagaimana mereka berinteraksi dengan aplikasi, klik kanan pada nama skrip kami pada GUI dan ikut menu yang dipilih:

Sekarang kita menuju ke bahagian konfigurasi Thread Group , di mana kita menentukan jumlah pengguna yang membuat permintaan ke aplikasi kita secara selari:

Di sini, kami menentukan parameter seperti:

- Nama: nama yang ingin kami berikan kepada kumpulan utas

- Bilangan Threads (pengguna) : bilangan pengguna selari

- Waktu peningkatan : masa yang diperlukan untuk pergi dari 0 ke jumlah pengguna yang dinyatakan

- Kiraan gelung : bilangan pengulangan

Tambahkan Permintaan HTTP kerana ini adalah permintaan yang akan kita simulasi sebagai datang dari setiap 5 pengguna.

Mari mengisi maklumat untuk mengatasi API kami yang dijelaskan di sana seperti pada gambar di bawah:

Kami hanya mengisi alamat laman web, port, dan jalan tertentu.

Selanjutnya, mari kita simulasi permintaan pengguna setelah menambahkan Lihat Hasil Pohon (Gunakan Lihat Hasil dalam Jadual jika hasilnya adalah daftar catatan) dengan mengikuti menu " Tambah> Pendengar" .

Tekan butang kanan anak panah hijau di bahagian atas untuk menjalankan ujian dan melihat data tindak balas:

Kita dapat melihat gambaran respons yang lebih terperinci pada tab hasil Sampler .

Mari kita akhiri dengan menambahkan Duration Assertion dalam HTTP Request , jadi setiap permintaan yang berlangsung lebih lama dari sepuluh milisaat akan dianggap sebagai ujian yang gagal:

Setelah menjalankan semula ujian, kami melihat ada beberapa pengguna (di sini 3) yang tidak dapat memperoleh senarai pelajar dalam masa kurang dari sepuluh milisaat:

Sekarang, mari simpan ujian dengan pelanjutan .jmx di folder sumber API.

Lebih banyak elemen tersedia untuk mengkonfigurasi fail ujian kami:

  • Permintaan JDBC: berguna untuk mengirim permintaan JDBC (pertanyaan SQL) ke pangkalan data, sebelum menggunakannya kita perlu menyiapkan elemen konfigurasi sambungan JDBC
  • Tegasan XML: menguji bahawa data tindak balas dari dokumen XML yang betul
  • Ukuran Tegasan: menegaskan bahawa tindak balas mengandungi bilangan bait yang betul di dalamnya
  • Penerbit JMS: untuk menerbitkan pesan ke sasaran tertentu (topik / antrian) mengikuti spesifikasi J2EE untuk pemesejan

Semua komponen yang ada diperincikan dalam manual pengguna.

4. Jalankan Ujian JMeter

Terdapat dua cara untuk menjalankan ujian JMeter, salah satunya terdiri daripada menggunakan plugin Maven yang tersedia dan yang lain aplikasi JMeter mandiri dalam mod bukan GUI.

Walau apa pun, kedua-duanya perlu mengetahui di mana untuk mencapai skrip JMeter yang kita konfigurasikan sebelumnya.

4.1. Pemalam JMeter Maven

JMeter Maven Plugin adalah plugin Maven yang membawa kemudahan untuk menjalankan ujian JMeter sebagai sebahagian daripada pembangunan kami; versi terakhirnya sekarang ialah 2.6.0 yang serasi dengan Apache JMeter 3.3.

Mari tambahkan ke pom.xml projek kami:

 com.lazerycode.jmeter jmeter-maven-plugin 2.6.0   jmeter-tests  jmeter     ${project.basedir}/src/main/resources ${project.basedir}/src/main/resources  

After this, we can run all our tests with mvn verify or just the JMeter ones with mvn jmeter:jmeter; here is the console output of the command:

Note: Here we specified the directory where our tests are located in the project, either the default one(${project.basedir}/src/test/jmeter) will be chosen; likewise is configured the result directory else the default one will be ${project.basedir}/target/jmeter/results.

The full plugin documentation is accessible here.

4.2. Non-GUI Mode

The other way to do it's via the JMeter executable, assuming that it's available via the command line we can do this:

jmeter -Jjmeter.save.saveservice.output_format=xml

-n -t src/main/resources/JMeter.jmx -l src/main/resources/JMeter.jtl

Kami menetapkan XML sebagai format output, yang mengisi fail ujian yang tepat dan hasilnya.

Catatan: disarankan untuk tidak menggunakan mod GUI untuk ujian beban, hanya untuk pembuatan ujian dan ujian debug.

5. Kesimpulan

Dalam tutorial ringkas ini, kami telah menyiapkan Apache JMeter pada aplikasi SpringBoot untuk menjalankan ujian prestasi dengan plugin Maven sambil melihat secara praktikal bagaimana merancang ujian prestasi asas.

Seperti biasa, kod sumber untuk artikel ini boleh didapati di GitHub.