informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Pada penelitian sebelumnya, kami telah menggunakan JMeter untuk menyelesaikan pengujian antarmuka tingkat protokol untuk sistem Agileone. Kita juga tahu bahwa inti dari teknologi pengujian kinerja adalah menggunakan teknologi multi-threading untuk mengirim permintaan protokol guna menyelesaikan simulasi sejumlah besar pengguna yang mengakses sistem. Tujuan desain awal JMeter sebenarnya adalah untuk pengujian kinerja. Misalnya, langkah pertama saat kita membuat rencana pengujian adalah membuat grup thread. Eksperimen ini akan menjelaskan cara menggunakan JMeter untuk menyelesaikan tes kinerja login dan posting Phpwind.
Tujuan
(1) Kuasai penggunaan pencarian asosiasi di JMeter.
(2) Kuasai desain dan penggunaan thread di JMeter.
(3) Kuasai penggunaan laporan pengujian di JMeter.
proses percobaan
Kami telah membuat total 100 pengguna untuk Phpwind dari testuser_1 hingga testuser_100, jadi selama proses pengujian kinerja, kami harus menerapkan login acak pengguna, untuk mensimulasikan skenario nyata dengan lebih baik.
(1) Buat sampler "permintaan HTTP", beri nama "DoLogin", dan isi parameter permintaan POST login yang sesuai.
(2) Buat "pernyataan respons" dan "lihat pohon hasil" untuk sampler, dan hal yang sama berlaku untuk permintaan berikutnya.
(3) Buat "pra-prosesor" untuk sampler dan terapkan nomor acak dari 1 hingga 100.
(4) Permohonan pengujian akhir yang dilaksanakan adalah sebagai berikut:
Karena saat memposting di Phpwind, Anda harus menentukan kolom "verifikasi", yang nilainya merupakan angka acak, kita harus menggunakan ekspresi reguler untuk mengaitkan nilai yang sesuai dalam respons. Bagian ini telah dikuasai dalam proses implementasi pengujian antarmuka. Di sini kita terutama melihat bagaimana mengimplementasikannya di JMeter:
(1) Tambahkan sampler "permintaan HTTP" dan kirim permintaan GET ke "/phpwind/post.php?fid=2" untuk mendapatkan respons.
(2) Tambahkan post-processor ke sampler, setel ke "Regular Expression Extractor", dan buat pengaturan berikut:
(3) Penjelasan singkat mengenai kolom input di atas:
a) Nama referensi: Nama parameter yang akan direferensikan pada permintaan berikutnya. Jika Anda mengisi kode verifikasi, Anda dapat menggunakan ${verifycode} untuk mereferensikannya.
b) Ekspresi reguler: Tanda kurung berisi konten yang akan diekstraksi, yang merupakan keahlian kami dalam menerapkannya.
c) Templat: dikutip dengan $-$. Jika ekspresi reguler yang kita atur menemukan beberapa nilai, nomor urut menunjukkan nilai mana yang akan diproses.
d) Angka yang cocok: 0 mewakili nilai acak, 1 mewakili semua nilai, biasanya hanya diisi dengan 0.
e) Nilai default: Jika parameter tidak memperoleh nilai, maka nilai default diberikan untuk memperolehnya.
(1) Tetapkan parameter pengguna untuk sampler dan gunakan asisten fungsi untuk menghasilkan nomor acak untuk judul dan konten postingan.
(2) Gunakan kode verifikasi yang diperoleh pada langkah sebelumnya sebagai nilai bidang verifikasi di isi permintaan POST.
(3) Permintaan pengujian akhir yang dihasilkan adalah sebagai berikut:
Secara default, JMeter, seperti pengujian antarmuka, hanya bertanggung jawab untuk mengunduh halaman yang diminta saat ini dan tidak akan mengunduh sumber daya tambahan lainnya dari halaman tersebut. Ini jelas tidak sesuai dengan situasi sebenarnya. Jadi kita perlu mengunduh semua sumber daya halaman. Di tab "Lanjutan" di sampel HTTP, centang "Dapatkan semua sumber daya yang disertakan dari file HTML".
Untuk eksekusi ini, kami masih mengikuti desain skenario yang sama seperti skrip Java sebelumnya: 50 pengguna, 5 pengguna secara bersamaan setiap 10 detik, dan setiap pengguna berjalan 100 kali. Pengaturan spesifiknya adalah sebagai berikut:
Menyetel parameter "Periode Peningkatan (dalam detik)" pada pengaturan di atas ke 100 detik berarti menambahkan thread setiap dua detik. Meskipun frekuensi tidak dapat ditentukan secara sembarangan seperti thread khusus, pengaturan seperti itu konsisten setiap 10 detik. Tidak ada perbedaan mendasar dalam efek dari 5 pengguna secara bersamaan.
Selain mengatur jumlah run, kita juga dapat mengatur total waktu berjalan dari proses uji kinerja. Di bagian bawah gambar di atas, centang "Penjadwal" dan atur durasinya. Jika kita perlu berlari terus menerus selama satu jam, kita hanya perlu mengatur nilainya menjadi 3600 detik.
Waktu berpikir adalah pengaturan yang diperlukan untuk mensimulasikan skenario pengguna sebenarnya. Komponen "timer" yang disediakan oleh JMeter digunakan untuk mensimulasikan waktu berpikir pengguna. JMeter hadir dengan banyak jenis timer. Kami menggunakan "Timer acak Gaussian" yang lebih umum digunakan. Kita dapat mengikuti langkah-langkah berikut untuk membuat timer di JMeter. Sampler menetapkan waktu berpikir:
(1) Klik kanan sampler, misalnya kita klik "DoLogin" untuk membuat "Gaussian random timer" baru.
(2) Atur offset ke 2000 milidetik dan offset penundaan tetap ke 4000 milidetik. Fungsinya untuk menghasilkan angka acak dalam rentang 4 detik plus atau minus 2 detik, yaitu waktu jeda acak antara 2 detik hingga 6 detik.
Lebih lanjut tentang penggunaan pengatur waktu JMeter
Konsep titik pertemuan pertama kali diusulkan oleh alat pengujian kinerja LoadRunner. Fungsinya adalah setelah sekelompok utas mengirimkan permintaan, semua orang berkumpul hingga semua utas disinkronkan ke suatu titik waktu, dan kemudian mengirimkan permintaan tersebut bersama-sama. Ini digunakan untuk mensimulasikan pengujian konkurensi yang lebih ketat. Meskipun penggunaan titik pertemuan tidak konsisten dengan skenario nyata, ini dapat memberikan tekanan instan yang lebih besar pada server.
Di JMeter, kita dapat menggunakan timer "Sinkronisasi Timer" untuk menyelesaikan pemrosesan titik pertemuan. Misalnya, gambar berikut menunjukkan kepada kita bagaimana menerapkan strategi pengujian bersamaan untuk sampler "DoPost":
(1) Jumlah Pengguna yang Disimulasikan untuk Dikelompokkan berdasarkan: Nilai ini sesuai dengan jumlah thread pada titik pengumpulan. Di sini kita menetapkannya menjadi 50, yang berarti bahwa koleksi harus menunggu selama 50 thread sebelum mengirimkan permintaan berikutnya secara bersamaan. Jika disetel ke 0 di sini, berarti menggunakan kumpulan semua utas yang disetel oleh grup utas.
(2) Batas waktu dalam milidetik: Ditetapkan di sini ke 10.000, yang berarti batas waktu titik pertemuan adalah 10 detik, artinya, jika semua utas tidak menunggu selama 10 detik, maka mereka tidak akan menunggu lagi. Thread yang telah menyelesaikan pengumpulannya langsung mengirimkan permintaan berikutnya.
Faktanya, dalam pengembangan thread asli Java, kita juga dapat menggunakan dua metode sinkronisasi "wait()" dan "notifyAll()" untuk menyelesaikan simulasi titik pertemuan.
JMeter juga memiliki banyak komponen bawaan untuk melihat laporan pengujian, tetapi yang paling umum digunakan adalah "laporan agregasi" yang dibuat untuk grup thread tertentu. Misalnya, hasil pengujian kinerja Phpwind saat ini ditunjukkan di bawah ini:
Kita dapat melihat dari gambar di atas jumlah eksekusi masing-masing sampler, berbagai statistik matematis waktu respons (rata-rata, median, nilai 90%, nilai minimum, nilai maksimum), tingkat kesalahan transaksi, bandwidth jaringan Throughput, total ukuran respons, total ukuran permintaan dan data lainnya. Selain memantau indikator kinerja sisi server, indikator ini pada dasarnya cukup bagi kami untuk menganalisis data dasar untuk pengujian kinerja.
Latihan pikiran
(1) Memahami penggunaan komponen lain di JMeter.
(2) Gunakan JMeter untuk menyelesaikan uji kinerja suatu proyek dan menyelesaikan masalah yang dihadapi satu per satu.
(3) Bandingkan tes kinerja di JMeter dengan tes kinerja yang kami kembangkan sendiri menggunakan Java asli untuk melihat persamaan dan perbedaannya.
Akhir kata, saya ucapkan terima kasih kepada semua orang yang telah membaca artikel saya dengan cermat. Melihat peningkatan jumlah penggemar dan perhatian, selalu ada rasa hormat. Meski bukan barang yang sangat berharga, jika Anda bisa menggunakannya, Anda bisa mengambilnya langsung!
Kita harus belajar untuk mendapatkan pekerjaan bergaji tinggi. Pertanyaan wawancara berikut adalah materi wawancara terbaru dari perusahaan Internet tingkat pertama seperti Alibaba, Tencent, Byte, dll., dan beberapa bos Byte telah memberikan jawaban yang berwibawa Saya yakin setiap orang dapat menemukan pekerjaan yang memuaskan berdasarkan informasi wawancara.