2015-07-01 14 views
5

Próbuję poniższy kod w JMeter BeanShellJMeter porównanie BeanShell ciąg problem

muszę porównać wartość OldT z ${so_tid_1} który jest dokładny ciąg, a nie zmienną

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

Zaobserwowałem warunek if nie zostanie wykonany, nawet jeśli wartość OldT zostanie odebrana jako ${so_tid_1}. Ale jeśli zmienię ten stan na if(OldT.equals("some string"), działa dobrze i otrzymuję oczekiwany wynik.

Jakieś przemyślenia na temat tego, dlaczego nie działa?

+0

Właśnie wypróbowałem ten kod 'String OldT =" $ {so_tid_1} "; jeśli (OldT.equals ("$ {so_tid_1}")) vars.put ("OldT", "ABCD"); 'w JMeter 2.13. Warunek if jest prawdziwy i wykonywany jest 'vars.put'. Sprawdź swoją wartość 'vars.get' dla białych przestrzeni. – RaGe

+0

Dzięki, ten bezpośredni przydział wartości działa również dla mnie. Ale to samo nie działa, gdy wartość jest pobierana ze zmiennych JMeter jako 'String OldT = vars.get (" OldT ");' Czy jest coś jeszcze, co należy zrobić? – Maniram

+0

Jak sprawdzasz, czy 'vars.get (" OldT ")' zwraca '" $ {so_tid_1} "'? – RaGe

Odpowiedz

3

Wystarczy to zrobić:

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"); 
} 

Musisz uciec znak $.

+0

Wielkie dzięki. Tak, to działa dobrze. Próbowałem na wiele sposobów, ale myślę, że uciekam $ :) – Maniram

Powiązane problemy