Yük testlerim için JMeter kullanıyorum. Zamanlayıcıyı milisaniyede bir gecikme yapmak için uzatmak ve bir sonraki örneği geciktirmek için kullanmak istiyorum. Bunu yapmak için şu anda BeanShell Script kullanıyorum ancak bir Script Snippet'i yerine bir Java sınıfına sahip olmak istiyorum. Ne Zamanlayıcı sınıfını genişletmeliyim ve bakabileceğim bir örnek var mı? Çevrimiçi bir şey bulamadım: - |Zamanlayıcıyı değişken olarak geciktirmek için JMeter Timer'ı genişletme
cevap
Bir zamanlayıcı uygulamak zorunda kalmadım, ancak Sampler, Post-İşlemci ve Dinleyiciyi uyguladım, bu yüzden Timer'in diğer bileşenlerle benzerliği hakkında bazı varsayımlar yapıyorum. Ayrıca, ben JMeter eklentileri geliştirme hakkında herhangi bir iyi dokümantasyon görmedim, genellikle nasıl yaptıklarını anlamak için JMeter kodunda kazıyorum, sonra çeşitli işlevleri açıklayan API belgelerini kontrol ediyorum.
Temel olarak 2 sınıfları
- bir saat çalıştırır A sınıfı uygulaması gerekecektir. Bu sınıf AbstractTestElement'u genişletmeli ve zamanlayıcınızı JMeter UI'de göstermek için Timer interface
- A GUI sınıfını uygulamalıdır. Bu sınıf Yani eklentinin iskelet şu şekilde görünecektir AbstractTimerGui
uzatmak olmalıdır: ConstantTimer iyi ve benzeri örnekler açısından
public class MyTimerGui extends AbstractTimerGui {
// usually has at least the following 3 functions:
@Override
public TestElement createTestElement() {
}
@Override
public void modifyTestElement(TestElement timer) {
}
@Override
public void configure(TestElement el) {
}
}
public class MyTimer extends AbstractTestElement implements Timer {
long delay() {
return someDelayOfYourChoice;
}
// you may need some other functions, e.g. running on test start or sample start
}
, sen built-in timers bakabilirsiniz özellikle görünüyor Nasıl yapıldığının özlü bir örneği. Zamanlayıcı arayüzünü uygulamak yerine, muhtemelen RandomTimer gibi ConstantTimer'i doğrudan genişletebilirsiniz.
UI kısmı için de ConstantTimerGui örneği takip edebilir ya da arayüz rasgele zamanlayıcı daha yakın ise, AbstractRandomTimerGuiBen this example benzer maven projesini öneriyoruz, sizin eklentiyi kurmak için uzanabilir. Ve sonra çalışma zamanı için lib/ext
klasörüne dağıtabilirsiniz. Eklentiniz, JMeter'de bulunmayan kütüphaneleri kullanıyorsa, bunları da JMeter'ın lib
klasörüne dağıtmanız gerekecektir.
SwingTimer belki? – user489041