2015-01-02 12 views
5

Jmeter 2.12'yi kullanarak, bir JMeter Döngü Denetleyicisi sırasında çerezlerin sıfırlanamamasına ne sebep olabilir? Düşünebildiğim her şeyi denedim, ancak döngü boyunca her defasında, önceki bir girişten gelen çerezlerden biri hala geçerli. Çerezleri gerçekten temizlemiyor gibi görünüyor. İşteÇerezler, JMeter 'Loop Controller''da yinelemede sıfırlanmayacak mı?

ben birlikte benim döngü koymak nasıl:

Thread Group 1 
    -- Loop Controller (3x) 
    -- Simple Controller 
     -- HTTP Header Manager 
     -- HTTP Cookie Manger (with 'Clear cookies each iteration?' enabled) 
     -- BeanShell sampler - with code that tries to clear all cookies 
     -- HTTP /login (gets cookies and auth headers) 
     -- ... various HTTP Samplers ... 
     -- HTTP /logout 
I (yukarıda gösterildiği gibi) ama hiçbir şey görünmüyor bu kodla bir Beanshell Örnekleyiciyi ekleyerek çalıştı

:

import org.apache.jmeter.protocol.http.control.CookieManager; 
import org.apache.jmeter.protocol.http.control.HeaderManager; 

CookieManager cManager = sampler.getCookieManager(); 
cManager.clear(); 
HeaderManager hManager = sampler.getHeaderManager(); 
hManager.clear(); 

cevap

3
  1. Döngü denetleyicisi yinelemeyi artırmaz. vars.getIteration() Beanshell kod satırını değerlendirerek test edebilirsiniz. İplik Grup seviyesinde yineleme artırılıyor. Bunu geçersiz kılmak için, herhangi bir Beanshell özellikli Test Öğesinde (Örnekleyici, İşlemci/İşlem Sonrası, Onaylama, vb.) vars.incIteration() yöntemini çağırabilirsiniz
  2. Çerezleri temizlemek için Beanshell kodu aslında cManager örneğinin geriye aktarılmadığından emin değilsiniz örnekleyiciye Sen şöyle kodunuzu değiştirmeniz gerekir:

    CookieManager cManager = sampler.getCookieManager(); 
    cManager.clear(); 
    sampler.setCookieManager(cManager); 
    

    Yani sampler temizlenir çerezler

o "cManager" örneği var Apache JMeter içinde Beanshell komut dosyası hakkında daha fazla bilgi için How to use BeanShell: JMeter's favorite built-in component kılavuzuna bakın başladı.

+0

Teşekkürler, yineleme değişkenini bilmiyordum. – djangofan

+0

Buna çalışan herkes için ihtiyacınız olan tek şey sampler.getCookieManager(). Clear(); – rpgFANATIC

+0

süper, benim için bir çekicilik gibi çalıştı! –

6

Tamam, problemi çözdüm. 'HTTP Çerez Yöneticisi' her seferinde 'Çerezleri temizle' adı verilen bir seçeneğe sahip olsa da, söz konusu 'yineleme' bir Döngü Kontrolörü içermez. Anlamı, yalnızca 'Thread Group' tekrarları/döngüleridir. Bu net değildi ve bunu çözene kadar yarım gün boşa harcadım. Onay kutusu, "Her bir Konu Grubu yineleme çerezini temizle" ifadesinin yerine, kafa karıştırıcı olmazdı. Çok hayal kırıklığı.