İşlemci girişi JMeter: Ön İşlemci ve Son İşlemci

⚡ Akıllı Özet

İşlemci girişi JMeter Önişlemci, örnekleyici isteklerini yürütmeden önce veya sonra değiştirir. Önişlemci istek verilerini hazırlarken, Sonişlemci ise istekleri değiştirir.tracts değerleri ve kontrolleri test akışını yöneterek korelasyonu, dinamik parametreleştirmeyi ve güvenilir performans test davranışını mümkün kılar.

  • ⚙️ Temel Tanım: Bir işlemci, isteğin öncesinde veya yanıtın sonrasında çalışarak, kendi kapsamı içindeki Örnekleyiciyi değiştirir.
  • 🔍 Önişlemci Rolü: Önişlemciler değişkenleri ayarlar, yeniden yazarlar. URLÖrnekleyici çalıştırılmadan önce HTML bağlantılarını ayrıştırır ve kullanıcı parametrelerini uygular.
  • 📤 Son İşlemci Rolü: Postişlemciler yanıtları okur, örneğintracDinamik değerleri değişkenlere atayın ve çalışan testin devam edip etmeyeceğine karar verin.
  • 🧩 ExtracSeçim için: Düzenli İfadeler, Sınırlar, JSON, CSS/jQuery ve XPath örnekleritracHer bir yanıt formatına uygun seçenekler mevcuttur.
  • 🛑 Akış kontrolü: Sonuç Durumu Eylem İşleyicisi, bir Örnekleyici başarısız olduğunda bir iş parçacığını veya tüm testi durdurur.
  • 🧪 Uygulamalı Adım Adım Rehber: Geçersiz bir yol sunucu hatası döndürdüğünde otomatik olarak duran bir plan oluşturmak için altı adım gereklidir.

İşlemci girişi JMeter

Bir işlemci Apache JMeter Bu, kendi kapsamı içindeki örnekleyicileri değiştiren bir test planı öğesidir. İstek gönderilmeden hemen önce veya sonra otomatik olarak çalışır. JMeter veya bir yanıt geldikten hemen sonra, bu da onu dinamik verilerin işlenmesi sırasında kullanılan ana mekanizma haline getirir. performans testi.

2 Tip işlemci vardır:

  1. ön işlemci
  2. Post işlemcisi

Kapsam, bir işlemcinin ne kadar uzağa erişebileceğini belirler. Doğrudan bir cihazın altına yerleştirilen bir işlemci... Test planı Veya bir İş Parçacığı Grubu, altındaki her Örnekleyiciye uygulanırken, tek bir Örnekleyicinin içine yerleştirilmiş bir işlemci yalnızca o isteği etkiler. Bu kuralı anlamak, bu sayfanın sorun giderme bölümünde ele alınan yapılandırma hatalarını önler.

ön işlemci

Ön işlemci bazı eylemleri yürütür önce Örnekleyici Talebi yapılıyor.

Basit bir örnek düşünün: Diyelim ki istediniz JMeter test edilen web sitesinde "örümcek" yapmak, ayrıştırmak bağlantı(sayfadaki tüm bağlantıları kontrol edin) ve dönüş HTML. Bir HTTP isteği oluşturmadan önce denetleyicinize "HTML bağlantı ayrıştırıcısı" gibi bazı eylemler eklersiniz.

Ön İşlemci

Yukarıdaki diyagram, ön işlemcinin denetleyici ile giden istek arasında yer aldığını göstermektedir. İlk önce çalıştığı için, istek verilerini oluşturmak için doğru yerdir: zaman damgası oluşturma, CSV sütunundan değer okuma, oturum tanımlayıcısını yeniden yazma gibi işlemler burada gerçekleştirilir. URLveya her sanal kullanıcıya farklı kimlik bilgileri atamak.

Post işlemcisi

Son işlemci, Örnekleyici İsteği yaptıktan sonra bazı eylemleri gerçekleştirir.

Basit bir örnek düşünün: JMeter test altındaki web sunucusuna bir HTTP isteği gönderir (vb.) www.google.com) ve yanıtı alın. İstediğiniz JMeter Sunucu yanıtı bir hata ise testi durdurmak için, aşağıdaki gibi bir işlem sonrası modülü kullanabilirsiniz:

Post işlemcisi

İkinci diyagramda gösterildiği gibi, Son İşlemci, Örnekleyici tamamlandıktan sonra yanıtı okur. Bu aynı zamanda korelasyona verilen standart cevaptır. Bir sunucu her çalıştırmada değişen bir belirteç, oturum kimliği veya sipariş numarası döndürdüğünde, Son İşlemci bu değeri yakalar. JMeter Böylece bir sonraki örnekleyici onu yeniden kullanabilir.

Önişlemci Türleri JMeter

Apache JMeter Kompakt bir önişlemci setiyle birlikte gelir. Her biri bir örnekleyiciyi farklı bir şekilde hazırlar, bu nedenle doğru elemanı seçmek, test planının okunabilir ve bakımı kolay olmasını sağlar.

  • Örnek Zaman Aşımı: Bir isteğin maksimum süresini tanımlar. Yapılandırılan değerden daha uzun süre çalışan herhangi bir örnekleyici başarısız olarak işaretlenir.
  • Kullanıcı Parametreleri: Her sanal kullanıcı için değişkenlere belirli değerler atar, böylece her iş parçacığı kendi veri kümesini gönderir.
  • HTML Bağlantı Ayrıştırıcısı: Test edilen sayfayı tarayan örümcek, bulduğu bağlantıları ayrıştırır ve bunları bir sonraki HTTP isteğine iletir.
  • HTTP URL Yeniden Yazma Değiştiricisi: Oturum tanımlayıcısını ekler. URL olan uygulamalar için tracÇerez kullanılmadan k oturum.
  • RegEx Kullanıcı Parametreleri: Önceki bir yanıttan normal bir ifadeyle yakalanan değerleri kullanarak istek parametrelerini doldurur.
  • JDBC Önişlemcisi: Örnekleyici (Sampler) işleminden önce bir SQL sorgusu çalıştırır; bu, veritabanı kayıtlarını oluşturmak veya sıfırlamak için kullanışlıdır.
  • JSR223 Önişlemci: Bir Groovy or Java Herhangi bir özel hazırlık mantığı için kullanılan betik. Eski BeanShell Önişlemcisinin yerini almıştır ve yük altında önemli ölçüde daha iyi performans gösterir.

💡 İpucu: JSR223 önişlemcisini tercih edin. Groovy BeanShell üzerinden dil. Groovy Komut dosyaları derlenip önbelleğe alındığı için, binlerce iş parçacığı paralel olarak çalıştığında çok daha az CPU tüketirler.

Postişlemci Türleri JMeter

Son işlemciler iki gruba ayrılır: örneğintracYanıttan değerleri çeken nesneler ve Sampler'ın sonucuna tepki veren işleyiciler. Aşağıdaki tablo, her bir öğeyi en uygun yanıt biçimiyle eşleştirir.

Son İşlemci En Uygun Tipik Kullanım
Düzenli İfade Örneğitractor Herhangi bir metin yanıtı HTML ve düz metinden belirteçler veya kimlikler yakalama
Sınır Extractor Herhangi bir metin yanıtı Tam bir normal ifade yerine sol ve sağ sınır kullanarak bir değeri yakalama
JSON Örn.tractor JSON yanıtları REST verilerinden alanları okuma sırasında API testi
CSS/jQuery Örneğitractor HTML yanıtları CSS seçici kullanarak bir öğeyi seçme
XPath Örneğitractor XML ve XHTML yanıtları Yapılandırılmış bir belge ağacında gezinme
JDBC Son İşlemcisi Veritabanı sonuçları Bir isteğin ardından satırları doğrulama veya temizleme
JSR223 Son İşlemci Herhangi bir yanıt Özel betik tabanlı ayrıştırma ve doğrulamalar
Sonuç Durum Eylem İşleyicisi Herhangi bir yanıt durping Bir örnekleyici başarısız olduğunda bir iş parçacığı veya tüm test

Sınır ExtracTor geldi JMeter 4.0 sürümünde yer alır ve genellikle yazılması en hızlı seçenektir, çünkü yalnızca değerin hemen solundaki ve sağındaki metni ister. Düzenli İfade ÖrneğitracYanıtlar arasında çevre işaretlemesi farklılık gösterdiğinde, Tor daha esnek bir seçenek olmaya devam ediyor.

Önişlemci ve Sonişlemci Arasındaki Fark

Her iki unsur da aynı kapsam kurallarını paylaşır, ancak zıt sorunları çözerler. Aşağıdaki karşılaştırma, örnek uygulamadan önce bu ayrımı özetlemektedir.

Parametre önişlemci Son İşlemci
Uygulama vakti Örnekleyici isteğini göndermeden önce çalışır. Örnekleyici yanıtını aldıktan sonra çalışır.
Birincil amaç Talep verilerini hazırlar ve değiştirir. Yanıt verilerini okur ve buna göre tepki verir.
Tipik unsurlar Kullanıcı Parametreleri, HTML Bağlantı Ayrıştırıcı, JSR223 Ön İşlemci Düzenli İfade Örneğitractor, JSON Extractor, Sonuç Durumu Eylem İşleyicisi
Akış üzerindeki etkisi Testi durduramazsınız, sadece isteği şekillendirebilirsiniz. Bir iş parçacığını veya tüm test çalışmasını durdurabilir.
Ortak hedef Parametrelendirme Korelasyon ve hata yönetimi

Pratikte ikisi birlikte çalışır. Bir PostProcessor, giriş yanıtından bir oturum belirteci yakalar ve bir sonraki istekte bir PreProcessor, çağrı gönderilmeden önce bu belirteci ekler. Aşağıdaki örnek, bu modelin PostProcessor kısmını göstermektedir.

Son İşlemci Örneği

Bu eğitimde Post-processor'un nasıl kullanılacağına ilişkin adım adım talimatlar gösterilecektir. JMeter. Basit test komut dosyasıyla başlayalım.

  1. JMeter test edilen web sunucusuna bir HTTP isteği gönderir www.google.com.
  2. JMeter bir yanıt alıyor Google sunucusu.
  3. Sunucu yanıtı ise bir hata, JMeter irade durdurmak test.
  4. Sunucu yanıtı ise OK (hata yok), JMeter irade devam etmek test.

Burada ise yol haritası bu örneğin:

Son İşlemci Örneği

Ön koşul:

We yeniden kullanımı makaledeki 1. Adım ve 2. Adım JMeter Performans testi. Eğer JMeter Henüz yüklenmedi, aşağıdaki adımları izleyin. JMeter yükleme Rehberi İlk.

Adım 1) Konu Grubu Ekle

Sağ tıklayın Test planı ve yeni bir iş parçacığı grubu ekleyin: Ekle -> Konular (Kullanıcılar) -> Konu Grubu

Ancak Konu Grubu kontrol panelinde Konu Özelliklerini aşağıdaki gibi girin:

Konu Grubu Ekle

Bu ayar şunları sağlar: JMeter yaratmak 10 kullanıcı isteği http://www.google.com 10 kez.

Adım 2) Ekle JMeter elemanları

  • HTTP isteği varsayılanını ekle
  • HTTP isteği ekle

Hala yapıyoruz JMeter istek gönder http://www.google.com için Google sunucusu.

Adım 3) Son İşlemci Öğesini Ekleyin

Sağ tıklayın Konu Grubu -> Ekle -> Post işlemcisi -> Sonuç Durum Eylem İşleyicisi

Sonuç Durum Eylem İşleyicisi Kullanıcı isteği başarısız olursa kullanıcının iş parçacığını veya tüm testi durdurmasına olanak tanır.

Son İşlemci Öğesi Ekle

Sonuç Durum Eylemi Tutamaç Bölmesinde şunu seçin: Testi Şimdi Durdur. Bu seçim aşağıdaki durumlarda testi durduracaktır: JMeter sunucu yanıtından hatayı alın.

Son İşlemci Öğesi Ekle

Adım 4) HTTP İsteğini Yapılandırma

HTTP İstek Panelini açın. Girmek "ABC" Yol alanına.

HTTP İsteğini Yapılandırma

Girdiğin zaman "ABC" yola, JMeter yaratacak URL istek Google Sunucu: http://www.google.com/abc. Bu URL mevcut değil Google sunucu. Bu yanlış URL talep etmek Google Sunucu bir hata döndürecektir.

Adım 5) Sonuç Ağacını Görüntüle Ekle

Sağ tıklayın Konu Grubu -> Ekle -> dinleyici -> Sonuç Ağacını Görüntüle

Sonuç Ağacını Görüntüle Ekle

Adım 6) Testi Çalıştırın

Sonuç Ağacını Görüntüle'yi seçin, Menü çubuğunda Çalıştır düğmesine basın. göreceksin hata yanıt Google sunucu ve test duracak. dışarı ile 100 konuyu tamamlıyoruz.

Testi Çalıştır

Şimdi 4. adıma dönün, HTTP İstek bölmesini açın, "Takvim” bölmeye. Yapar JMeter yaratmak URL talep https://calendar.google.com/calendar/u/0/r için Google Sunucu. Bu doğru URL talep etmek Google Sunucu OK (hata yok) yanıtını verecektir.

Testi Çalıştır

Sonuç Ağacını Görüntüle'yi seçin, Menü çubuğunda Çalıştır düğmesine basın. göreceksin OK yanıt Google Sunucu ve test, 100 iş parçacığının tamamı tamamlanana kadar devam edecektir.

Testi Çalıştır

Bir ekleme iddia Sonuç Durumu Eylem İşleyicisi ile birlikte kullanıldığında, kontrol daha sıkı hale gelir çünkü bir doğrulama, HTTP 200 döndüren ancak yanlış içerik ileten bir Örnekleyiciyi başarısız kılabilir.

Sorun giderme

Yukarıdaki senaryoyu çalıştırırken bu 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 Jmeter örneği açın
  3. Açın ProcessorTestPlan.jmx Jmeter'da
  4. Double- Konu Grubuna tıklayın -> Sonuç Ağacını Görüntüle
  5. Testi Çalıştır

Bir işlem sonrası bileşeninin hiçbir şey yapmadığı görülüyorsa, öncelikle konumunu kontrol edin. Hedeflediği örnekleyicinin kapsamı dışında yerleştirilen bir işlem sonrası bileşeni asla çalışmaz; bu da boş bir örneklem hatasının en sık görülen nedenidir.tracted değişkeni. İlgili unsurlar, örneğin: kontrolörleri hem de dağıtılmış test Aynı kapsam mantığını izleyin.

SSS

Önişlemci, istek gönderilmeden önce içeriğini değiştirir. Zamanlayıcı ise yalnızca tanımlanmış bir süre için iş parçacığını duraklatır. Her ikisi de Örnekleyici'den önce çalışır, ancak Zamanlayıcı hiçbir zaman istek verilerini değiştirmez.

EskitracTor değeri bir yere kaydeder. JMeter Tanımladığınız değişken adı. Aynı iş parçacığındaki daha sonraki herhangi bir Sampler, bu değişkeni bir yol, başlık veya istek gövdesinde ${variableName} sözdizimiyle referans alır.

Evet. Birkaç yapay zeka asistanı artık kaydedilmiş bir yanıtı okuyarak korelasyon için bir düzenli ifade veya sınır çifti öneriyor. Yapay zeka hangi değerlerin gerçekten dinamik olduğunu bilemediği için önerinin yine de gözden geçirilmesi gerekiyor.

Evet. Yapay zekâ asistanları ham yanıtı önceden elde edilen verilerle karşılaştırır.tracTor ifadesini inceleyin ve esca'daki uyumsuzlukları belirtin.ping, gruppingVeya kapsam. Yükleme işleminde güvenmeden önce, Sonuç Ağacını Görüntüle bölümünde düzeltmeyi doğrulayın.

İşlemciler, kendi kapsamları içindeki her Sampler yürütmesi için bir kez çalışır. On iş parçacığı ile...ping Bu örnekleyiciye bağlı bir işlemci beş kez çalıştırıldığında, işlem elli kez tekrarlanır ve her iş parçacığı kendi değişken değerlerini korur.

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