Sürüm: 1.0.0Bu dokümantasyon Spitfire 1.0.0 içindir.
JMeter, Gatling ve Locust testlerini olduğu gibi çalıştırmak
Elinizde hazır JMeter planları, Gatling simülasyonları ya da Locust dosyaları varsa onları Spitfire testine çevirmeden de çalıştırabilirsiniz. Test kendi motoruyla, o motorun imajından başlatılan runner'larda koşar. Sonuçlar diğer koşular gibi Spitfire'da raporlanır: her sampler ya da istek bir adım olarak görünür; eşikler, karşılaştırma raporları ve bildirimler aynen çalışır.
Testi Spitfire adımlarına çevirmek isterseniz Testler sayfasındaki Dosyadan aç düğmesi .jmx ve k6 dosyalarını çevirmeye devam eder. Bu sayfa çevirmeden çalıştırmayı anlatır.
Motoru açmak (yönetici)
Harici motorlar varsayılan olarak kapalıdır. Yüklenen bir JMeter planı (JSR223, BeanShell, OS Process), Gatling simülasyonu ya da locustfile bir programdır: runner'ın yetkileriyle çalışır ve runner'ın erişebildiği her yere erişebilir.
- Kurulum yöneticisi Runner'lar
Spitfire'da: /runnerssayfasındaki Harici motorlar kartını açar. - Kullanılacak motoru (JMeter, Gatling, Locust) ayrı ayrı açar.
- Kaydederken "Bu testler runner üzerinde kod çalıştırabilir" uyarısını onaylar. Onay ve
değişiklik denetim kaydına (
engines.settings) yazılır.
Motor kapalıyken o motorun dosyaları yüklenemez ve testleri başlatılamaz.
Runner imajları
Her motorun kendi runner imajı vardır. Normal runner imajının etiketine motor adı eklenir:
| Motor | İmaj | İçinde |
|---|---|---|
| JMeter | usespitfire/spitfire:<sürüm>-jmeter |
JMeter 5.6.3, Custom Thread Groups plugin'i |
| Gatling | usespitfire/spitfire:<sürüm>-gatling |
Gatling 3.11 kütüphaneleri |
| Locust | usespitfire/spitfire:<sürüm>-locust |
Locust 2.32 |
Bu imajlardan başlatılan runner, motoru kendiliğinden bulur ve engine-jmeter gibi bir etiketle
bildirir. Harici motor testleri yalnız bu etiketi olan runner'lara gider; diğer testler bu
runner'larda da koşabilir. Kubernetes'te isteğe bağlı runner'lar açıksa koşu, motorun imajıyla
pod başlatır. Farklı bir imaj adı için SPITFIRE_ONDEMAND_IMAGE_JMETER,
SPITFIRE_ONDEMAND_IMAGE_GATLING ya da SPITFIRE_ONDEMAND_IMAGE_LOCUST tanımlanır.
İnternetten indirme yok
Koşu sırasında runner internetten hiçbir şey indirmez:
- JMeter: plugin'ler jar olarak testle birlikte yüklenir. Plugins Manager imajda yoktur.
- Gatling: derlenmiş proje yüklenir (class'lar ya da jar ve bağımlılık jar'ları). Runner'da derleme yapılmaz.
- Locust: requirements.txt'deki paketler yalnız testle yüklenen wheel (.whl) dosyalarından ya da yöneticinin Harici motorlar kartında tanımladığı iç PyPI aynasından kurulur.
Testi oluşturmak
- Testler
Spitfire'da: /testssayfasında JMeter / Gatling / Locust düğmesine basın. - Senaryolar sekmesinde motoru seçin.
- Dosya yükle ya da Klasör yükle ile testi gereken dosyalarla birlikte yükleyin:
- JMeter: .jmx planı, okuduğu CSV dosyaları ve plugin jar'ları.
- Gatling:
mvn packagesonrasıtarget/klasörü ya da onun zip'i. - Locust: locustfile, requirements.txt ve wheel dosyaları.
- Spitfire dosyayı okur ve bir özet gösterir: senaryolar (thread group, simülasyon, user class), hedef adresler, kullanıcı sayıları, ramp-up ve süre. Dosyada birden çok plan ya da simülasyon varsa çalıştırılacak olanı seçersiniz.
- Özetteki uyarıları okuyun: kod çalıştıran öğeler, yüklenmemiş bir CSV dosyası, jar'ı olmayan plugin'ler gibi.
En fazla 100 MB, 5000 dosya yüklenebilir. Dosyalar kurulumunuzun veritabanında saklanır ve yalnız koşuyu alan runner'lara gönderilir.
Yük: Spitfire'ın mı, dosyanın mı
İki seçenek vardır:
- Spitfire'ın yükü (varsayılan): kullanıcı sayısını, ramp-up'ı ve süreyi senaryonun yükü
verir. JMeter'da thread group'lar bu değerlerle çalışır. Gatling'de simülasyon
spitfire.users,spitfire.rampUpvespitfire.durationsystem property'lerini okumalıdır. Locust'a-u,-rve-tverilir. - Dosyanın yükünü kullan: dosyadaki thread group'lar, injection profili ya da LoadTestShape yükü yazıldığı gibi belirler. JMeter planında yük okunabiliyorsa düğme senaryonun yükünü dosyanınkiyle doldurur.
Her iki durumda da senaryonun VU sayısı ve süresi tavandır. Lisansın VU sınırı eşzamanlı kullanıcıya, süre sınırı koşu süresine uygulanır. Ölçülen eşzamanlı kullanıcı tavanı aşarsa ya da süre dolarsa runner motoru durdurur ve koşu nedeniyle birlikte biter.
Property'ler motora olduğu gibi verilir: JMeter'a -J, Gatling'e -D (Java system
property), Locust'a ortam değişkeni olarak.
Sonuçlar
Runner motorun sonuç dosyasını (JMeter JTL, Gatling simulation.log, Locust istek olayları) okur ve Spitfire metriklerine çevirir. Adım adı sampler'ın ya da isteğin adıdır (bir testte en fazla 200 farklı ad; fazlası tek satırda toplanır). Yanıt süreleri, hata oranı ve istek hızı diğer koşulardaki gibi raporlanır, eşikler de bunlara uygulanır.
Sınırlar
- Dene (tek VU ile deneme) harici motor testlerinde yoktur; kaydedip kısa bir koşu başlatın.
- Karşılaştırmalı koşular (A/B, sıralı) henüz harici motor testlerini desteklemez.
- Bir testte tek senaryo vardır; Spitfire adımları, veri dosyaları ve adaptif guard eklenemez.
- Kod çalıştıran testler runner'ın yetkileriyle çalışır. Runner'ları test ettiğiniz ağa göre ayrı bir ağda ve ağ politikalarıyla sınırlanmış çalıştırın.