2015-07-01 24 views
5

Ben JMeter BeanShell aşağıdaki kodu çalışıyorumJMeter Beanshell dize karşılaştırma sorunu

Ben tam bir dize ve değişken olmayan

String OldT = vars.get("OldT"); 
if (OldT.equals("${so_tid_1}")){ 
    vars.put("OldT","ABCD"); 
} 

ben gözlemledim olduğunu ${so_tid_1} ile OldT değerini karşılaştırmak gerekir OldT'nin değeri ${so_tid_1} olarak alındığında bile koşulu gerçekleştirilmez. Ancak durumu if(OldT.equals("some string") olarak değiştirirseniz iyi çalışır ve beklenen çıktıyı alırım.

Neden çalışmadığı konusunda herhangi bir düşünce var mı?

+0

Bu kodu denedim 'String OldT =" $ {so_tid_1} "; (EskiT.equals ("$ {so_tid_1}")) vars.put ("OldT", "ABCD"); 'JMeter'de 2.13. Eğer koşul koşulu doğru olarak değerlendirir ve 'vars.put' çalıştırılır. Beyaz alanlar için "vars.get" değerinizi kontrol edin. – RaGe

+0

Teşekkürler, Bu doğrudan değer ataması benim için de çalışıyor. Ancak, aynı değer, JMeter Değişkenlerinden "String OldT = vars.get (" OldT ") olarak alındığında işe yaramaz;“ Yapılması gereken başka bir şey var mı? – Maniram

+0

"Vars.get" ("OldT") 'ı" $ {so_tid_1} "' döndürdüğünü nasıl kontrol ediyorsunuz? – RaGe

cevap

3

Sadece bu yapın:

String OldT = vars.get("OldT"); // I need to compare the value of OldT 
           // with ${so_tid_1} which is an exact 
           // string and not a variable 
if (OldT.equals("\${so_tid_1}")){ 
    vars.put("OldT","ABCD"); 
} 

Sen $ işareti kaçmak gerekir.

+0

Çok teşekkürler. Evet, bu işe yaramadı. Birçok yolu denedim, ama dint kaçmaktan kaçıyordu :) – Maniram