Apakah ada cara untuk menguji bagaimana kinerja situs di bawah beban

9

Saya telah membuat situs web Asp.net MVC dan meng-host-nya di penyedia hosting bersama. Karena situs web saya mengelilingi ide yang sangat umum, mungkin ada beberapa pengguna bersamaan di masa mendatang.

Jadi, saya sedang memikirkan cara untuk menguji situs web saya untuk kinerja on-load. Seperti bagaimana kinerja situs ketika 100 atau 1000 pengguna online pada saat yang sama dan menjelajahi situs web. Ini juga akan membuat saya mengerti apakah permintaan LINQ saya ditulis dengan baik atau tidak.

Pankaj Upadhyay
sumber

Jawaban:

12

Pertama-tama, istilah yang tepat adalah stress test . Ada beberapa solusi untuk tes stres situs web, salah satu solusi yang saya sarankan adalah loadimpact . Apa yang mereka lakukan adalah membombardir situs Anda dengan permintaan dari berbagai server di seluruh dunia dan memberi Anda laporan analitik tentang bagaimana situs Anda menangani tekanan. Mereka memiliki tes gratis, di mana Anda bisa mendapatkan ide umum, tetapi untuk lebih Anda harus membayar biaya berlangganan.

Jenis-jenis tes hanya menguji website dari pengunjung titik pandang, untuk informasi lebih spesifik Anda harus profil aplikasi Anda secara lokal, dan saya tidak punya apa-apa lagi untuk menambah jawaban sebelumnya, saya menggunakan Apache JMeter juga .

Dan, terakhir, sebagai pengembang web yang sadar kinerja, Anda harus melihat YSlow :

YSlow menganalisis kinerja halaman web dengan memeriksa semua komponen pada halaman tersebut, termasuk komponen yang dibuat secara dinamis dengan menggunakan JavaScript. Ini mengukur kinerja halaman dan menawarkan saran untuk perbaikan.

YSlow untuk Firefox terintegrasi ke dalam alat pengembangan web Firebug untuk Firefox.

Lebih sering daripada tidak, saya menemukan Javascript menjadi hambatan yang sebenarnya dan bukan back end code atau database. Tentu saja pertanyaan yang ditulis dengan buruk dapat menjadi penalti kinerja utama, tetapi setelah Anda mengatasinya, selalu jalankan YSlow dan ikuti sarannya, itu adalah penyelamat hidup.

Bacaan lebih lanjut:

di StackOverflow, tentu saja!

yannis
sumber
Jelajahi solusi lain sebelum Anda membayar biaya berlangganan, tentu saja. Ada beberapa solusi serupa. Saya suka, tetapi pekerjaan membayar biayanya bukan saya :)
yannis
Saya akan menggunakan tes gratis .... tidak ingin pengujian ketat untuk saat ini, karena tidak masuk akal untuk saat ini .... hanya ingin mendapatkan ide :-)
Pankaj Upadhyay
7

Anda menggunakan hosting bersama sehingga tidak mungkin Anda dapat menjalankan tes apa pun yang menunjukkan kinerja dengan benar, karena tidak ada jaminan tingkat sumber daya yang dapat diakses aplikasi Anda pada satu waktu.

Namun, apa yang akan saya lakukan dalam situasi itu adalah memulai dengan menjalankan tes secara terpisah pada kotak khusus (ini bisa menjadi laptop Anda sendiri); menggunakan alat seperti Visual Studio Load Test suite atau JMeter (yang secara pribadi saya tidak tahan), dan membangun satu set tes yang mewakili jalur khas melalui aplikasi Anda (Anda harus bisa mendapatkan informasi tentang jalur khas melalui penggunaan Google Analytics. Jika ini tidak tersedia, Anda bisa menggunakan yang menurut Anda mungkin, tetapi ingat bahwa ini tidak akan memberikan garis dasar yang akurat). Kemudian lakukan uji ramp-up, mulai dari 1 pengguna, lalu perlahan tambahkan pengguna sampai Anda mencapai perkiraan beban puncak. Itu akan menunjukkan kepada Anda seberapa baik sistem Anda bertahan secara keseluruhan (saya pribadi ingin mengambilnya sedikit lebih jauh untuk memastikan saya memiliki beberapa ruang kepala).

Hal terakhir yang ingin Anda lakukan adalah menjalankan alat profiling seperti profiler kinerja ANTS saat menjalankan tes (perlu diketahui bahwa ini menambahkan beberapa overhead). Ini akan memungkinkan Anda untuk mengidentifikasi pertanyaan dan metode yang sudah berjalan lama, memberi Anda petunjuk tentang di mana aplikasi Anda benar-benar lambat (satu tip: hampir tidak pernah benar-benar di mana Anda pikir itu akan).

Masalah utama yang akan Anda miliki adalah, seperti yang saya katakan pertama, bahwa Anda menggunakan shared hosting, jadi hampir tidak mungkin untuk melakukan emulasi lingkungan hidup yang realistis. Namun, jika aplikasi Anda memiliki jumlah ruang kepala yang layak pada lingkungan yang mirip dengan sumber daya yang dijanjikan, Anda harus memiliki keyakinan bahwa kode dapat bertahan di hosting Anda, bahkan jika Anda mencapai batas lingkungan Anda sebelum Anda berharap.

Ed James
sumber
terima kasih telah menjelaskan perbedaan antara pengujian hosting bersama dan server sendiri.
Pankaj Upadhyay
3

Anda dapat melihat alat seperti JMeter atau The Grinder .

Saya hanya menggunakan JMeter sejauh ini, ini adalah alat grafis yang memungkinkan Anda membuat rencana pengujian dengan mudah. Anda dapat mensimulasikan banyak pengguna dengan banyak utas. Anda juga dapat merekam penggunaan khas situs Anda dengan menautkan browser Anda dengan proxy JMeter dan melakukan pekerjaan yang sebenarnya, sehingga Anda tidak perlu menulis permintaan dari awal sendiri. Penggiling berbasis skrip jika saya ingat dengan benar, mungkin juga cocok.

ftr
sumber
1

Saya juga suka Loadimpact untuk pengujian stres. Satu hal yang cenderung saya gunakan untuk pemeriksaan cepat di situs saya adalah Apache Bench. Ketika saya ingin menjalankan beberapa tes akhir, saya akan melihat ke arah layanan pembayaran.

Pekerjaan saya juga berinvestasi dalam WebLoads, yang sangat mahal tetapi memungkinkan kami untuk menguji semua situs kami secara internal. Saya tidak merekomendasikannya.

uadrive
sumber
0

Saya tidak berpikir pengujian beban dapat dilakukan secara manual karena akan menghabiskan lebih banyak waktu dari yang diharapkan dan akan menjadi tugas yang membosankan. Anda mungkin dapat menggunakan Load Runner yang dapat digunakan untuk banyak pengguna.

dsdsf
sumber
0

Skrip Autohotkey (AHK) dapat mensimulasikan pengguna manusia. Biarkan beroperasi sepanjang hari.

Anda bisa menjalankannya di beberapa kotak untuk mensimulasikan beberapa pengguna. Yang menyenangkan adalah gaya pengujian sepenuhnya di bawah kendali Anda. Anda dapat memiliki 1 skrip AHK mengirim spam ke fitur laporan, dan melihat apakah itu memengaruhi pengguna fitur lain.

Meskipun saya tidak terbiasa dengan kemampuan threading AHK sehingga mensimulasikan ribuan pengguna bisa sulit. Anda mungkin terikat dengan jumlah komputer yang Anda miliki.

mike30
sumber