JMeter, bir tarayıcı ile yetkilendirilmiş hedef uygulama arasında yerel bir kayıt proxy'si görevi görerek HTTP İstek örnekleri oluşturabilir. Mevcut sürümler bu bileşene HTTP(S) Test Komut Dosyası Kaydedici adını vermektedir . Bu bileşen, bir tarayıcı yolculuğunu Kayıt Denetleyicisine kaydeder; ardından komut dosyası temizlenmeli, ilişkilendirilmeli, doğrulanmalı ve protokol düzeyinde bir test olarak yürütülmelidir.

Yalnızca size ait olan veya değerlendirme yetkisine sahip olduğunuz sistemleri test edin. Kayıtlar şifreler, çerezler, belirteçler ve kişisel veriler içerebilir. Test hesaplarını tercih edin, JMX dosyalarını paylaşmadan önce gizli bilgileri kaldırın ve onaylanmış yük sınırlarına uyun.

JMeter HTTP Proxy Sunucusu nedir?

Kayıt cihazı genellikle yerel bir bağlantı noktasından dinleme yapar. 8888Bir tarayıcı, bu proxy'ye HTTP ve HTTPS istekleri gönderir ve JMeter, eşleşen trafiği seçilen bir denetleyici altında örnekleyicilere dönüştürür. Tekrar oynatma sırasında, JMeter istekleri doğrudan gönderir; her sanal kullanıcı için bir tarayıcı başlatmaz.

Senaryoyu elle yazmak yerine neden kayıt altına almalıyız?

  • Gerçekçi istek sırasını, yönlendirmeleri, formları ve arka plan API'lerini yakalar.
  • Gözden kaçması kolay olan XHR veya fetch çağrılarını ortaya çıkarır.
  • Karmaşık kullanıcı yolculuğu için hızlı bir temel oluşturur.
  • Başlık ve parametrelerdeki yazım hatalarını azaltır.

Küçük ve belgelenmiş bir API için manuel yapılandırma daha temiz bir yöntemdir. Tarayıcı ağ davranışının henüz anlaşılmadığı durumlarda kayıt tutmak faydalıdır. Terminoloji için proxy türleri kılavuzumuza bakın.

JMeter 5.x'te Komut Dosyası Nasıl Kaydedilir?

  1. Komut dosyası oluşturmak için JMeter'ı grafik arayüzü modunda başlatın.
  2. Test Planına bir İş Parçacığı Grubu ekleyin.
  3. Thread Grubu altına bir Kayıt Denetleyicisi ekleyin.
  4. Gerektiği yerlere HTTP İstek Varsayılanlarını ve HTTP Çerez Yöneticisini ekleyin.
  5. HTTP(S) Test Komut Dosyası Kaydedicisini ekleyin ve hedef olarak Kayıt Denetleyicisini seçin.
  6. İlgisiz trafiği sınırlamak için dahil etme/hariç tutma kalıplarını kullanın.

Resmi Apache JMeter kayıt kılavuzu, sürüme özel yetkili referans kaynağıdır.

Temiz bir tarayıcı profili kullanın: Uzantılar, senkronizasyon, telemetri ve ilgisiz sekmeler, gereksiz istekler oluşturur.

Adım 1) HTTP Proxy sunucusunun ayarlanması

Ses kayıt cihazı: Kullanılmayan bir yerel bağlantı noktası seçin, örneğin 8888Hedef kontrol cihazını ayarlayın ve tıklayın. Ana Sayfa.

Test tarayıcısını HTTP ve HTTPS proxy sunucularıyla yapılandırın. 127.0.0.1 ve aynı bağlantı noktası. Tarayıcı başka bir sanal makinede veya konteynerde çalışıyorsa, localhost o ortamı ifade eder; bunun yerine onaylanmış, erişilebilir bir özel adres kullanın.

Proxy host: 127.0.0.1
Proxy port: 8888

Include: https?://test.example.com/.*
Exclude: .*(.png|.jpg|.gif|.css|.woff2)(?.*)?$

İlk aşamada çok agresif filtreleme yapmayın çünkü bir uygulama API'si başka bir alt alan adı kullanıyor olabilir. Bir kez kaydedin, sunucuları inceleyin, ardından kalıpları iyileştirin.

Adım 2) Etkinliğinizi kaydedin

  1. Kaydediciyi başlatın ve geçici sertifikasına yalnızca izole edilmiş test tarayıcısında güvenin.
  2. Yetkilendirilmiş test ortamını açın.
  3. İnsan hızında, kusursuz bir yolculuk gerçekleştirin.
  4. Son işlem gerçekleştikten hemen sonra kaydı durdurun.
  5. Tarayıcının normal proxy ayarlarını geri yükleyin.

Örnekleyicileri iş eylemine göre yeniden adlandırın ve işlem denetleyicileri altında ilgili istekleri gruplandırın. Kapsam dahilinde açıkça belirtilmedikçe analitik verileri, reklamları, tarayıcı güncellemelerini, sohbet widget'larını ve yinelenen statik kaynakları kaldırın.

Her bir örnekleyiciyi gizli bilgiler açısından inceleyin. Parolalar korumalı çalışma zamanı verilerinden gelmeli, belirteçlerin değiştirilmesi ise ilişkilendirme gerektirir.

Adım 3) Test Planınızı Çalıştırın

Yük eklemeden önce bir kullanıcıyı ve bir yinelemeyi doğrulayın. Geçici olarak Sonuç Ağacını Görüntüle'yi kullanın, yönlendirmeleri ve yanıt gövdelerini kontrol edin ve beklenen iş sonucu için doğrulamalar ekleyin. Yalnızca HTTP 200, oturum açma veya ödeme işleminin başarılı olduğunu kanıtlamaz.

Threads: 1
Ramp-up: 1 second
Loop Count: 1

Hata ayıklama işlemi bittikten sonra, yoğun dinleyicileri kaldırın ve grafik arayüzü olmayan işlemi çalıştırın:

jmeter -n -t recorded-test.jmx -l results.jtl -e -o html-report

Rapor dizini yeni veya boş olmalıdır. Yükü kademeli olarak artırın ve hedef sistemi ve JMeter'ı izleyin.

Adım 4) Test sonucunuzu kaydedin

Yeniden kullanılabilir planı saklayın .jmx Dosyayı oluşturun ve oluşturulan verileri ayrı tutun:

  • JMX: Örnekleyiciler, kontrolcüler, doğrulamalar, zamanlayıcılar, değişkenler ve yapılandırma.
  • JTL: Analiz için ham örnek sonuçları.
  • HTML kontrol paneli: Yüzdelikler, verimlilik, hatalar ve aktif iş parçacıkları.
  • Sunucu ölçümleri: CPU, bellek, veritabanı, kuyruk ve hizmet telemetrisi.

Planı gizli olmayan özellikler ve test verileriyle sürümlendirin. JMeter ve Java sürümlerini, hedef derlemeyi, ortamı, kullanıcı sayısını, artış süresini ve süreyi kaydedin.

Grafik arayüzünden ağır yük çalıştırmayın. GUI dinleyicileri bellek tüketir ve sonuçları bozabilir.

HTTPS Trafiğinin ve Sertifikalarının Kaydedilmesi

HTTPS için, JMeter kayıt işlemi başladığında geçici bir sertifika yetkilisi oluşturur. Bunu yalnızca özel test tarayıcısına aktarın, yetkilendirilmiş siteyi kaydedin ve ardından kaldırın.

  1. HTTP(S) Test Komut Dosyası Kaydedicisini başlatın.
  2. Oluşturulan ApacheJMeterTemporaryRootCA sertifikasını bulun.
  3. İzole edilmiş profilde güvenilir bir yetkili olarak içe aktarın.
  4. Onaylanmış HTTPS yolculuğunu kaydedin.
  5. İşlem bittiğinde sertifikayı çıkarın.

Sertifika sabitleme, karşılıklı TLS, yönetilen tarayıcılar, mobil uygulamalar ve yeni taşıma protokolleri, müdahaleyi engelleyebilir. Üretim güvenliği kontrollerini zayıflatmayın. Bir test ortamı sürümü, API spesifikasyonu veya onaylanmış alternatif yakalama yöntemi kullanın.

Korelasyon: Kaydedilmiş Bir Senaryonun Tekrar Oynatılabilir Hale Getirilmesi

Oturum kimlikleri, CSRF belirteçleri, OAuth durumu, istek imzaları ve kaynak kimlikleri çalıştırmalar arasında değişir. Korelasyon, bir yanıttan yeni bir değer çıkarır ve bunu sonraki isteklere yerleştirir.

  1. Dinamik değeri ilk içeren yanıtı bulun.
  2. JSON, CSS, XPath veya Düzenli İfade Çıkarıcı ekleyin.
  3. Sonucu adlandırılmış bir JMeter değişkenine kaydedin.
  4. Daha sonra kod içine sabit olarak yazılmış değerleri değişken referansıyla değiştirin.
  5. Çıkarma işlemi eşleşme bulamadığında açıkça başarısız olun.
JSON Extractor
Variable: csrfToken
JSON Path: $.csrf.token
Default: NOT_FOUND

Later header:
X-CSRF-Token: ${csrfToken}

Parametrelendirme, genellikle CSV dosyalarından alınan bağımsız kullanıcı verilerini sağlar. Korelasyon ise yürütme sırasında sunucu tarafından oluşturulan verileri yakalar. Gerçekçi planlar genellikle her ikisine de ihtiyaç duyar.

Sorun giderme

SorunMuhtemel sebepsabit
Kayıtlı istek yok.Yanlış proxy, durdurulmuş kayıt cihazı, port çakışması veya atlama kuralıSunucu ve bağlantı noktasını onaylayın, kaydediciyi başlatın ve hedef dışlamalarını kaldırın.
HTTPS uyarısıGeçici CA eksik veya süresi dolmuşYeni bir kayıt sertifikası oluşturun ve yalnızca test profiline aktarın.
Çok fazla trafikUzantılar, telemetri, diğer sekmeler veya genel kalıplarTemiz bir profil kullanın ve dahil etme/hariç tutma filtrelerini iyileştirin.
Giriş tekrarı başarısız olduEksik çerezler, belirteçler, OAuth akışı veya korelasyonÇerez yöneticisini ekleyin, dinamik değerleri çıkarın ve yönlendirmeleri inceleyin.
Tarayıcı daha sonra çevrimdışıHâlâ durdurulmuş yerel proxy'yi işaret ediyor.Otomatik veya proxy'siz ayarları geri yükleyin.
JMeter bellek hatasıGUI dinleyicileri veya büyük yanıt depolama alanıGrafik arayüzü olmayan modu kullanın ve kaydedilen yanıt verilerini sınırlayın.
Tarayıcıdan farklıJMeter sayfa JavaScript'ini oluşturmaz veya çalıştırmaz.Temel API'leri test edin ve ölçümleri görüntülemek için tarayıcı araçlarını kullanın.

JMeter bir protokol performans aracıdır. En Büyük İçerik Boyama gibi görsel olayları tek başına ölçemez.

SSS

JMeter'da HTTP Proxy Sunucusu adının yerini ne aldı?

Bu bileşen artık HTTP(S) Test Komut Dosyası Kaydedici olarak adlandırılıyor.

Hangi kayıt portunu kullanmalıyım?

Kullanılmayan herhangi bir yerel port kullanılabilir. 8888 numaralı port yaygındır ve tarayıcının aynı değeri kullanması gerekir.

JMeter HTTPS trafiğini kaydedebilir mi?

Evet, izole edilmiş test tarayıcısı JMeter'ın geçici kayıt sertifikasına güvendiğinde.

Kaydedilmiş bir metin tekrar oynatıldığında neden başarısız oluyor?

Dinamik belirteçler, çerezler, kimlik doğrulama akışları, sunucu farklılıkları ve eksik veriler genellikle ilişkilendirme ve parametreleştirme gerektirir.

JMeter Chrome'u kaydedebilir mi?

Evet. JMeter'ın yerel kaydedicisini kullanmak için temiz bir Chrome profili yapılandırın.

JMeter GUI üzerinden yük testleri çalıştırmalı mıyım?

Hayır. Önce grafik arayüzü (GUI) modunda derleyin ve hata ayıklayın, ardından yükleme işlemini GUI olmayan modda gerçekleştirin.

JMeter gerçek bir tarayıcı gibi mi davranıyor?

Hayır. Protokol istekleri gönderir ancak HTML oluşturmaz veya tarayıcı JavaScript'ini çalıştırmaz.

Üretim oturum açma işlemlerini kaydetmek güvenli mi?

Test ve hazırlık ortamı hesapları tercih edilmelidir. Üretim ortamında veri yakalama, açık yetkilendirme ve sıkı gizlilik yönetimi gerektirir.