2015-04-02 1 views
1

My BeanShell Assertion возвращает следующий результат, ошибка:JMeter BeanShell Assertion encounted «\» после «»

Assertion error: true
Assertion failure: false
Assertion failure message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval
Sourced file: inline evaluation of: `` String sentText = \"Changed the TEXT\"; String receivedText = \"Changed the TEXT\"; . . . '' Token Parsing Error: Lexical error at line 2, column 18. Encountered: "\\" (92), after : ""

Я использовал BeanShell препроцессор установить свойство следующим, и я использую его в качестве редактирования , который отлично работает.

${__setProperty(textEdit,\"Changed the TEXT\")}

Затем я получаю информацию с помощью вызова GET, и я использую следующее регулярное выражение, чтобы вернуть эту конкретную информацию.

\"edittedText\":(\".*?\")}

Затем я использую BeanShell Assertion, чтобы поместить результат от этого регулярного выражения в свойстве textEditPost, как это. В этом утверждении BeanShell я также проверяю, является ли измененное значение новым значением.

${__setProperty(textEditPost,${textEditPost})} 
String sentText = ${__property(textEdit)}; 
String receivedText = ${__property(textEditPost)}; 

if (sentText.equals(receivedText)) 
{ 
    Failure = false; 
} 
else 
{ 
    Failure = true; 
    FailureMessage = "The Text does not match, expected: " + sentText + " but found: " + receivedText; 
} 

Я совершенно не знаю, где ошибка при встрече два обратных слэша исходит из, так как обе строки содержат одни и те же данные. У кого-нибудь есть идея, почему это происходит и возможное решение?

ответ

0

Я нашел проблему после принятия некоторых утверждений BeanShell для других вещей. И я также чувствую себя довольно глупо сейчас, потому что не понял этого раньше ...

Проблема в том, что значение в свойстве textEdit равно \"Changed the TEXT\" и, таким образом, начинается с обратной косой черты. Из-за этой обратной косой черты программа не знает, что с ней делать, пытаясь назначить ее переменной String sentText или при использовании свойства непосредственно в выражении if.

Поместив вызов свойства между кавычками, программа может правильно сохранить его в переменной String. Например:

${__setProperty(textEditPost,${textEditPost})} 
String sentText = "${__property(textEdit)}"; 
String receivedText = "${__property(textEditPost)}"; 

if (sentText.equals(receivedText)) 
{ 
    Failure = false; 
} 
else 
{ 
    Failure = true; 
    FailureMessage = "The Text does not match, expected: " + sentText + " but found: " + receivedText; 
} 

Я надеюсь, что это поможет другим людям с аналогичными проблемами.

 Смежные вопросы

  • Нет связанных вопросов^_^