• 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
KodEduKodEdu
  • 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 Rahman Usta
  • 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
Rahman Usta
Kodedu.com bünyesinde eğitim ve danışmanlık faaliyetleri sürdüren Rahman Usta, 2012 yılında yayına çıkan popülerJava Mimarisiyle Kurumsal Çözümler ve 2014 yılında yayınlanan Java 8 Ebook kitaplarının yazarıdır. Açık kaynak dünyasına katkı veren yazar, geliştirdiği AsciidocFX projesiyle Duke's Choice Award 2015 ödülünü kazanmıştır. Rahman ayrıca, Istanbul JUG'un ve Java standartlarını geliştiren JCP (Java Community Process)'in bir üyesidir. 2018 yılında Java Şampiyonu olarak seçilmiştir.

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

Dağıtık uygulama çatılarının karşılaştırılması (Hadoop, GridGain, Hazelcast, DAC) Bölüm I
27Kas2011
Ücretsiz Webiner : Kurumsal Espiyonaj
25Eyl2012
Combine JaxRS 2.0 Rest Client, Java FX 2, Spring MVC and Hibernate
15Ağu2013
JCache – CacheLoader ve CacheWriter Kullanmak
19Eyl2014

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

  • YAML Nedir? Neden YAML Kullanmalıyız? için shahriyar
  • Java Persistence API Nedir? (Giriş) için Utku
  • Java 8 – CompletableFuture ile Asenkron Programlama için Rahman Usta
  • Java 8 – CompletableFuture ile Asenkron Programlama için burak
  • Arm7 Nxp 2104 işlemci ile basit bir Uygulama için Mustafa Dinc

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.