Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
7 yazı bulundu #load-testing
BenchmarkDotNet İleri Seviye: Parametreler, Baseline, Diagnoser'lar, Runtime Karşılaştırma ve CI'da Regresyon Yakalamak
Test ve Kalite SERİ 07

BenchmarkDotNet İleri Seviye: Parametreler, Baseline, Diagnoser'lar, Runtime Karşılaştırma ve CI'da Regresyon Yakalamak

BenchmarkDotNet'in ileri kullanımı, gerçekçi senaryoları ParamsSource ile tanımlamak, eski kodu baseline yapıp oranı okumak, Memory, Exception, Threading ve Disassembly diagnoser'larıyla farkın sebebini görmek ve regresyonu göreli, istatistiksel karşılaştırmayla yakalamaktır. Bookstore'un fiyat hesabında .NET 11'in LINQ sürümünü yüzde 30-38 hızlandırıp döngüyü değiştirmediğini, 0.15.8'in net11.0'ı tanımadığını ve try/catch'li ayrıştırmanın on kat yavaşladığını ölçüyoruz.

14 Kas 2026 17 dk 15
Sonuçları Yorumlamak: Percentile'lar, Coordinated Omission, Throughput-Latency Eğrisi ve Bottleneck'i Bulmak
Test ve Kalite SERİ 06

Sonuçları Yorumlamak: Percentile'lar, Coordinated Omission, Throughput-Latency Eğrisi ve Bottleneck'i Bulmak

Load test sonucunu doğru okumak için ortalamaya değil percentile'lara bakmak, percentile'ları ortalamamak, coordinated omission'dan kaçınmak için open model kullanmak, kapasiteyi throughput-latency eğrisinin dirseğinde aramak ve darboğazı USE yöntemiyle bulmak gerekir. Bookstore API'sini 5 saniye dondurup closed modelin p99'u 8 ms, open modelin 4,2 saniye gösterdiğini ölçüyor, eğrinin çöküşünü connection pool ve SQL Server wait'lerine kadar izliyoruz.

14 Kas 2026 11 dk 13
JMeter: Hâlâ Doğru Araç Olduğu Yerler, Test Plan, Thread Group, CLI Modu ve HTML Dashboard
Test ve Kalite SERİ 05

JMeter: Hâlâ Doğru Araç Olduğu Yerler, Test Plan, Thread Group, CLI Modu ve HTML Dashboard

JMeter, JDBC, JMS ve LDAP gibi geniş protokol desteği, mevcut test planları ve kod yazmayan test ekipleri için hâlâ doğru araç; HTTP API için k6 daha uygun. Bookstore senaryosunu JMeter 5.6.3'te Open Model Thread Group, CSV Data Set, JSON Extractor ve timer'larla kurup CLI modunda koşturuyor, HTML dashboard'u okuyor ve timer scope'u, APDEX eşikleri ile exit code gibi tuzakları gösteriyoruz.

14 Kas 2026 10 dk 14
k6'yı Sürece Koymak: CI'da Performance Gate, OpenTelemetry Output, Distributed Test ve Browser Senaryoları
Test ve Kalite SERİ 04

k6'yı Sürece Koymak: CI'da Performance Gate, OpenTelemetry Output, Distributed Test ve Browser Senaryoları

k6'yı sürece koymak, PR'da kısa bir performance gate ve her gece tam bir load test koşturmak, metric'leri OpenTelemetry ile uygulama telemetrisinin yanına göndermek, büyük yükü k6 Operator ile pod'lara bölmek ve kullanıcının gördüğü süreyi browser modülüyle ölçmek demek. Bookstore için GitHub Actions workflow'unu, Collector'a giden metric'leri, iki runner'lı dağıtık testi ve k6 archive'ın options'ı dondurduğu tuzağı gerçek koşularla gösteriyoruz.

14 Kas 2026 13 dk 14
k6 ile Load Test: Script, Scenario'lar, Arrival-Rate Executor'ları, Check, Threshold ve expect()
Test ve Kalite SERİ 03

k6 ile Load Test: Script, Scenario'lar, Arrival-Rate Executor'ları, Check, Threshold ve expect()

k6 2.x ile gerçekçi bir load test, her kullanıcı akışı için ayrı bir arrival-rate scenario'su, Little's Law ile hesaplanmış VU sayısı, endpoint bazında threshold'lar, setup()'ta expect() ile hızlı başarısızlık ve JSON özetle kurulur. Bookstore üzerinde TypeScript script'i koşturup çıktıyı satır satır okuyor, veritabanı gidince abortOnFail'in testi nasıl kestiğini ve k6'ya tek çekirdek verince p95'in dokuz kat arttığını gösteriyoruz.

14 Kas 2026 12 dk 15
Workload Modeling ve Test Verisi: Gerçekçi Trafik Karışımı, Think Time, Cache Durumu ve Bağımlılıkları Taklit Etmek
Test ve Kalite SERİ 02

Workload Modeling ve Test Verisi: Gerçekçi Trafik Karışımı, Think Time, Cache Durumu ve Bağımlılıkları Taklit Etmek

Gerçekçi bir load test, trafik karışımını access log'dan ölçer, oturum yüzdesini istek yüzdesinden ayırır, rastgele think time kullanır, production boyutunda ve dağılımında veriyle, bilinçli seçilmiş cache durumuyla ve stub'lanmış bağımlılıklarla koşar. Bookstore'da hep aynı kitabı isteyen testin veritabanına bir dakikada yalnız 41 sorgu gönderdiğini, gecikmesiz ödeme stub'ının siparişi yirmi kat hızlı gösterdiğini gerçek koşularla gösteriyoruz.

14 Kas 2026 16 dk 14
Performance Testing Türleri ve Hedefler: Load, Stress, Spike, Soak, Breakpoint ve SLO'dan Kabul Kriterine
Test ve Kalite SERİ 01

Performance Testing Türleri ve Hedefler: Load, Stress, Spike, Soak, Breakpoint ve SLO'dan Kabul Kriterine

Her performance test türü ayrı bir soruya cevap verir: smoke script'in çalıştığını, average load normal günü, stress zirveyi, spike ani sıçramayı, soak saatler sonrasını, breakpoint kapasite sınırını gösterir. Kabul kriterini SLO'dan yük, süre ve sınırlarla türetiyor, Little's Law ile sanal kullanıcı sayısını hesaplıyor ve Bookstore üzerinde closed model'in yavaşlayan sistemde yükü kendiliğinden azaltıp sorunu gizlediğini gerçek k6 koşularıyla gösteriyoruz.

14 Kas 2026 13 dk 14
Blog Haritası