Tutorial Ujian Prestasi: Apa Itu, Jenis, Sukatan & Contohnya

Isi kandungan:

Anonim

Ujian Prestasi

Performance Testing adalah proses pengujian perisian yang digunakan untuk menguji kecepatan, waktu respons, kestabilan, kebolehpercayaan, skalabilitas dan penggunaan sumber daya dari aplikasi perisian di bawah beban kerja tertentu. Tujuan utama pengujian prestasi adalah untuk mengenal pasti dan menghilangkan kekacauan prestasi dalam aplikasi perisian. Ini adalah sebahagian daripada kejuruteraan prestasi dan juga dikenal sebagai "Perf Testing".

Fokus Pengujian Prestasi adalah memeriksa program perisian

  • Kelajuan - Menentukan sama ada aplikasi bertindak balas dengan cepat
  • Skalabilitas - Menentukan muatan pengguna maksimum yang dapat ditangani oleh aplikasi perisian.
  • Kestabilan - Menentukan apakah aplikasi stabil dalam pelbagai beban

Dalam tutorial ini, anda akan belajar-

  • Apa itu Ujian Prestasi?
  • Mengapa Ujian Prestasi?
  • Jenis Ujian Prestasi
  • Masalah Prestasi Biasa
  • Proses Pengujian Prestasi
  • Metrik Pengujian Prestasi: Parameter Dipantau
  • Contoh Kes Ujian Prestasi
  • Alat Ujian Prestasi
  • Soalan Lazim

Mengapa Ujian Prestasi?

Ciri dan Fungsi yang disokong oleh sistem perisian bukanlah satu-satunya masalah. Prestasi aplikasi perisian seperti masa tindak balas, kebolehpercayaan, penggunaan sumber dan skalabiliti penting. Matlamat Ujian Prestasi bukanlah untuk mencari bug tetapi untuk menghilangkan kekacauan prestasi.

Uji Prestasi dilakukan untuk memberi maklumat kepada para pemangku kepentingan mengenai aplikasi mereka mengenai kecepatan, kestabilan, dan skalabilitas. Lebih penting lagi, Uji Prestasi menemui apa yang perlu diperbaiki sebelum produk tersebut dipasarkan. Tanpa Uji Prestasi, perisian cenderung mengalami masalah seperti: berjalan lambat sementara beberapa pengguna menggunakannya secara serentak, tidak konsisten di seluruh sistem operasi yang berbeza dan kegunaan yang lemah.

Ujian prestasi akan menentukan sama ada perisian mereka memenuhi keperluan kelajuan, skalabilitas dan kestabilan di bawah beban kerja yang diharapkan. Aplikasi yang dihantar ke pasaran dengan metrik prestasi yang buruk kerana ujian prestasi tidak ada atau buruk mungkin akan mendapat reputasi buruk dan gagal memenuhi matlamat penjualan yang diharapkan.

Aplikasi kritikal misi seperti program pelancaran ruang atau peralatan perubatan yang menyelamatkan nyawa harus diuji prestasi untuk memastikannya berjalan untuk jangka masa yang panjang tanpa penyimpangan.

Menurut Dunn & Bradstreet, 59% daripada syarikat Fortune 500 mengalami 1.6 jam waktu henti setiap minggu. Memandangkan syarikat Fortune 500 rata-rata dengan minimum 10.000 pekerja membayar $ 56 per jam, bahagian buruh dari waktu henti untuk organisasi seperti itu adalah $ 896,000 setiap minggu, yang berarti lebih dari $ 46 juta per tahun.

Hanya 5 minit waktu henti Google.com (19-Ogos-13) dianggarkan menelan belanja gergasi pencarian sebanyak $ 545,000.

Dianggarkan bahawa syarikat-syarikat kehilangan penjualan bernilai $ 1100 sesaat kerana Pemadaman Perkhidmatan Web Amazon baru-baru ini.

Oleh itu, ujian prestasi adalah penting.

Jenis Ujian Prestasi

  • Uji beban - memeriksa kemampuan aplikasi untuk melakukan di bawah jangkaan beban pengguna. Objektifnya adalah untuk mengenal pasti hambatan prestasi sebelum aplikasi perisian disiarkan.
  • Ujian tekanan - melibatkan pengujian aplikasi di bawah beban kerja yang melampau untuk melihat bagaimana ia menangani lalu lintas tinggi atau pemprosesan data. Objektifnya adalah untuk mengenal pasti titik permulaan aplikasi.
  • Ujian ketahanan - dilakukan untuk memastikan perisian dapat menangani beban yang diharapkan dalam jangka masa yang panjang.
  • Ujian lonjakan - menguji reaksi perisian terhadap lonjakan besar secara tiba-tiba dalam beban yang dihasilkan oleh pengguna.
  • Ujian Volume - Di bawah Volume Testing tidak besar. daripada. Data diisi dalam pangkalan data dan keseluruhan perilaku sistem perisian dipantau. Objektifnya adalah untuk memeriksa prestasi aplikasi perisian dengan jumlah pangkalan data yang berbeza-beza.
  • Uji skalabiliti - Objektif pengujian skalabilitas adalah untuk menentukan keberkesanan aplikasi perisian dalam "meningkatkan" untuk menyokong peningkatan beban pengguna. Ini membantu merancang penambahan kapasiti pada sistem perisian anda.

Masalah Prestasi Biasa

Sebilangan besar masalah prestasi berkisar pada kelajuan, masa tindak balas, masa muat dan skalabilitas yang buruk. Kelajuan selalunya merupakan salah satu sifat terpenting dari aplikasi. Aplikasi yang berjalan lambat akan kehilangan bakal pengguna. Pengujian prestasi dilakukan untuk memastikan aplikasi berjalan dengan cukup pantas untuk menjaga perhatian dan minat pengguna. Lihat senarai masalah prestasi biasa berikut dan perhatikan bagaimana kelajuan adalah faktor biasa bagi banyak di antaranya:

  • Masa Beban Panjang - Waktu muat biasanya adalah waktu awal yang diperlukan untuk memulakan aplikasi. Perkara ini secara amnya harus minimum. Walaupun beberapa aplikasi tidak dapat membuat beban dalam waktu kurang dari satu menit, waktu muat harus disimpan di bawah beberapa saat jika mungkin.
  • Masa tindak balas yang buruk - Waktu respons adalah masa yang diperlukan ketika pengguna memasukkan data ke dalam aplikasi hingga aplikasi mengeluarkan respons terhadap input tersebut. Secara amnya, ini mesti cepat. Sekali lagi jika pengguna harus menunggu terlalu lama, mereka kehilangan minat.
  • Skalabilitas yang buruk - Produk perisian mengalami skalabilitas yang buruk apabila tidak dapat menangani jumlah pengguna yang diharapkan atau ketika tidak menampung jumlah pengguna yang cukup luas. Beban Uji harus dilakukan untuk memastikan aplikasi dapat menangani jumlah pengguna yang diharapkan.
  • Bottlenecking - Bottleneck adalah halangan dalam sistem yang menurunkan prestasi keseluruhan sistem. Pemeriksaan bottleneck adalah ketika kesalahan pengkodan atau masalah perkakasan menyebabkan penurunan throughput pada beban tertentu. Penyekat kesusahan sering disebabkan oleh satu bahagian kod yang salah. Kunci untuk menyelesaikan masalah bottlenecking adalah mencari bahagian kod yang menyebabkan kelambatan dan cuba memperbaikinya di sana. Bottlenecking biasanya diperbaiki dengan memperbaiki proses yang tidak betul atau menambahkan Perkakasan tambahan. Beberapa masalah prestasi biasa adalah
    • Penggunaan CPU
    • Penggunaan memori
    • Penggunaan rangkaian
    • Batasan Sistem Operasi
    • Penggunaan cakera

Proses Pengujian Prestasi

Metodologi yang digunakan untuk ujian prestasi boleh berbeza-beza tetapi objektif untuk ujian prestasi tetap sama. Ini dapat membuktikan bahawa sistem perisian anda memenuhi kriteria prestasi yang telah ditentukan sebelumnya. Atau dapat membantu membandingkan prestasi dua sistem perisian. Ia juga dapat membantu mengenal pasti bahagian sistem perisian anda yang menurunkan prestasinya.

Di bawah ini adalah proses generik mengenai bagaimana melakukan ujian prestasi

  1. Kenal pasti persekitaran ujian anda - Ketahui persekitaran ujian fizikal anda, persekitaran pengeluaran dan alat ujian apa yang ada. Fahami perincian konfigurasi perkakasan, perisian dan rangkaian yang digunakan semasa ujian sebelum anda memulakan proses ujian. Ini akan membantu penguji membuat ujian yang lebih cekap. Ia juga akan membantu mengenal pasti kemungkinan cabaran yang mungkin dihadapi penguji semasa prosedur ujian prestasi.
  2. Kenal pasti kriteria penerimaan prestasi - Ini merangkumi matlamat dan kekangan untuk throughput, masa tindak balas dan peruntukan sumber. Juga perlu untuk mengenal pasti kriteria kejayaan projek di luar matlamat dan kekangan ini. Penguji harus diberi kuasa untuk menetapkan kriteria prestasi dan tujuan kerana selalunya spesifikasi projek tidak akan merangkumi pelbagai penanda aras prestasi yang cukup luas. Kadang-kadang mungkin tidak ada sama sekali. Bila mungkin mencari aplikasi serupa untuk dibandingkan adalah cara yang baik untuk menetapkan tujuan prestasi.
  3. Uji prestasi rancangan & reka bentuk - Tentukan bagaimana penggunaan mungkin berbeza antara pengguna akhir dan kenal pasti senario utama untuk diuji untuk semua kes penggunaan yang mungkin. Adalah perlu untuk mensimulasikan pelbagai pengguna akhir, merancang data ujian prestasi dan menggariskan metrik apa yang akan dikumpulkan.
  4. Mengkonfigurasi persekitaran ujian - Siapkan persekitaran ujian sebelum pelaksanaan. Juga, aturkan alat dan sumber lain.
  5. Laksanakan reka bentuk ujian - Buat ujian prestasi mengikut reka bentuk ujian anda.
  6. Jalankan ujian - Jalankan dan pantau ujian.
  7. Menganalisis, menyesuaikan dan menguji semula - Gabungkan, analisis dan kongsi hasil ujian. Kemudian sesuaikan dan uji lagi untuk melihat apakah ada peningkatan atau penurunan prestasi. Oleh kerana penambahbaikan secara amnya semakin kecil dengan setiap pengujian semula, berhenti ketika penyusutan disebabkan oleh CPU. Maka anda mungkin mempunyai pilihan untuk meningkatkan daya CPU.

Metrik Pengujian Prestasi: Parameter Dipantau

Parameter asas yang dipantau semasa ujian prestasi merangkumi:

  • Penggunaan Prosesor - sejumlah masa yang dihabiskan pemproses untuk menjalankan utas yang tidak terbiar.
  • Penggunaan memori - jumlah memori fizikal yang tersedia untuk proses di komputer.
  • Masa cakera - jumlah masa cakera sibuk melaksanakan permintaan membaca atau menulis.
  • Lebar jalur - menunjukkan bit per saat yang digunakan oleh antara muka rangkaian.
  • Byte peribadi - bilangan bait yang telah diperuntukkan oleh proses yang tidak dapat dikongsi antara proses lain. Ini digunakan untuk mengukur kebocoran dan penggunaan memori.
  • Memori komited - jumlah memori maya yang digunakan.
  • Halaman memori / saat - bilangan halaman yang ditulis ke atau dibaca dari cakera untuk menyelesaikan kesalahan halaman keras. Kesalahan halaman keras adalah apabila kod yang bukan dari set kerja semasa dipanggil dari tempat lain dan diambil dari cakera.
  • Kesalahan halaman / saat - kadar keseluruhan di mana halaman kesalahan diproses oleh pemproses. Ini sekali lagi berlaku apabila proses memerlukan kod dari luar set kerjanya.
  • CPU terganggu sesaat - adalah purata bilangan gangguan perkakasan yang diterima oleh pemproses dan memproses setiap saat.
  • Panjang barisan cakera - adalah purata tidak. permintaan baca dan tulis beratur untuk cakera yang dipilih semasa selang sampel.
  • Panjang barisan output rangkaian - panjang barisan paket output dalam paket. Apa-apa yang lebih daripada dua bermaksud kelewatan dan penyusutan perlu dihentikan.
  • Jumlah byte rangkaian setiap saat - kadar byte yang dihantar dan diterima pada antara muka termasuk watak pembingkaian.
  • Masa respons - masa dari ketika pengguna memasukkan permintaan sehingga watak pertama respons diterima.
  • Throughput - kadar komputer atau rangkaian menerima permintaan sesaat.
  • Jumlah penyatuan sambungan - jumlah permintaan pengguna yang dipenuhi oleh sambungan gabungan. Semakin banyak permintaan yang dipenuhi oleh sambungan di kolam renang, semakin baik prestasinya.
  • Sesi aktif maksimum - bilangan sesi maksimum yang boleh aktif sekaligus.
  • Nisbah hit - Ini berkaitan dengan bilangan penyataan SQL yang dikendalikan oleh data cache dan bukannya operasi I / O yang mahal. Ini adalah tempat yang baik untuk memulakan untuk menyelesaikan masalah kesulitan.
  • Hit sesaat - tidak. hits di pelayan web selama setiap saat ujian beban.
  • Rollback segmen - jumlah data yang dapat dikembalikan pada bila-bila masa.
  • Kunci pangkalan data - penguncian jadual dan pangkalan data perlu dipantau dan disetel dengan teliti.
  • Penantian teratas - dipantau untuk menentukan masa tunggu yang dapat dikurangkan ketika berurusan dengan seberapa cepat data diambil dari memori
  • Jumlah benang - Kesihatan aplikasi dapat diukur dengan no. utas yang sedang berjalan dan sedang aktif.
  • Pengumpulan sampah - Ini berkaitan dengan mengembalikan memori yang tidak digunakan kembali ke sistem. Pengumpulan sampah perlu dipantau untuk kecekapan.

Contoh Kes Ujian Prestasi

  • Sahkan waktu respons tidak lebih dari 4 saat apabila 1000 pengguna mengakses laman web secara serentak.
  • Sahkan masa respons Aplikasi Di Bawah Beban berada dalam julat yang dapat diterima apabila penyambungan rangkaian lambat
  • Periksa jumlah maksimum pengguna yang dapat ditangani oleh aplikasi sebelum crash.
  • Periksa masa pelaksanaan pangkalan data apabila 500 rekod dibaca / ditulis secara serentak.
  • Periksa penggunaan CPU dan memori aplikasi dan pelayan pangkalan data dalam keadaan beban puncak
  • Sahkan masa tindak balas aplikasi dalam keadaan beban rendah, normal, sederhana dan berat.

Semasa pelaksanaan ujian prestasi sebenar, istilah yang tidak jelas seperti julat yang dapat diterima, beban berat, dan lain-lain digantikan oleh nombor konkrit. Jurutera prestasi menetapkan nombor ini mengikut keperluan perniagaan, dan lanskap teknikal aplikasi.

Alat Ujian Prestasi

Terdapat pelbagai jenis alat ujian prestasi yang terdapat di pasaran. Alat yang anda pilih untuk ujian akan bergantung pada banyak faktor seperti jenis protokol yang disokong, kos lesen, keperluan perkakasan, sokongan platform dan lain-lain. Berikut adalah senarai alat ujian yang popular.

  • LoadNinja - merevolusikan cara kita memuatkan ujian. Alat ujian beban berasaskan awan ini memberi kekuatan kepada pasukan untuk merakam & memainkan semula ujian beban komprehensif, tanpa korelasi dinamik yang kompleks & menjalankan ujian beban ini dalam penyemak imbas sebenar pada skala besar. Pasukan dapat meningkatkan liputan ujian. & mengurangkan masa ujian beban lebih dari 60%.
  • NeoLoad - adalah platform pengujian prestasi yang direka untuk DevOps yang menyatu dengan lancar ke saluran paip Penghantaran Berterusan yang ada. Dengan NeoLoad, pasukan menguji 10x lebih cepat daripada dengan alat tradisional untuk memenuhi tahap keperluan baru di seluruh kitaran hidup pengembangan perisian Agile - dari komponen hingga ujian beban seluruh sistem.
  • HP LoadRunner - adalah alat ujian prestasi yang paling popular di pasaran sekarang. Alat ini mampu mensimulasikan ratusan ribu pengguna, meletakkan aplikasi di bawah beban kehidupan nyata untuk menentukan tingkah laku mereka di bawah beban yang diharapkan. Loadrunner mempunyai penjana pengguna maya yang mensimulasikan tindakan pengguna manusia hidup.
  • Jmeter - salah satu alat terkemuka yang digunakan untuk ujian beban pelayan web dan aplikasi.

Soalan Lazim

Aplikasi mana yang harus kita Uji Prestasi?

Uji Prestasi selalu dilakukan untuk sistem berasaskan pelayan pelanggan sahaja. Ini bermaksud, setiap aplikasi yang bukan seni bina berasaskan pelayan pelanggan, tidak mesti memerlukan Uji Prestasi.

Sebagai contoh, Kalkulator Microsoft tidak berasaskan pelayan pelanggan dan tidak menjalankan banyak pengguna; oleh itu ia bukan calon Ujian Prestasi.

Apakah perbezaan antara Ujian Prestasi & Kejuruteraan Prestasi

Adalah mustahak untuk memahami perbezaan antara Ujian Prestasi dan Kejuruteraan Prestasi. Pemahaman dikongsi di bawah:

Performance Testing adalah disiplin yang berkaitan dengan pengujian dan pelaporan prestasi terkini aplikasi perisian di bawah pelbagai parameter.

Kejuruteraan prestasi adalah proses di mana perisian diuji dan ditala dengan tujuan untuk merealisasikan prestasi yang diperlukan. Proses ini bertujuan untuk mengoptimumkan sifat prestasi aplikasi yang paling penting iaitu pengalaman pengguna.

Dari segi sejarah, ujian dan penalaan telah terpisah secara nyata dan sering bersaing. Namun, dalam beberapa tahun kebelakangan ini, beberapa kumpulan penguji dan pembangun telah bekerjasama secara bebas untuk membuat pasukan penyesuaian. Kerana pasukan ini telah mencapai kejayaan yang besar, konsep penggabungan pengujian prestasi dengan penalaan prestasi telah mulai berjalan, dan sekarang kami menyebutnya sebagai kejuruteraan prestasi.

Kesimpulannya

Dalam Kejuruteraan Perisian, pengujian prestasi diperlukan sebelum memasarkan produk perisian apa pun. Ini memastikan kepuasan pelanggan & melindungi pelaburan pelabur daripada kegagalan produk. Kos pengujian prestasi biasanya lebih dari yang ditanggung dengan peningkatan kepuasan, kesetiaan, dan pengekalan pelanggan.