Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan load testing ve JMeter kullanımı hakkında kapsamlı bir eğitim içeriğidir.
- Video, load testing kavramlarını, Creed test aracının Amazon cloud servisleri üzerinden yük testi yapabilme kapasitesini ve JMeter'in API testleri için nasıl kullanılacağını adım adım göstermektedir. İçerik, test planlaması, ramp-up time ayarları, thread grupları, Cookie Manager, Header Manager gibi temel bileşenlerin kullanımı ve test sonuçlarının analizi konularını kapsamaktadır.
- Eğitimde ayrıca GMatter yazılımı kullanarak web test kaydı yapma süreci, proxy ayarları, script recorder plugini kullanımı ve Amazon farm kullanarak testlerin nasıl çalıştırılacağı da gösterilmektedir. Video, yük testi yapmadan önce pilot testlerin önemini vurgulayarak, testlerin doğru çalışıp çalışmadığını kontrol etme yöntemlerini de içermektedir.
- 00:06Performans Testi Neden Yapılır
- Konuşmacı Osbor, saha bilgi teknolojilerinde performans ve penetrasyon testlerini yazıp yönettiğini belirtiyor.
- Performans testi yapmanın amacı uygulamanın gereksinimleri karşılayıp karşılamadığını, fonksiyonel testlerde doğru çıktıları üretip üretmediğini ve beklenen ortamlarda çalışıp çalışmadığını görmek.
- Güvenlik testleri ve performans testleri kalite açısından önemlidir, kullanıcıların uygulamanın performansı ve güvenilirliğini görmesi gerekir.
- 02:17Yük Testinin Önemi
- Performans testinin bir amacı, uygulamanın yoğun yük altında beklentileri karşılayıp karşılamadığını görmek.
- Geliştiriciler genellikle lokal ortamda sınırlı kullanıcı sayısıyla test yaparken, yük testinde kullanıcı sayısı arttıkça uygulamanın performansı değişebilir.
- Uçak firması örneğinde, kampanya veya darbe gibi durumlarda birden fazla kullanıcı aynı anda işlem yapabilir, bu durumda uygulamanın aynı anda birden fazla isteği karşılayabilmesi önemlidir.
- 03:57Yük Testinin Amacı
- Yük testi, uygulamanın yoğun yük altında doğru çalışıp çalışmadığını ve kaynak ihtiyaçlarını belirlemeyi amaçlar.
- Test sonucunda CPU, disk ve ağ gibi kaynak ihtiyaçları raporlanır.
- İyi bir testin temel amacı kaliteli yazılım çıktısı üretmektir.
- 04:39Yazılım Performans Testleri
- Yazılım performans testleri, performans testi, yük testi ve stres testi olarak üçe ayrılır.
- Yük testi, sistemin kaynaklarının yeterli olup olmadığını anlamak için yapılır.
- Yük testi sonucunda sistemdeki kaynak yeterliliği, web lojik dağıtım konfigürasyonu ve uygulamanın performans problemleri belirlenebilir.
- 06:07Yük Testinde Değerlendirilen Özellikler
- Yük testi, uygulamanın yük anında davranışsal değişiklikler gösterip göstermediğini gösterir.
- Müşteriler genellikle anlık kullanıcı sayısı yerine toplam kullanıcı sayısı gibi belirsiz isteklerde bulunabilir.
- Yük testi, yazılımsal hataları tespit eder ve uygulamanın nereye kadar karşılayabileceğini belirler.
- 09:13Performans, Yük ve Stres Testleri
- Performans testi, sistemin belirli bir yük altındaki performansının ölçülmesi ve istenilen performansın sağlanmasıdır.
- Yük testi (load test), sistemin ne kadar yükte maksimum performans ile çalıştığını gösteren testtir ve sistemdeki en yüksek seviyeyi belirler.
- Stres testi, performans testi sonucunda çıkan thread sayılarıyla kullanıcının periyodik olarak sisteme yüklenmesi ve sistemin kaos ortamında nasıl tepki verdiği ölçülmesidir.
- 13:15Test Metrikleri
- Test metrikleri arasında thread count (sisteme girecek kullanıcı sayısı), loop count (testin kaç kere çalışacağı), constant timer (test adımları arasındaki bekleme süresi) ve ramp-up time (testin ne kadar zamanda maksimum seviyeye ulaşacağı) bulunmaktadır.
- Constant timer kullanıldığında son kullanıcı testi yapıldığı anlaşılır, örneğin login, ana sayfa görüntüleme, ürün seçme, sepete ekleme gibi adımlar arasında bekleme süresi eklenir.
- Ramp-up time değeri önemlidir; düşük bir değer verildiğinde sistem çok agresif bir şekilde yüklenir ve bu da hatalara veya sistem çökmesine neden olabilir.
- 15:28Test Stratejileri
- Standart değer olarak ramp-up time için 30-60 saniye arası kullanılır, bu süre içinde test grafiği paralel bir şekilde maksimum thread sayısına ulaşır.
- Çok agresif testler (düşük ramp-up time) sistemde hataları gösterir veya sistem çökmesine neden olabilir.
- Yük testleri sırasında sistem, DDoS saldırısı olarak algılanabilir ve bloke edilebilir.
- 17:15Yük Testlerinde Karşılaşılan Sorunlar
- Yük testlerinde en sık karşılaşılan sorunlar yetersiz CPU ve RAM kaynaklarıdır.
- Network sorunları da önemli bir problem noktasıdır; lokal network'ten büyük yük testi yapılamaz, en fazla 10 kişilik test yapılabilir.
- Hatalı konfigürasyonlar da sık karşılaşılan sorunlardan biridir, örneğin load balancer'ların düzgün şekilde yapılandırılmaması sistemi patlatacaktır.
- 19:01Yük Testi Yapılmamasının Etkileri
- Yük testi yapılmadan prod'a çıkarma yapıldığında maliyet, güvenlik ve zaman kaybı yaşanır.
- Yük testinde güvenlik zafiyetleri kesinlikle ortaya çıkar, bu nedenle testler önemlidir.
- Yük testi yapılmadığında maliyet, güvenlik ve zaman kaybı yaşanır.
- 20:08Yük Testi Sonuçları
- Yük testlerinde sistemin darboğazları ve request-response süreleri belirlenir, 3000-5000 milisaniye üzerinde değerler kabul edilemez.
- Sistem için ideal yük ve stres değeri belirlenir, örneğin 3000 kullanıcıyla sağlıklı çalışabildiği tespit edilir.
- Sistem için ideal bağlantı değerleri önemlidir, lokal test yerine DSL, 3G gibi gerçek dünya bağlantı türlerinde test yapılması önerilir.
- 22:41Yük Testi Stratejileri
- Yük testi sonuçlarına göre müşteri deneyimi bozmadan sistemi yönetmek önemlidir.
- E-ticaret firmalarında yüksek yük durumlarında, belirli bir kullanıcı sayısına kadar normal sayfayı gösterip diğerlerine statik sayfa gösterme gibi çözüm stratejileri kullanılabilir.
- Lokal network'te yük testi yapmak önerilmez çünkü makine kapasitesi sınırlıdır ve test sonuçları gerçek dünyada yaşanacak durumları yansıtmaz.
- 25:34Etkili Yük Testi Yöntemleri
- Yük testlerini dağıtık bir şekilde, farklı makinelere ve network'lere dağıtarak yapmak daha etkilidir.
- Ramp-up time (yük artışı süresi) test sonuçlarını etkiler, çok kısa sürede yüksek yük uygulamak makine kapasitesini aşabilir.
- Tek bir IP adresinden değil, farklı IP'lerden yük testi yapmak daha sağlıklı sonuçlar verir.
- 27:17Yük Testi ve Kod İncelemesi
- Yük testi sırasında, RAM tarafında yaratılan yük ve isteklerin canlı sistemlerde veya test sistemlerinde hangi sorguların çalıştığını gösteren uygun fiyatlı araçlar (Dyna Trace gibi) kullanılır.
- Yük testi raporlarında, servislerin arkasında çalıştığı sorgular ve gereksiz kod blokları gösterilir, böylece code review yapılabilir.
- Yük testi sonrası response time'ın kabul edilebilir olmadığı durumlarda uyarı verilir ve kod güncellemesi yapıldıktan sonra test tekrar koşulduğunda performans artışı gözlemlenebilir.
- 30:11Yük Testi Süreci
- Yük testi için belirli response time değerleri müşteri tarafından belirlenir, önerilerde bulunulur.
- Yük testi uygulamadan önce uygulamanın arkasındaki işlemlerin aktarımı gereklidir.
- JMeter, uygulamaların test edilebilmesi için tasarlanmış ve geliştirilmiş bir Apache projesidir.
- 31:53JMeter Kullanımı
- JMeter ile web uygulamaları, dökümantasyon, servisler ve mobil uygulamalar test edilebilir.
- Trendyol gibi müşteriler depo yönetim sistemlerinin simülasyonunu JMeter ile test edebilir.
- Simülasyon testlerinde thread count'lar önemlidir, örneğin ön mal kabul sürecinde depo tarafında çalışan kişi sayısına göre thread sayısı ayarlanmalıdır.
- 33:46JMeter Özellikleri
- JMeter'da Java, JavaScript kodları yazılabilir ve Q mantığı koyulabilir.
- JMeter, giden ve gelen paketleri dinleyerek request ve response'ları gösterir.
- JMeter raporlama özellikleri sunar ve DDoS testi için de kullanılabilir.
- 36:55JMeter Kullanım Planı
- Sunum sonrası JMeter kullanımı, test planı oluşturma ve tire grup mantığı gösterilecek.
- Record alarak test yazma, API üzerinden test yazma ve en çok kullanılan metotlar gösterilecek.
- Rapor ve runtime izleme yapma, JMX dosyasının Loadium'a yükleme ve Loadium'da test yazma gösterilecek.
- 37:58Yük Testi Aracı Tanıtımı
- Aracı ilk otuz günlük ücretsiz bir sürüm sunuyor ve yük testlerinde sonuçları gösteriyor.
- Arayüzde transaction time görüntülenebiliyor ve pik değerler görülebiliyor.
- Servis map bölümünden arka tarafta çalışan servislerin yapısı görülebiliyor.
- 38:50Aracın Özellikleri
- Transaction bölümünden en çok yük getiren transactionlar görüntülenebiliyor.
- Servislerin yük oranları görülebiliyor ve en fazla yükü alan yer kırmızı renkle vurgulanıyor.
- Transaction'ın içindeki servisler, Oracle çağrıları ve authentica request'ler görüntülenebiliyor.
- 40:03Canlı Sistem Testi
- Aracı canlı sistemlerde test edebilir ve monitör yapabilirsiniz.
- Yük testinden önce veya sonra karşılaştırma yapmak için kullanışlı bir araç.
- Sepete ekleme gibi işlemlerde arka tarafta ne kadar metot çağrıldığını görebilirsiniz.
- 41:04Hata ve Performans İzleme
- Aracı hataları ilginç bir şekilde gösteriyor ve hatanın neyden kaynaklandığını bildiriyor.
- Response time değerleri görüntülenebiliyor, örneğin bir transaction altı milisaniyede tamamlanabiliyor.
- İyi bir response time değeri altı milisaniye, kötü bir değer ise üç bin milisaniyenin üzerinde olabilir.
- 42:22JMeter Kullanımı
- JMeter'in en kararlı sürümü 3.0'dır, 3.1 sürümü record alırken sorunlar yaratıyor.
- JMeter bir jar dosyasıyla çalışıyor ve arayüzden test yazımı yapılabilir.
- LoadRunner, dünya genelinde bilinen bir yük testi aracıdır ve cloud üzerinden testler yapılabilir.
- 43:52Türkiye'deki Yük Testi Çözümü
- Türkiye'de LoadRunner'un muadili olarak bir araç sunuluyor.
- Üye olunduğunda belli bir ay civarında bir makine elli TL kadar kullanılabiliyor.
- Arayüzden JMeter test dosyaları (JMX) yüklenebiliyor ve Amazon'da makine açılabilir.
- 45:19Test Ayarları
- Ramp-up time gibi JMeter ayarları arayüzden değiştirilebiliyor.
- Forever testi sürekli çalıştırılabilir, iterasyon sonsuz olarak ayarlanabilir.
- Test süresi maksimum on beş dakika olabilir, daha uzun süreli testler özellikle pro ortamda sakıncalı olabilir.
- 47:46Network Type Önemi
- Testlerin network type'ı önemlidir, local test sonuçları cloud test sonuçlarıyla aynı olmayabilir.
- Amazon'da makine açıldığında network type standartları belirlenir.
- Network type testlerinde sonuçlar bu standartlara göre değişir, local test sonuçları bu standartlara uygun olmayabilir.
- 48:42Load Test Uygulaması Özellikleri
- Mobil uygulamayı açıp test ürünü üzerinden test sonuçlarını görebilirsiniz.
- Manuel test yaparak Google Chrome uygulamasını indirip siteye girdiğinizde, network seçeneğinden response zamanlarını görebilirsiniz.
- Kararlı sürümlerde lisans gelirleri bulunur ve test sırasında nevrelik uygulaması önerilir.
- 51:12JMeter Kullanımı
- JMeter ekranı basit bir yapıya sahiptir ve hem test hem de developer'lar tarafından kullanılabilir.
- Load test yazmak için önce bir "grup" oluşturulması gerekir, bu grup test senaryosunu belirler.
- Trend grubunda sistemde anlık yüklenecek kullanıcı sayısı ve ramp-up time gibi parametreler ayarlanabilir.
- 53:30Test Senaryosu Oluşturma
- Test senaryosunda HTTP protokolü, port numarası gibi protokol bilgileri belirtilir.
- Cookie Manager ve Header Manager gibi özellikler uygulamaya giriş için gerekli bilgileri sağlar.
- Test adımlarına isim verilebilir (login, sepete ekle gibi) ve her adımda HTTP metodu seçilebilir.
- 56:00Parametrik Testler ve Raporlama
- Regular Expression Extractor (Rex) kullanılarak dönen değerler parametrik olarak kullanılabilir.
- Shell Sampler ile test adımlarında kod yazılabilir ve ekrana yazdırma gibi işlemler yapılabilir.
- Raporlama bölümünde saniyede yapılan istek sayısı, ortalama, minimum ve maksimum response time gibi performans metrikleri görüntülenebilir.
- 59:05API Testi Çalıştırma ve Sonuçları İnceleme
- API testi, farklı network'ten gelen sonuçları göstermeyecektir; örneğin Anadolu, Asya ve Avrupa'dan bağlanan kullanıcılar farklı sonuçlar gösterecektir.
- Test, toplamda kaç request atıldığını gösterir ve bu testler Rest API üzerinden yazılmıştır.
- Testlerde login olmadan, login olduktan sonra access token alacak ve bu token ile üç farklı metot çalıştırılacaktır.
- 1:00:23Test Sonuçlarının İncelenmesi
- Test çalıştırıldığında, response'lar, parametreler ve zaman bilgileri görüntülenecektir.
- Simülasyon testi için play butonu ile başlatılırken, grup içerisindeki testler için sağ tıklayıp start olarak başlatılması gerekir.
- Test çalıştırıldığında ilk request'in özellikleri ve response kodları görüntülenir.
- 1:01:42Access Token ve Test Sonuçları
- Access token, diğer sistemlerin sağlıklı çalışması için gereklidir ve test sonuçlarında bu token dönmektedir.
- Test planı tetiklenerek testlerin çalışıp çalışmadığı kontrol edilebilir.
- HTML formatında kaydedilebilir ancak bu çok sağlıklı değildir, en iyisi tek formatla göstermektedir.
- 1:03:16Test Sonuçlarının Değerlendirilmesi
- Test çalıştığında response gelmezse, request gitmediği veya yazılan testin yanlış olduğu anlaşılır.
- Dönen değerlerden biri success kriteri olarak kullanılabilir ve associal gibi parametreler eklenerek testler devam ettirilebilir.
- Testte dönen token değeri ekrana yazdırılarak kontrol edilebilir.
- 1:05:19Test Hatalarının Tespiti
- Testi silerek, access token set edilmediğinde testin patladığını görebilirsiniz.
- Token hatası verildiğinde, diğer stepler boşa çıkmış olur.
- Yük testine koşmadan önce mutlaka pilot testi yapılması önerilir, böylece sorunlar bir bak edilebilir.
- 1:07:09Postman Kullanımı ve Kayıt Testi
- Postman kullanıyorsanız, testleri edinip burada da yazabilirsiniz.
- Proxy üzerinden kayıt yapabilmek için proxy ayarlanması gerekir, genellikle localhost:8888 portu kullanılır.
- Script Recorder plugini ile record edilen testler, belirli bir trade grup altına alınmalıdır.
- 1:11:31Test Kaydı ve İstek Gözden Geçirme
- Login işlemi sırasında tüm istekler otomatik olarak kaydedilmektedir.
- Kaydedilen isteklerin sayısı artmaya devam eder ve arka tarafta çalışan tüm işlemler kaydedilir.
- Testi durdurmak veya ekranı kapatmak mümkündür, yeterli sayıda kayıt alındığında bu işlem yapılabilir.
- 1:12:43Gereksiz İşlemlerin Silinmesi
- Gereksiz olan tüm işlemler tek tek seçilebilir ve silinebilir.
- Ana sayfadan login sayfasına geçiş sırasında kullanıcı adı ve şifre bilgileri kaydedilir.
- Proxy kullanmadan kayıt almak mümkün değildir, mutlaka proxy kullanılması gerekir.
- 1:15:38Test Sonuçları ve Hatalar
- Kullanıcı adı ve şifre bilgileri POST isteği ile gönderilir ve anasayfaya dönüş yapılır.
- Hatalar kızıl renkte gösterilir ve yanlış girişler buradan görülebilir.
- Test tekrar çalıştırıldığında, Cookie Manager gibi gerekli bileşenlerin olmaması hata dönebilir.
- 1:16:42Test Parametreleri ve Çalıştırma
- Testte Cookie Manager eklenir ve kullanıcı adı, şifre bilgileri girilir.
- Test çalıştırılırken Ramp-Up Time değeri 30 olarak ayarlanır ve "Forever" seçeneği ile sürekli çalıştırılabilir.
- "Forever" seçeneği kullanıldığında, belirtilen sayıda kullanıcı (örneğin 400) aynı anda çalışmaz, ancak sistemde o sayıda aktif kullanıcı olarak görünür.
- 1:17:32Load Testing Analizi
- Dörtyüz request olarak bakıp dörtyüz station beklemek yerine, testin her zaman çalışmasını sağlamak için "forever" seçeneği kullanılıyor.
- Test çalıştırıldığında, samportta atılan requestlerin response time ve diğer bilgilerini görebilirsiniz.
- Test durdurulana kadar çalışmaya devam edecek ve bu sırada JMeter ile ilgili eğitim videoları çekilecek.
- 1:18:25Loadium Kullanımı
- Loadium ekranına geçerek önceki konuşulan testin aynısını çalıştırma imkanı bulunuyor.
- Test parametreleri (makine sayısı, ramp-up time, iterasyon sayısı) ayarlanarak test başlatılıyor.
- Amazon'un özelliği olarak, makinaların ayağa kaldırılması 2-4 dakika sürüyor ve test başlamadan önce thread grupları ayağa kaldırılıyor.
- 1:20:59Test Sonuçları ve Analizi
- Test başladığında ramp-up time, hatalar, maksimum kullanıcı sayısı, ortalama request sayısı ve response süreleri görüntülenebiliyor.
- Gerçek kullanıcı benzeri testler için ramp-up time'ı step by step artırmak gerekiyor, bu da gerçek son kullanıcı testini yapmayı sağlıyor.
- Ramp-up time'ı azaltıp thread sayısını artırarak sistemin maksimum seviyesini görebilirsiniz.
- 1:22:50Sonuçların Değerlendirilmesi
- Test sonucunda response time, hatalar ve request sayısı gibi bilgiler görüntülenebiliyor.
- Response süresi global değerin üzerindeyse, ilgili servisin kontrol edilmesi gerekiyor.
- Test sonunda response kodları, hata kodları ve loglar incelenebiliyor, Amazon'un arka planda ne yaptığını görmek için loglar indirilebiliyor.