Artillery ile API Performans Testi: Pratik Bir Kılavuz Dünya Geneli

Artillery ile API Performans Testi: Pratik Bir Kılavuz

Artillery, Node.js tabanlı açık kaynak bir yük testi aracıdır. Bu kılavuzda kurulumu, test senaryosu yazmayı ve sonuçları analiz etmeyi öğreneceksiniz

Artillery, Node.js üzerine inşa edilmiş açık kaynaklı bir yük testi aracıdır. Basit bir YAML dosyasıyla API'nize yüksek eşzamanlı trafik oluşturmanıza olanak tanır. Yük aşamalarını tanımlar, istek akışlarını belirler ve `artillery run script.yml` komutuyla testi başlatırsınız. Sonuç olarak yüzdelik yanıt süreleri, istek oranları ve hata sayıları gibi kritik performans metriklerini elde edersiniz. Bu kılavuz, Artillery v2'nin kurulumunu, pratik bir test yazmayı, çalıştırmayı ve sonuçları doğru şekilde almayı adım adım açıklamaktadır.

Artillery, sanal kullanıcılar (VU'lar) oluşturarak sisteminizin sürekli yük altında nasıl davrandığını ölçer. Sanal kullanıcı, gerçek bir kullanıcı veya hizmet gibi adım adım bir senaryoyu yürüten simüle edilmiş bir istemcidir. Artillery'i, p95 yanıt süresinin 50 istek/saniyede nasıl değiştiği, hangi erişim oranında hataların başladığı, API'nin 5 dakikalık sürekli yük altında kararlı kalıp kalmadığı gibi pratik performans sorularına yanıt almak için kullanabilirsiniz. Testler bildirimseldir: Yükü YAML'da tanımlar, eşzamanlılık döngülerini manuel olarak yazmak zorunda kalmazsınız.

Kurulum oldukça basittir: `npm install -g artillery@latest` komutuyla aracı global olarak yükleyin. Alternatif olarak `npx artillery@latest run script.yml` ile de kullanabilirsiniz. Bir test dosyası iki ana bölümden oluşur: `config` (hedef, yük aşamaları ve değişkenler) ve `scenarios` (her sanal kullanıcının ne yapacağı). Örnek bir yapılandırmada, hedef URL, ısınma, kademeli artış ve sabit yük aşamaları tanımlanır. Her senaryoda GET ve POST istekleri gibi adımlar yer alır. Değişkenler `{{ variableName }}` sözdizimiyle kullanılır ve CSV dosyalarından veri okumak da mümkündür.

Testi çalıştırmak için `artillery run script.yml` komutu yeterlidir. `--target` ile hedef URL'yi geçersiz kılabilir, `-v` ile değişkenleri komut satırından iletebilirsiniz. Artillery, çıktıda aşamaların isimlerini, yanıt sürelerini ve hata oranlarını gösterir. Sonuçları JSON formatında da alarak CI sürecinize entegre edebilirsiniz. Bu sayede performans regresyonlarını otomatik olarak tespit edebilirsiniz. Apidog gibi araçlarla da entegre çalışarak API test sürecinizi daha da güçlendirebilirsiniz.

Paylaş: