Berbagi teknologi

jmeter didistribusikan (4)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1.gui

gui jmeter terutama digunakan untuk men-debug skrip

1. Pertama buat scriptnya menggunakan GUI

Buatlah naskahnya terlebih dahulu
Demo: Bagaimana cara membuat skrip adegan campuran?
Gunakan rasio bisnis 211

①Mulai layanan basis data

Layanan basis data: termasuk mysql, redis
port mysql bawaannya 3306

netstat -lntp | grep 3306
  • 1

Dalam keadaan mendengarkan, 6379 adalah port default redis

netstat -lntp | grep 6379
  • 1

Port layanan proyek 18089

netstat -lntp | grep 18089
  • 1

②Akses kesombongan dokumen antarmuka

211 dapat diubah menjadi dua layanan pengujian stres

Salah satunya adalah mendaftar, yang lainnya adalah mendaftar dan login untuk menambah produk.
Keduanya 50%

③Tambahkan grup utas

jmeter—tambahkan grup utas-tambahkan-utas-pengguna-grup utas

Konversikan dua layanan pengujian stres

④Tambahkan pengontrol throughput

jmeter—pengontrol logika tambahan–pengontrol throughput

Ubah dua layanan pengujian stres.
Bisnis stress test yang pertama meliputi registrasi, login, dan penambahan produk
Bisnis stress test yang kedua adalah registrasi

Masukkan deskripsi gambar di sini

masing-masing 50%.
Masukkan deskripsi gambar di sini

⑤Tambahkan permintaan http sampel

jmeter-tambah-sampler-http-permintaan
Konversikan dua layanan pengujian stres
Masukkan deskripsi gambar di sini

Bisnis stress test yang pertama meliputi registrasi, login, dan penambahan produk

Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

Bisnis kedua adalah registrasi

Tulis sesuai kesombongan registrasi, masukkan parameter
Masukkan deskripsi gambar di sini
Umumnya Anda tidak perlu mengisi ID saat memasukkannya.
Addtime juga tidak perlu diisi
Salin dan tempel data parameter ke jmeter
Masukkan deskripsi gambar di sini

jalur berdasarkan url
Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

⑥Tambahkan pengelola tajuk http,

Mereka semua lulus json
Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

⑦Tambahkan nilai default permintaan http

Isi ip dan port sesuai dengan dokumen antarmuka
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

⑧Tambahkan pendengar dan lihat pohon hasil

Masukkan deskripsi gambar di sini

⑨Tambahkan pernyataan

Yang terbaik adalah menambahkan pernyataan

Masukkan deskripsi gambar di siniMasukkan deskripsi gambar di sini

2. Non-gui

-nJalankan jmeter dalam mode non-gui
-t mengeksekusi lokasi file pengujian. Menentukan skrip untuk menjalankan jmeter. Ini tidak ada di jalur saat ini.
-l menentukan file hasil yang dihasilkan, yaitu file jtl
-e Setelah pengujian selesai, buat laporan pengujian
-o menentukan lokasi penyimpanan html laporan pengujian
-r mulai dari jarak jauh

1. Mesin press tunggal

①Ajukan permohonan untuk pers

Instal jdk dan jmeter di linux tekan
Instal di bawah usr/lokal
Langsung unggah jmeter di jendela ke pers linux, karena plug-in yang terlibat dalam skrip debugging juga tersedia.
Masukkan deskripsi gambar di sini

②Unggah naskah ke pers

Catatan: Jika skrip melibatkan file parameter csv, Anda perlu mengunggah file parameter csv ke direktori bin jmeter di Linux.
Laporan agregasi dan pemroses harus dinonaktifkan sebelum diunggah

5 utas, tambahkan satu setiap 30 detik, jadi 150

Durasinya harus lebih lama dari waktu Rang up yaitu 150. Jika berjalan selama 50 detik lagi, setel ke 200.
Masukkan deskripsi gambar di sini

Setelah upload jmeter berhasil, verifikasi versi jmeter dan apakah tersedia.

Masukkan deskripsi gambar di sini

③Inisialisasi

Ada dua tempat
Pertama, jalur untuk menyimpan skrip pengujian perlu membuat direktori untuk menyimpan laporan html.

Masukkan deskripsi gambar di sini
Sebelum menjalankan skrip, direktori res harus kosong
Kedua, membersihkan data pada tabel database tanpa mempertimbangkan data yang ada.
Masukkan deskripsi gambar di sini

④Jalankan skrip

Masukkan deskripsi gambar di sini

⑤Lihat hasil

hasil
Menyelesaikan 548 permintaan dalam 13 detik

Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

Buka laporan agregat
Jumlah permintaan ko yang gagal

Masukkan deskripsi gambar di sini
waktu respons waktu respons
Masukkan deskripsi gambar di sini

tempat sampah

Masukkan deskripsi gambar di sini

Bagaimana cara melihat file jtl?
jtl dapat dibuka di pendengar mana pun, seperti melihat pohon hasil, laporan agregat, tps, waktu respons.
Jika dibuka di laporan agregat, klik Telusuri
Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini
Seperti tps, waktu respon
Mari kita lihat tps dulu
Tambahkan tps
Klik untuk menelusuri

Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

Waktu meresponMasukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

2. Didistribusikan

Terkadang satu pers tidak dapat mencapai target, sehingga diperlukan pers yang terdistribusi.
Lagi pula, sumber daya mesin tunggal terbatas dan sulit untuk mendukung konkurensi besar. Mesin cetak tunggal juga memiliki hambatan.

2.1 Prinsip distribusi

Situs web resmi:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Mesin server berfungsi sebagai mesin kontrol
Mesin-mesin lainnya digunakan sebagai mesin beban
Layanan yang diminta berdasarkan target
Pengontrol mengontrol start dan stop mesin beban dari jarak jauh dengan mengirimkan sinyal, dan pada saat yang sama mengumpulkan data dan ringkasan mesin beban
Mesin beban terutama memulai thread untuk mengakses server dan menargetkan server di bawah stress test.
Umumnya, pekerja memulai mesin kontrol server jmeter untuk mengontrol mesin beban dari jarak jauh. Mesin beban memulai thread dan meminta target untuk mendapatkan data dan kemudian mengirimkannya kembali ke mesin kontrol.

Di mana skrip ditempatkan ketika didistribusikan?
Satu pengontrol banyak pekerja
Saat menjalankan non-gui, skrip dikirimkan ke server. Sekarang setelah didistribusikan, ke mana skrip tersebut harus dikirimkan?
Skrip akan ditransfer ke pengontrol. Selama eksekusi, skrip akan dikirim ke setiap mesin beban, yaitu setiap pekerja. Setelah beban memperoleh skrip, skrip akan mulai dijalankan. Setelah eksekusi, data akan diteruskan ke mesin kontrol untuk ringkasan.

2.2 Tindakan pencegahan untuk pengujian tekanan terdistribusi

(https://img-blog.csdnimg.cn/e3de7b8b65a1447db3bc3618876f62d3.png)
Firewall harus ditutup. Jika firewall tidak ditutup, port harus dibuka.
Semua klien harus berada di subnet yang sama.
Pastikan jmeter dapat mengakses server
Pastikan versi jmeter dan java sama
nonaktifkan SSL

2.3 Persiapan lingkungan

Membutuhkan 3 mesin virtual
Gunakan 181 sebagai Pengendali (mesin kendali)
Gunakan 182.183 sebagai Pekerja (mesin beban)
Pada saat yang sama, ketiga mesin virtual ini harus menginstal jdk dan jmeter.
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
Lihat versi jdk
Masukkan deskripsi gambar di sini
Instal jmeter di tiga mesin virtual
Jmeter mesin lokal ditransfer ke direktori usr/local mesin virtual.
Periksa versi jmeter setelah mengunggah
Masukkan deskripsi gambar di sini

2.4 Konfigurasi terdistribusi

①Pekerja

182、182
Cadangkan file konfigurasi jmeter.properties terlebih dahulu
Masukkan deskripsi gambar di sini

server_port dapat diubah atau tidak diubah. Nilai defaultnya adalah 1099.
Masukkan deskripsi gambar di sini

nonaktifkan SSL
server.rmi.ssl.disable=false, ubah false menjadi true
Masukkan deskripsi gambar di sini

Mulai jemter
./jmeter-server
Masukkan deskripsi gambar di sini
Periksa port 182 untuk melihat apakah dalam keadaan mendengarkan

Masukkan deskripsi gambar di sini

memeriksa
Telnet mesin kontrol ke mesin beban untuk melihat apakah port dapat diakses.
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

②Pengontrol

Sebelum mengonfigurasi mesin kontrol, debug pada jmeter di jendela.
menang: untuk debugging
Cadangkan file konfigurasi jmeter.properties terlebih dahulu
Masukkan deskripsi gambar di sini
Secara default, mesin ini digunakan sebagai mesin beban.
Mesin beban saat ini adalah mesin beban jarak jauh, ubah remote_hosts=127.0.0.1 menjadi remote_hosts=192.168.117.182:1099
IP dan port mesin beban jarak jauh harus ditulis di sini. Jika kelipatan adalah kelipatan, pisahkan dengan koma.
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini
nonaktifkan SSL
Ubah server.rmi.ssl.disable=false menjadi server.rmi.ssl.disable=true
Masukkan deskripsi gambar di sini

Debug dulu melalui mesin ini
Mulai ulang jmeter dan baca kembali file konfigurasi
Masukkan deskripsi gambar di sini
Setelah melakukan debug di jendela, buka Linux untuk konfigurasi.

Konfigurasikan pada 181
Cadangkan file konfigurasi jmeter.properties terlebih dahulu

Masukkan deskripsi gambar di sini

Mesin beban saat ini adalah mesin beban jarak jauh, yang akanremote_hosts=127.0.0.1Mengubahremote_hosts=192.168.117.182:1099
IP dan port mesin beban jarak jauh harus ditulis di sini. Jika kelipatan adalah kelipatan, pisahkan dengan koma.

Masukkan deskripsi gambar di sini

Masukkan deskripsi gambar di sini

server.rmi.ssl.nonaktifkan=salah
Akanserver.rmi.ssl.disable=falseMengubahserver.rmi.ssl.disable=true
Masukkan deskripsi gambar di sini
Ketika skrip dikirimkan ke mesin kontrol, skrip akan secara otomatis didistribusikan ke setiap mesin beban.
Uji login skenario tunggal yang terpisah
Masukkan deskripsi gambar di sini
Setelah skrip diunggah, jalankan skrip tersebut
Jalankan melalui pemuatan jarak jauh

/usr/local/apache-jmeter-5.1.1/bin/jmeter -n -r -t test.jmx
  • 1

Masukkan deskripsi gambar di sini

Setiap mesin beban kerja (press) mempunyai 5 thread, dan total mesin kendali mempunyai 10 thread.
Masukkan deskripsi gambar di sini

Persiapan lingkungan
Dua mesin virtual. Ada satu master dan dua budak. Mesin Windows berfungsi sebagai satu master dan budak menggunakan mesin virtual.
Referensi: https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Permasalahan yang muncul:
java.rmi.RemoteException: Tidak dapat memulai. localhost.localdomain adalah alamat loopback

Objek jarak jauh yang dibuat: UnicastServerRef2 [liveRef: [titik akhir:127.0.0.1:43474,ID objek:[-5a8dd143:17e2852fe88:-7fff, 3673082414768940798]]]
Server gagal untuk memulai: java.rmi.RemoteException: Tidak dapat memulai. localhost.localdomain adalah alamat loopback.
Terjadi kesalahan: Tidak dapat memulai. localhost.localdomain adalah alamat loopback.
Masukkan deskripsi gambar di sini
Informasi pengecualian: Pengecualian startup server: Panggilan metode jarak jauh Java melemparkan pengecualian: Tidak dapat memulai layanan. localhost.localdomain adalah alamat loopback lokal

Nama host yang diperoleh melalui perintah hostname adalah localhost.
Periksa konfigurasi host melalui perintah cat /etc/hosts.localhost localhost.localdomain localhost4... menunjuk ke 127.0.0.1
Masukkan deskripsi gambar di sini
Larutan:
Tentukan alamat IP host server jarak jauh (rmi.server.hostname)
Mulailah dengan menentukan perintah terminal
./jmeter-server -Djava.rmi.server.namahost=192.168.2.2
Masukkan deskripsi gambar di siniMasukkan deskripsi gambar di sini