• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

Performans, Yük ve Stres Testleri

  • Posted by Kodedu
  • Categories Genel, Uncategorized, Yazılar, Yazılım
  • Date 26 Ağustos 2012

Merhaba arkadaşlar;

Bu yazıda başlığa konu olan Performans, Yük ve Stres testlerinden tam olarak ne anlam çıkarılması gerektiğinden bahsetmek istiyorum. Bu üç test ismi başlangıçta sizlere aynıymış gibi bir his verebilir, fakat bu kavramların hepsi birbirinden farklı ya da en azından amaçları farklı bulunmaktadır.

Performans Testi

Performans testi kavramı elbette sadece yazılım uygulamaları için geçerli bir kavram değil. Bir endüstriyel sistemin de performans testi olabilir. Fakat biz burada elbette yazılım uygulamalarına ait olandan bahsedeceğiz.

Yazılım uygulamalarında performans testlerinin yapılmasındaki amaç, belirlenen kısıtlar ölçüsünde uygulanan yük altında, sistemde ortaya çıkabilecek darboğazları (bottleneck) ortaya çıkarmaktır. Burada sistem kelimesinin altını çizmek istiyorum. Performans testlerinde darboğazlar; Uygulama seviyesinde olabileceği gibi; Veritabanı, Network ya da İşletim sistemi gibi önemli ortamlarda da gerçekleşebilir.

Performans testlerinin güvenilir sayılabilmesi için test uygulanacak ortamın stabil halde olması gerekmektedir. Tutarsız bir ortamda yapılacak performans testlerinin sonuçları da tutarsız olacaktır.

Performans testlerinde amaç sistemin bir açığını bulmak değildir. Asıl amaç sisteme yapılan girdilerden alınan dönütlerle, arzulanan/olması gereken sonuçların uygunluğunu tespit etmektir.

Bir web uygulaması içi uygulanan örnek performans testi senaryosu şu olabilir;

Aynı anda 250 eşzamanlı Http isteği yapıldığında, sistem 5 saniyede tüm istekleri karşılamalı. Bu senaryo başarılı mı? Başarılıysa bir üst senaryoya geçilebilir. Aynı anda 500 eşzamanlı kullanıcı erişimini sağla ve 5 kere tekrarla! Hedef tamamlanma süresi 10 saniyenin altı. Hedef başarılı mı? Başarılıysa test seviyesi artırılarak bu süreç devam edebilir. Ya da sistem aranılan kısıtlarda yeterli performans’ ı gösteriyor denebilir. Beklenilen sonuçlar dönüt alınan sonuçlarla uyuşmuyorsa, bu aşamada bunun sebepleri araştırılmalıdır. Örnek olarak en başta; Profiling yaparak uygulamanın tıkanıklık gösteren noktaları tespit edilebilir. [Bkz. En iyi Java Profiler Ürünleri]. Elde edilen sonuçlara göre uygulam seviyesinde bir kusurla karşılaşılmıyorsa, diğer seviyelerde sorunlar aranabilir.

Web uygulamalarına yapılacak performans testleri için piyasada çeşitli araçlar bulunuyor. Bunlardan bence en iyisi Apache JMeter ürünü. Jmeter bir GUI Swing uygulaması olarak çalışabilirken, platform bağımsız script kodlarıyla herhangi bir programlama diliyle koşturulabilir. JMeter birden fazla eşzamanlı kullanıcı simüle ederek performans testlerini gerçekleştirebilir. Aynı zamanda elde ettiği sonuçları gerek görsel gerek se tablo çıktıları halinde sunabilir. Burada bu testlerin dil bağımsız olduğunu söylemek isterim. JMeter’ i istediğiniz türde Web uygulamasında kullanabilirsiniz.

JMeter kadar zengin olmasada Grinder, ab, httperf ve siege gibi komut dizini araçlarıyla da bu testler yönetilebilir.

Yük Testi

Yük testi aslında Performans testlerini bir türevi olarak kabul edilebilir. Burada temel olarak fark; Yük testlerinin uygulamaya dönük bir açık, bug gibi normal çalışma şartlarında ortaya çıkmayan, ama ağır yüklenmeler karşısında ortaya çıkabilecek sonuçlar oluşturmaktadır.

Yük testleri, yük miktarının belirli oranlarda arttırılarak hangi seviyede sorun çıktığının araştırılması şekliyle uygulanıyor. Yine, performans testlerinde olduğu gibi otomatize araçlar kullanılıyor. JMeter’ in yine bu noktada en iyi araç olduğunu söylemeliyim.

Stress Testi

Stress testlerinde ise amaç Yük ve Performans testlerinden biraz farklı. Buradaki amaç adı üzere sistemi baskı altına alarak strese sokmak 🙂

Mesela bu test edilen uygulamasında bir cluster yapısı bulunuyorsa, cluster’ da bulunan node’ lardan birinin ayağı kaydırılarak, sistemin nasıl bir davranış sergilediğini öğrenmek gibi. Ya da, JVM yapılandırma ayarlarında değişikliğe gidereki, Çöp toplayıcının strese düştüğü, problem çıkardığı noktaları tespit etmek gibi.

Tag:jmeter, performans testi, profiling, stres testi, yük testi

  • Share:
author avatar
Kodedu

Previous post

Dağıtık Versiyon Kontrol Sistemleri
26 Ağustos 2012

Next post

Upucuz ARM Geliştirme Kiti - Kinetis KL25Z
1 Eylül 2012

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Hafif bir Kod Editörü – Brackets
30Haz2012
Java’da Record’lar
27Oca2020
Reflection ile Dependency Injection nasıl gerçekleştirilir?
04Eyl2012
Integration of Spring MVC and Mustache
02Ağu2013

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • Coupling ve Cohesion Kavramları Nedir? için Hilal
  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.