it-swarm-id.com

Alat-alat untuk menguji server HTTP?

Saya harus memuat uji server HTTP/aplikasi web beberapa kali, dan setiap kali saya tidak puas dengan kualitas alat yang dapat saya temukan.

Jadi, ketika Anda memuat pengujian server HTTP, alat apa yang Anda gunakan? Dan hal-hal apa yang kemungkinan besar akan saya lakukan salah pada saat saya harus melakukannya lagi?

39
David Wolever

JMeter gratis.

Mercury Interactive Load Runner super Bagus dan super mahal.

24
Chad Grant

Saya merasa sangat memenuhi syarat untuk menjawab pertanyaan ini, karena perusahaan saya saat ini perlu mensimulasikan 25.000 koneksi simultan ke server web kami (kami menayangkan iklan online).

Untuk pengujian beban volume tinggi, Httperf adalah cara yang harus dilakukan. Ini gratis, dan dalam pengalaman kami, ini dapat mensimulasikan lebih banyak koneksi simultan yang JMeter atau STA pada perangkat keras yang sama.

Edit:

Jika Anda penasaran, kami mensimulasikan 3500 permintaan per detik pada Optiplex 330 berdaya rendah, berdaya rendah, dan kecil. Kotak kecil ini harganya hanya $ 280, dan kami memiliki banyak dari mereka yang terhubung untuk menjalankan Httperf sesuai permintaan. Sebagai perbandingan, JMeter hanya bisa mendorong sekitar 800-900 req/detik pada perangkat keras ini.

21
Portman

Jika Anda hanya ingin memuat satu URL pada satu waktu di server web, maka unduh Apache AB. Muncul dengan server HTTP Apache.

Perintah sederhana

ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers

akan menjalankan 10.000 permintaan dengan konkurensi 10 pengguna.

Jika Anda ingin merekam sesi penjelajahan maka lanjutkan dan terima jawaban jmeter. Jmeter luar biasa dan dapat menskalakan banyak mesin uji yang dapat membuang beban besar.

20

Ada Tsung , alat berbasis Erlang.

Ada juga daftar alat yang sangat panjang di http://www.softwareqatest.com/qatweb1.html#LOAD

8
Jauder Ho

Untuk pengujian cepat, Anda dapat menggunakan urutan ikal dan set URL. Katakan misalnya kita akan menjalankan uji tekanan beban terhadap Google, kita dapat menjalankan ...

curl -s "http://google.com?[1-1000]"

Ini akan membuat 1.000 panggilan ke google yaitu.

http://google.com?1  
http://google.com?2  
http://google.com?3 
... 
http://google.com?1000

Ini dibahas secara lebih rinci di Cara cepat menguji server web dengan curl.

6
Ian Purton

Anda perlu mengatur berbagai tes:

  • Tes normal, mensimulasikan pengguna seperti mereka akan berperilaku. Anda akan menerapkan waktu think (tidak ada http fury 1s antara halaman). Salah satu caranya adalah merekam sesi web, sehingga Anda akan memiliki waktu yang realistis untuk menyelesaikan/membaca setiap halaman. Muatan akan datang langkah demi langkah sampai Anda mencapai beban rata-rata saat ini dalam produksi
  • Tes pecah: Sama seperti sebelumnya, tetapi tambahkan beban sampai Anda mendapatkan kesalahan http 500 pertama. Tujuannya adalah untuk mengetahui berapa banyak muatan yang dapat Anda kelola hingga akan rusak
  • Tes berjalan lama. Anda membuat skenario pertama berjalan selama 12 jam, untuk memastikan Anda tidak memiliki kebocoran memori, atau penurunan kinerja seiring waktu.

Setelah/sebelum setiap tes, Anda harus meletakkan kembali platform seperti sebelumnya: mengembalikan database, reboot untuk membersihkan memori dan cache.

Anda juga akan menerapkan pemanasan: Luncurkan skenario sekali sebelum ujian yang sebenarnya, jadi halaman web dikompilasi, koneksi ke database dibuat. Selain itu, panggilan pertama akan selalu buruk dalam statistik Anda.

Anda dapat menambahkan kompleksitas, seperti:

  • gunakan skenario yang berbeda (pengunjung/tamu, anggota), yang akan tampil berbeda.
  • Simulasikan perbedaan akses bandwidth
  • Mengacak kata yang dicari dan berpikir waktu.

Satu hal penting terakhir: Anda HARUS menyimpan semua skenario yang telah selesai untuk dapat membuatnya lagi dengan cara yang sama, sehingga Anda dapat membandingkan kinerja dengan tes sebelumnya.

5
Mathieu Chateau

Jika Anda hanya ingin menguji bagaimana menangani beberapa koneksi, Anda dapat menggunakan sesuatu seperti Pengepungan . Masih tidak yakin itu adalah ukuran yang bagus tetapi setidaknya akan memberi tahu Anda bagaimana Anda menangani beberapa koneksi

2
trent

Saya telah menggunakan openSTA .

Ini menggunakan bahasa skrip yang relatif sederhana.

Anda dapat dengan mudah menguji layanan web/server dan menulis skrip Anda sendiri.

Ini memungkinkan Anda untuk menempatkan skrip bersama-sama dalam tes dengan cara apa pun yang Anda inginkan dan mengkonfigurasi jumlah iterasi, jumlah pengguna di setiap iterasi, waktu tanjakan untuk memperkenalkan setiap pengguna baru dan keterlambatan antara setiap iterasi. Tes juga dapat dijadwalkan di masa depan.

Ini open source dan gratis.

Ini menghasilkan sejumlah laporan yang dapat disimpan ke spreadsheet. Kami kemudian menggunakan tabel pivot untuk dengan mudah menganalisis dan membuat grafik hasil.

2
nzpcmad

Saya menggunakan LoadRunner sebelumnya tetapi, agak mahal, saya juga menggunakan alat edisi Microsoft Team Tester yang mencakup sistem yang melakukan tes beban. Saya cukup senang dengan cara alat ini bekerja, dan Anda dapat memperluas tes menggunakan. Net yang merupakan sintaks yang lebih mudah untuk diambil daripada LoadRunner.

Versi load runner yang kami gunakan juga tidak dapat menangani situs AJAX kami (ini kembali pada tahun 2000 jadi saya yakin alat ini telah ditingkatkan sekarang)

1
JoshBerke

Kami menggunakan WAPT , dan itu bekerja dengan sangat baik. Mudah diatur, dan hanya beberapa ratus dolar. LoadRUnner sangat mahal, dan benar-benar di luar jangkauan untuk semua kecuali Hte Forutune 500.

1
rmalayter

Itu tergantung pada seberapa kompleks skenario Anda.

Untuk mensimulasikan dengan benar pengguna yang sebenarnya memuat di server Anda, Anda harus mencoba mensimulasikan apa yang sebenarnya dilakukan pengguna. Jika pengguna Anda baru saja menekan server dengan URL, salah satu alat gratis/sederhana akan dilakukan.

Untuk situs web yang sedikit lebih kompleks, Anda ingin menggunakan alat yang membantu Anda dengan korelasi nilai dinamis, parameterisasi dll. Anda dapat menggunakan Load-Runner dan sejenisnya, saya lebih suka menggunakan WebLOAD =.

0
Yasei No Umi