Pages

Kamis, 01 Mei 2014

tools pengujian software secara otomatis



PENDAHULUAN
1.1             
Website merupakan salah satu infrastruktur yang penting dalam menyebarluaskan informasi yang ada dalam suatu organisasi. Sebuah website didukung oleh adanya web server sebagai pengendali dari sebuah web. Maka sebelum website tersebut dipublikasikan ke dalam dunia riil, terlebih dahulu web server tersebut harus menjalani pengujian atau tes performansi. Saat ini ketika permintaan akses terhadap suatu website meningkat, kecepatan akses menurun. Halaman yang ingin diakses oleh klien di-reply lebih lama bahkan gagal diproses oleh web server. Hal ini dipengaruhi oleh titik jenuh yang dimiliki oleh web server yang mengelola website tersebut.
Untuk itu diperlukan suatu pengujian terhadap web server agar dapat diketahui tingkat performansinya. Dengan mengetahui tingkat performansi web server tersebut, maka dapat dilakukan suatu optimasi pada parameter konfigurasi web server untuk mencapai kinerja web server yang lebih baik dari sebelumnya. Tingkat performansi web server tergantung dari kejenuhan web server tersebut, yang dapat diketahui dengan melihat kemampuan reply rate, standar deviasi dan error rate yang muncul.
Dalam dunia nyata beragam tool dapat digunakan untuk melakukan pengujian performansi web server, misalnya Paessler Webserver Stress Tool yang berbayar maupun httperf yang berupa open source tool. Pada penelitian ini penulis termotivasi untuk memanfaatkan open source tool tersebut yaitu httperf. Httperf merupakan salah satu tool yang dapat dimanfaatkan sebagai media dalam melakukan pengujian terhadap kemampuan reply rate, standar deviasi dan error rate suatu web server (David M. 1998).
           
1.2            DASAR TEORI
1.2.1        Uji Performansi Web Server
Beberapa pendapat ahli tentang uji performansi adalah sebagai berikut:
1)       Keseluruhan performansi dari web dipengaruhi oleh klien, web server, dan kapasitas jaringan yang menghubungkan klien ke web server (Martin F. & Carey L. 1996).
2)       Uji performansi terhadap sistem web server yang ada menentukan seberapa baik performanya, sehingga dapat dilakukan suatu perubahan-perubahan untuk meningkatkan performansinya (Obaidat 2010).
3)       Ada tiga cara untuk sebuah website menangani trafik yang tinggi, pertama adalah mirroring, distributed caching dan melakukan performansi web server (Yiming Hu 1999).
4)       Proses performansi web server dapat dibagi menjadi dua kategori yaitu : yang menguji web server dalam penggunaan secara nyata dan yang menguji web server menggunakan load generator (Paul B & Mark C. 1998).

Uji performansi memiliki bentuk-bentuk tersendiri sebagai berikut:
1)     Performance Test
Uji performansi digunakan untuk menguji setiap bagian dari suatu web server untuk menemukan teknik terbaik untuk mencapai optimasi ketika trafik web meningkat
2)     Load Test
Load test dilakukan dengan pengujian website menggunakan estimasi trafik dari sebuah website yang mampu dilayani. Caranya adalah mendefinisikan waktu maksimum sebuah halaman web dimuat. Pada akhir pengujian dilakukan pembandingan seberapa maksimum waktu yang dibutuhkan untuk membuka halaman web pada sebuah web server.
3)     Stress Test
Stress test adalah berupa simulasi serangan “brute force” yang menjalankan muatan atau permintaan secara berlebihan menuju web server. Tujuan stress test adalah untuk estimasi muatan maksimum sebuah web server sanggup menanganinya.

Dalam pengujian performansi web server, tujuan utamanya adalah mengetahui tingkat kejenuhan dari web server. Komponen yang dibutuhkan dalam pengujian web server adalah sebagai berikut:
1)     Sebuah server yang menjalankan perangkat lunak web server
2)     Satu atau lebih klien yang menjalankan perangkat lunak pembangkit paket
3)     Jaringan yang menghubungkan klien dengan server

1.2.2        Web Server
Web server adalah program yang menerjemahkan alamat URL baik dalam bentuk nama file, yang kemudian mengirimkan kembali file tersebut maupun dalam bentuk nama program dan menjalankan program itu lalu mengirimkan kembali output dari program tersebut melalui internet (Ben & Peter 1999).
Pada dasarnya tugas web server hanya ada dua, yaitu:
1.     Menerima permintaan (request) dari klien, dan
2.     Mengirimkan apa yang diminta oleh klien (response)

Ilustrasi sebelumnya dapat dijelaskan sebagai berikut :
1.     Klien disini dapat berupa komputer desktop dengan minimal memiliki browser dan terhubung ke web server melalui jaringan (intranet atau internet).
2.     Komputer yang berfungsi sebagai server, di dalamnya terdapat perangkat lunak web server. Agar komputer ini dapat diakses oleh klien maka komputer harus terhubung ke jaringan (intranet atau internet).
3.     Pertama-tama, klien (user) akan meminta suatu halaman ke (web) server untuk ditampilkan di komputer klien. Misalnya, klien mengetikkan suatu alamat URL di browser http://www.google.com. Lalu dengan menggunakan protokol HTTP, browser melakukan permintaan dari web server Google. Proses permintaan ini disebut dengan request.
4.     Dari sisi server mendapat permintaan halaman utama dari Google, server kemudian melakukan pencarian sesuai permintaan. Jika ditemukan maka halaman yang diminta akan dikirim ke klien, namun jika tidak ditemukan, maka server akan memberi pesan “404. Page Not Found”, yang artinya halaman tidak ditemukan.

1.1.1        HTTPERF
Httperf adalah program untuk mengukur kinerja atau performansi dari web server yang dibuat oleh David Mosberger dari HP Labs. Httperf menyediakan fitur yang fleksibel dalam pembuatan beban kerja sesuai dengan parameter yang diberikan padanya (Rasian 2009). Httperf merupakan sebuah tool untuk sistem operasi turunan UNIX. Httperf dapat membangkitkan sejumlah paket load dan mendukung HTTP/1.0 dan HTTP/1.1 (Bullock 2007).
Dalam sebuah pengujian web server sederhana, klien membuat sejumlah besar permintaan dari web server, sehingga akan terukur throughput yang berupa jumlah reply per second dari web server tersebut.
CARA KERJA HTTPERF :
Cara paling mudah dalam mengukur performansi sebuah web server adalah dengan mengirimkan permintaan ke server dengan rate tertentu dan mengukur waktu permintaan tadi tiba kembali. Pengujian dilakukan beberapa kali dengan meningkatkan permintaan secara monoton hingga pada rate tertentu didapatkan server menjadi jenuh (saturated).
Hasil pengukuran dari httperf ini memberikan data mentah tentang kinerja dari web server, namun berbeda dari kondisi pada dunia nyata, hal ini dikarenakan pada pengujian web server ini hanya satu file yang dilakukan permintaan, sehingga algoritma caching web server tidak teruji secara keseluruhan (Julian 2001).
Untuk mulai menggunakan httperf, yang perlu dilakukan pertama adalah instalasi aplikasi tersebut ke komputer. Apabila menggunakan Ubuntu atau Linux Mint, cukup ketikkan perintah berikut :
apt-get install httperf
Untuk beberapa kasus, httperf perlu di-compile sendiri. Misalnya saja ketika request per detik yang diberikan ke server berjumlah sangat banyak. Oleh karena itu, berikut ini beberapa langkah singkat untuk mengcompile httperf :
  1. Buka file /usr/include/linux/posix_types.h, kemudian ubah konstanta __FD_SETSIZE dari 1024 menjadi 50000
  2. Download source code httperf
  3. Extract file yang telah diunduh ke suatu direktori, kemudian masuk ke direktori hasil ekstraksi tadi.
  4. Setelah itu ketikkan perintah ./configure
  5. Ketikkan perintah make dan make install
  6. httperf pun siap digunakan jika tidak ada error yang terjadi
Kemudian, jika ingin menggunakan httperf ini untuk menguji performa, ada beberapa option penting yang perlu diperhatikan, yaitu :
  • –server=IP/domain webserver : option ini digunakan untuk menentukan lokasi server yang ingin kita uji.
  • –uri=RESOURCE : option ini digunakan untuk menentukan file apa yang ingin diakses oleh httperf, apabila ingin memasukkan root directory dari website, tinggal masukkan saja / (slash)
  • –num-conns=INT : option ini digunakan untuk menentukan berapa kali koneksi ke server akan dilakukan
  • –rate=INT : option ini digunakan untuk memberitahu httperf, berapa request per detik yang harus dikirimkan
Sebagai contoh, jika kita ingin menguji suatu website di localhost, dengan file yang ingin diakses adalah index.php, dan httperf ingin melakukan koneksi sebanyak 1000x dengan 100 request/detik, maka perintahnya adalah seperti ini :
httperf --server=localhost --uri=/index.php --num-conns=1000 --rate=100

Error fd-unavail tidak boleh bernilai selain 0 atau ujicoba anda akan mendapatkan hasil yang tidak valid. Selain melakukan proses kompilasi sendiri, yang perlu dilakukan untuk menghindari error tersebut adalah mengetikkan perintah ulimit seperti di bawah ini sebelum httperf berjalan :

Standar metrik keluaran dari httperf dapat dikelompokkan sebagai berikut (Theodore 2003) :
a.      Total Section
Menampilkan jumlah total koneksi TCP yang dibuat, jumlah permintaan/ request, jumlah respon, dan waktu keseluruhan dari pengujian yang dilakukan.
b.     Connection Section
Menjelaskan kinerja koneksi TCP yang dihasilkan selama pengujian.
c.      Request Section
Menampilkan jumlah request per second yang didapatkan dari pengujian.
d.     Reply Section
Menampilkan statistik dari jumlah reply per second terhadap pengujian yang dilakukan.
e.      Miscellaneous Section
Menyediakan laporan tentang penggunaan CPU dan pemanfaatan jaringan pada mesin klien
f.      Error Section
Menampilkan jumlah error yang ditemukan selama pengujian. Pada error section ini terdapat bagian client-timo yang sangat berguna untuk mengetahui titik jenuh (saturated point) suatu web server.

SISTEM YANG COCOK DI UJI MENGGUNAKAN HTTPERF :
Terkadang kita butuh untuk melihat seberapa kuat performa dari web server kita. Terutama jika nantinya web server kita itu akan diakses oleh banyak orang. Mungkin saja sampai jutaan orang yang mengakses untuk setiap detik. Atau mungkin kita butuh untuk memperkirakan, apabila aplikasi web milik kita akan diakses oleh banyak orang, seberapa responsif. Ada beberapa tool yang dapat digunakan untuk mengukur kinerja dari web server atau aplikasi web. Salah satu yang sering digunakan di dunia akademik adalah httperf.


Tidak ada komentar:

Posting Komentar