HTTP Proxy Sunucusu JMeter: Örnek Komut Dosyasını Kaydet

⚡ Akıllı Özet

JMeter HTTP Proxy Sunucusu, tarayıcı etkinliğini yeniden kullanılabilir bir test betiğine kaydeder. Kaydedici, tarayıcı ve web sitesi arasında yer alır, her isteği bir Kayıt Denetleyicisine kaydeder ve kaydedilen plan birçok sanal kullanıcı tarafından tekrar oynatılır.

  • 🎬 Temel Amaç: Proxy, test edilen uygulamada normal bir tarayıcı gezinirken kullanıcı etkinliğini izler ve kaydeder.
  • 🧱 Planın Ana Hatları: Kayıt başlamadan önce İş Parçacığı Grubu, HTTP İstek Varsayılanları ve Kayıt Denetleyicisi oluşturulur.
  • 🎯 Target denetleyici: Bu ayar, yakalanan örnekleme verilerinin test planı ağacında nereye yazılacağını belirler.
  • 🌐 Tarayıcı Kurulumu: Tarayıcının HTTP proxy'sini şu adrese yönlendirmesi gerekir: JMeter Varsayılan port numarası 8888'dir.
  • 🔐 HTTPS Kaydı: Apache'yi içe aktarınJMeterTemporaryRootCA.crt dosyasını güvenilir bir yetkili olarak ekleyin, ardından işlemi tamamlayarak kaldırın.
  • 🧹 Komut dosyasını temizleyin: Reklam ve analiz istekleri de kaydedilir ve bunlar hariç tutulmalı veya silinmelidir.
  • 🔗 Ölçeklendirmeden Önce İlişkilendirme: Kaydedilen oturum belirteçlerini ex ile değiştirintracted değişkenleri veya tekrar oynatma başarısız olur.
  • ⚠️ Sürüm Notu: WorkBench kaldırıldı. JMeter 5.0; bu öğe artık HTTP(S) Test Komut Dosyası Kaydedicisidir.

JMeter HTTP Proxy Sunucusu kayıt betiği

Nedir JMeter HTTP Proxy Sunucusu?

MKS JMeter HTTP Proxy Sunucusu, tarayıcı ile test edilen web sitesi arasında yer alan yerleşik bir kayıt cihazıdır. Uygulama normal şekilde gezinirken kullanıcı etkinliğini izler ve kaydeder ve yakalanan her isteği test planı içinde bir HTTP İstek örnekleyicisine dönüştürür. JMeter 3.0 öğeye şu isim verildi: HTTP(S) Test Komut Dosyası KaydediciVe her iki isim de aynı bileşeni tanımlıyor.

Rekor test yapmak Bir test uzmanının test hedefi üzerindeki etkinliği kaydetmesine ve tekrar oynatmasına yardımcı olur. Bu, birden fazla kullanıcı için aynı anda gerçekleştirilen bir otomatik test türüdür.

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

Modern bir sitedeki gerçekçi bir kullanıcı yolculuğu, her biri kendi başlıklarına, çerezlerine ve form parametrelerine sahip düzinelerce istek üretir.ping Tüm bunları elle örnekleyicilere kaydetmek yavaş ve hataya açık bir işlemdir. Kayıt, tarayıcının gönderdiği trafiği tam olarak yakalar ve bu da üç avantaj sağlar:

  • Doğruluk: Başlık sırası, çerezler ve gizli form alanları, sunucunun bunları aldığı şekilde aynen kaydedilir.
  • hız: On sayfalık bir yolculuğu kaydetmek dakikalar sürerken, elle yazmak saatler sürüyor.
  • Kapsam: Arayüzde görünmeyen arka plan AJAX çağrıları kayıtta yine de görünür.

Bu kayıt, tamamlanmış bir testten ziyade bir başlangıç ​​noktasıdır. Kullanılabilir hale gelmeden önce temizlenmesi, ilişkilendirilmesi ve parametrelendirilmesi gerekmektedir. yük testiAşağıdaki bölümler, boş bir başlangıç ​​noktasından başlayarak tüm yolu kapsamaktadır. JMeter Güvenilir bir şekilde tekrar oynatılabilen bir komut dosyasına açılan pencere.

Burada ise yol haritası bu pratik örneğin

HTTP Proxy Sunucusu JMeter

Senaryo Nasıl Kaydedilir? JMeter 5.x

Şu anki sürüm Apache JMeter 9 Ocak 2024'te yayınlanan 5.6.3 sürümü, belirli şartları gerektiriyor. Java 8 veya daha sonrası ile Java 17 numaralı sürüm önerilir. Bu sayfanın aşağısındaki resimli adımları izleyenler, WorkBench düğümünü bulamayacaklardır, çünkü bu düğüm 5.0 sürümünde kaldırılmıştır. İşlevsellik ortadan kaybolmadı; yeri değiştirildi. Kaydedici artık doğrudan Test Planına ekleniyor ve HTTP(S) Test Komut Dosyası Kaydedici olarak adlandırılıyor.

En hızlı yol, paketlenmiş şablondur. Seçin fileto > Şablonlar > Kayıt hem de JMeter Bu komut, bir İş Parçacığı Grubu, HTTP İstek Varsayılanları, bir Kayıt Denetleyicisi ve kaydedicinin kendisini içeren, zaten birbirine bağlanmış eksiksiz bir plan oluşturur. Aynı yapıyı elle oluşturmak aşağıdaki adımları gerektirir.

  1. Planın iskeletini oluşturun. Önce bir Thread Group ekleyin, ardından altına bir Recording Controller ekleyin. Yakalanan örnekler buraya kaydedilecektir.
  2. Test planına kayıt cihazını ekleyin. Test Planı düğmesine sağ tıklayın ve seçin. Ekle > Test Dışı Öğeler > HTTP(S) Test Komut Dosyası KaydediciBu, Thread Grubu'nun bir alt grubu değil, kardeş grubudur.
  3. Bağlantı noktasını ayarlayın. Varsayılan değer 8888'dir. Tarayıcınızın buna göre yapılandırılması koşuluyla, herhangi bir boş port kullanılabilir.
  4. Seçin Target Denetleyici. Birinci adımda oluşturulan Kayıt Denetleyicisini seçin, böylece istekler planın kök dizininde dağınık halde değil, beklediğiniz yerde gruplandırılır.
  5. Ekle URL dışlama kalıpları. İstek Filtreleme sekmesinde, aşağıdaki gibi bir kalıba sahip statik kaynakları hariç tutun: .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Bu, ilerleyen bölümlerde açıklanan manuel temizleme işlemlerinin çoğunu ortadan kaldırır.
  6. Ses kaydediciyi başlatın. Tıkla Ana Sayfa Kaydedici panelinin en üstünde. JMeter Apache yazıyorJMeterŞu anda TemporaryRootCA.crt dosyasını bin klasörüne taşıyın; bu da HTTPS kaydını mümkün kılan şeydir.
  7. Tarayıcıyı proxy'ye yönlendirin. localhost ve seçilen portu kullanarak uygulamada normal şekilde gezinin.
  8. Dur ve ortalığı topla. Durdur düğmesine basın, kalan tüm üçüncü taraf aramalarını silin ve planı kaydedin.
  9. Ölçeklendirmeden önce doğrulayın. Konu Grubuna sağ tıklayın ve seçin OnaylamakBu, planı tek bir iş parçacığıyla bir kez çalıştırır, böylece hatalar herhangi bir yük uygulanmadan önce ortaya çıkar.

Çalışan bir betiği güvenilir bir betikten ayıran bir alışkanlık daha var. Grafik arayüzü yalnızca derleme ve hata ayıklama için kullanın, gerçek testi ise komut satırından çalıştırın. jmeter -n -t plan.jmx -l results.jtl -e -o reportBu komut aynı zamanda bir HTML kontrol paneli de oluşturur. Aynı komut, şunun da temelini oluşturur: dağıtılmış test Çeşitli yük jeneratörleri arasında. Kurulum aşağıdaki kapsamda ele alınmıştır. JMeter yükleme Rehberive tüm işlem ayrıntılı olarak belgelenmiştir. Apache JMeter kayıt sayfası.

⚠️ Sürüm notu: Aşağıdaki kılavuzdaki ekran görüntüleri eski bir cihazda kaydedilmiştir. JMeter WorkBench düğümünün hala bulunduğu bir sürüm. WorkBench daha sonra kaldırıldı. JMeter 5.0. Tüm kavramlar hala geçerlidir; sadece kayıt cihazının konumu değişir ve mevcut prosedür yukarıda verilenle aynıdır.

Adım 1) HTTP Proxy sunucusunun ayarlanması

Bu, proxy kurulumu için adım adım bir kılavuzdur

  1. Ana Sayfa JMeter
  2. Seç Test planı ağaçta
  3. Ekle Konu Grubu. sağ tıklayın Test planı ve yeni bir iş parçacığı grubu ekleyin: Ekle > Konular (Kullanıcılar) > Konu Grubu

HTTP Proxy sunucusunu ayarlama

  1. Ekle HTTP İsteği. İş Parçacığı Grubunu seçin; sağ tıklayın Ekle > Yapılandırma Öğesi > HTTP İstek Varsayılanları

HTTP Proxy sunucusunu ayarlama

Yeni HTTP İstek Varsayılanları öğesinde: Sunucu adı veya IP'ye “google.com” yazın. Diğer alanları boş bırakmalısınız

HTTP Proxy sunucusunu ayarlama

  1. Ekle Kayıt Denetleyicisi“Konu Grubu”na sağ tıklayın ve bir kayıt denetleyicisi ekleyin: Ekle > Mantık Denetleyicisi > Kayıt Denetleyicisi

HTTP Proxy sunucusunu ayarlama

  1. Ekle Proxy Sunucusu Workbench'e gidin. Workbench'e sağ tıklayın ve http proxy'sini ekleyin: Ekle > Test Dışı Öğeler > HTTP Proxy Sunucusu. üzerinde JMeter 5.x, sağ tıklayın Test planı bunun yerine düğümü seçin ve HTTP(S) Test Komut Dosyası Kaydedici.

HTTP Proxy sunucusunu ayarlama

  1. set Target kontrolör kayıtlı komut dosyalarınızın nereye ekleneceği

HTTP Proxy sunucusunu ayarlama

  1. Ana Sayfa Proxy Sunucusu. HTTP Proxy Sunucusuna geri dönün ve tıklayın. Ana Sayfa alttaki düğmeye basın. Şimdi senin JMeter proxy sunucu başlangıcı

HTTP Proxy sunucusunu ayarlama

  1. Tarayıcınızı başlatın (kullandım Firefox), Seç araç > Opsiyon > Gelişmiş ortodontik vakalar için kapsamlı çözüm paketi > > ayar Aşağıdaki şekilde gösterildiği gibi HTTP proxy'sini girin. Mevcut durumda Firefox Aynı diyaloga erişim, şu yollarla sağlanır: Ayarlar > Genel > Ağ Ayarları.

HTTP Proxy sunucusunu ayarlama

Adım 2) Etkinliğinizi kaydedin

  1. Şimdi Başlat http://www.google.com web tarayıcınızda (JMeter hala açık)
  2. Etkinlikler “anahtar kelimesini arıyor mu?”guru99".
  3. Için Geri JMeter, HTTP Proxy Sunucusu'nda, dur Bittiğinde

Etkinlik Kaydet

  1. Kaydı bitirdikten sonra göreceksiniz JMeter aşağıdaki şekildeki gibi otomatik olarak yeni bir HTTP isteği oluşturdu

Etkinlik Kaydet

JMeter zaten bir kullanıcı isteği kaydetti Ana Sayfa of Google https://serdartavaslioglu.com sitesi üzerinden ücretsiz erişebilirseniz. http://www.google.com/

Diğer HTTP istekleri yukarıdaki şekilde gösterilmektedir, bunları kaldırmalısınız. Çünkü bazen JMeter Ayrıca, anahtar kelime ararken bazı reklam bağlantılarını da kaydeder. GoogleTest planımızda bunları dikkate almamalıyız.

  1. Dosya > Test Planınızı farklı kaydet seçeneğine tıklayın.

Etkinlik Kaydet

  1. Bir iletişim kutusu görüntülenecek > Dosya Adı alanına test planınızın adını girin > Kaydet'e tıklayın. Artık test planınız RecordingTestPlan.jmx adıyla kaydedildi.

Etkinlik Kaydet

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

  1. Seç Konu Grubu > Ekle > Dinleyici > Özet Raporu

Test Planını Çalıştır

  1. Özet Raporu bazı temel istatistikleri gösterecektir

Test Planını Çalıştır

  1. Konu Grubunu seçin, bilgileri aşağıdaki şekildeki gibi girin

Test Planını Çalıştır

Makaleye bakabilirsiniz. JMeter Performans testi Thread Group yapılandırması hakkında detaylı bilgi edinmek için.

  1. Teste başlamadan önce “Özet Rapor”u seçin. Testi çalıştırmaya hazır olduğunuzda, Çalıştır > Başlat (Ctrl+R) seçeneğini seçin. JMeter Etkinliğiniz 100 kez tekrar oynatılacaktır. Test çalışırken, test tamamlanana kadar istatistikler değişecektir.

Test Planını Çalıştır

Adım 4) Test sonucunuzu kaydedin

  1. Tıkla Tablo Verilerini Kaydet test sonucunu dosyaya kaydetmek için

Test Sonucunu Kaydet

  1. Test sonucunun adını girin ve Kaydet'e tıklayın. Test Sonucu JMeter varsayılan olarak *.csv formatında kaydedilir

Test Sonucunu Kaydet

Dosya Kaydı Test Planını İndirin

Dosya HTTP Proxy Sunucusunu İndirin

HTTPS Trafiğinin ve Sertifikalarının Kaydedilmesi

Günümüzde neredeyse her site HTTPS kullanıyor; oysa orijinal kılavuz bundan önce yazılmıştı. Bir proxy, tarayıcı ona güvenmediği sürece şifrelenmiş trafiği okuyamaz, bu nedenle fazladan bir adım gereklidir.

Kayıt cihazı çalışmaya başladığında, JMeter adlı geçici bir kök sertifikası oluşturur. ApacheJMeterGeçiciKökCA.crt Bin dizininde bulunan dosyayı tarayıcıya güvenilir bir sertifika yetkilisi olarak ekleyin ve ardından tarayıcıyı yeniden başlatın. JMeter Artık her site için kendi sertifikasını sunabilir ve oturumu kaydetmek için şifresini çözebilir.

Bilmeniz gereken üç nokta var:

  • Sertifika yedi gün sonra geçerliliğini yitirir. Bu kasıtlı. Silin ve bırakın. JMeter Geçerliliğini uzatmak yerine yenisini oluşturmak.
  • İşiniz bittiğinde çıkarın. Çalışır durumdaki bir makinede güvenilir bir kök sertifikasının kurulu kalması, teorik değil, gerçek bir güvenlik riskidir.
  • Bazı başvurular bunu reddediyor. Sertifika sabitleme veya karşılıklı TLS kullanan siteler hiçbir şekilde proxy üzerinden kaydedilemez ve bunun yerine komut dosyası tarayıcı geliştirici araçlarından elle oluşturulmalıdır.

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

Kaydedilen bir komut dosyası, bir kez olanları birebir kopyalar; bu, ikinci kez nadiren gerçekleşen bir durumdur. Kayıt sırasında yakalanan oturum tanımlayıcıları, belirteçler ve oluşturulan anahtarlar, komut dosyası yeniden oynatıldığında artık geçerliliğini yitirmiş değerlerdir ve çalıştırma, uygulama hatalarına benzeyen şekillerde başarısız olur.

Korelasyon çözümdür. A son işlemci Örneğin, Düzenli İfade ÖrneğitracTor veya JSON ExtracTor, giriş yanıtından gelen yeni değeri yakalar, bir değişkene kaydeder ve daha sonraki istekler kaydedilen değer yerine bu değişkene başvurur.

İş akışı kısaca şöyledir:

  1. Sonuç Ağacını Görüntüle dinleyicisiyle komut dosyasını bir kez daha çalıştırın ve başarısız olan ilk isteği bulun.
  2. Başarısız olan isteği kayıtla karşılaştırın. İki çalıştırma arasında farklılık gösteren herhangi bir değerin ilişkilendirilmesi gerekir.
  3. Eski bir kullanıcı ekletracDeğeri üreten yanıta gidin, ardından sabit kodlanmış değeri değişken referansıyla değiştirin.
  4. Ekle iddia Dolayısıyla, hata mesajı içeren HTTP 200 yanıtı veren bir sayfa yine de testi geçemez.

Komut dosyasının ölçeklendirilmesi ancak korelasyon sağlandıktan sonra güvenlidir. Yüz kullanıcıda korelasyonsuz bir kayıt çalıştırmak, hata yönetimini ölçmekten ziyade hata yönetimini ölçer. performansDiğer unsurlar ise metnin devamında ele alınmaktadır. JMeter EĞİTİMLER.

Sorun giderme

Yukarıdaki senaryoyu çalıştırırken bir sorunla karşılaşırsanız, aşağıdakileri yapın:

  1. İnternete proxy üzerinden bağlanıp bağlanmadığınızı kontrol edin. Evetse proxy'yi kaldırın.
  2. Yeni bir örneğini aç JMeter.
  3. RecordingTestPlan.jmx dosyasını açın. JMeter.
  4. Workbench'e sağ tıklayın > Birleştir > HTTP Proxy Server.jmx dosyasını seçin. JMeter 5.x sürümünde, WorkBench artık mevcut olmadığı için, bunun yerine Test Planı düğümüne birleştirin.
  5. Konu Grubu > Özet Raporu'na tıklayın.
  6. Testi çalıştırın.

Geriye kalan arızaların çoğunu açıklayan iki belirti daha vardır. Tarayıcı bağlantı kurulamayacağını bildiriyorsa, kayıt cihazı hiç başlatılmamışsa veya tarayıcıda ayarlanan bağlantı noktası, kayıt cihazında ayarlanan bağlantı noktasıyla eşleşmiyorsa. JMeterSayfalar normal şekilde yükleniyor ancak ağaç yapısında hiçbir şey görünmüyorsa, trafik HTTPS'dir ve sertifika içe aktarılmamıştır.

SSS

Kaldırıldı. JMeter 5.0. HTTP(S) Test Komut Dosyası Kaydedici gibi test dışı öğeler artık doğrudan Test Planı düğümünün altına ekleniyor.

Ekle URL Kaydedicinin İstek Filtreleme sekmesinde hariç tutulacak kalıplar. Yaygın statik dosya uzantılarını kapsayan bir kalıp, gürültünün çoğunu komut dosyasına ulaşmadan önce ortadan kaldırır.

Yapay zeka, kaydedilen örneklemeleri iş adımları ve üçüncü taraf gürültüsü olarak sınıflandırır, ardından hangilerinin silineceğini ve hangi değerlerin ilişkilendirilmesi gerektiğini önererek ham kaydı daha hızlı bir şekilde kullanılabilir bir komut dosyasına dönüştürür.

Evet. Verilen yanıt gövdesi ve yakalanacak değer göz önüne alındığında, yapay zeka bir düzenli ifade veya sınır çifti oluşturur. Bir desen bir yanıtta eşleşip diğerinde eşleşmeyebileceğinden, bunu Sonuç Ağacını Görüntüle bölümünde doğrulayın.

Tarayıcı buna güvenmiyor. JMeter proxy. Apache'yi içe aktar.JMeterTemporaryRootCA.crt dosyasından JMeter Bin klasörünü güvenilir bir kaynak olarak ekleyin, tarayıcıyı yeniden başlatın ve tekrar kayıt yapın.

Evet. Cihazın Wi-Fi proxy'sini kayıt cihazının IP adresine ve portuna ayarlayın, ardından yükleyin. JMeter Cihazda sertifika mevcut. Sertifika sabitleme kullanan uygulamalar hala kaydedilemiyor.

Hayır. Grafik arayüz, derleme ve hata ayıklama içindir. Asıl testi komut satırı modunda çalıştırın; bu mod çok daha az bellek kullanır ve sonunda bir HTML raporu üretir.

Test planları, sürüm kontrolünde iyi çalışan bir XML formatı olan .jmx olarak kaydedilir. Sonuçlar ise varsayılan olarak CSV olan ve XML olarak da saklanabilen .jtl olarak yazılır.

Bu yazıyı şu şekilde özetleyin: