0
誰能幫我解決一個正則表達式的問題?JAVA在抱怨正則表達式模式中的JMeter BeanShell的採樣
所以,我檢查通過在JMeter的BeanShell中斷言的SSH控制檯輸出。輸出看起來是這樣的:
field1: value1
field2: value2
...
fieldN: valueN
我使用變量來定義的預期值,比如:
fieldNames = "field1|field2|field3";
fieldValues = "value1,value2,value3";
的BeanShell斷言代碼是這樣的:
import java.util.regex.*;
Failure = false;
FailureMessage = "failed";
String[] fieldNames = {};
String[] fieldValues = {};
String resp = SampleResult.getResponseDataAsString();
fieldNames = "${lFieldNames}".split("|");
fieldValues = "${lExpectedValues}".split(",");
int fieldNumber = -1;
for (int i = 0; i < fieldNames.length; i++)
{
Pattern pattern = Pattern.compile(fieldNames[i] + "\\W\\s(\\d+|\\w+)");
Matcher matcher = pattern.matcher(resp);
}
每次我得到這樣的響應:
Assertion error: true
Assertion failure: false
Assertion failure message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.util.regex.*; Failure = false; FailureMessage = "failed"; String[] . . . '' Token Parsing Error: Lexical error at line 16, column 62. Encountered: "W" (87), after : "\"(\\"
我在Perl中檢查了這個正則表達式,並在使用egrep的Linux控制檯中檢查了它 - 它工作正常。所以我真的不明白Java在這裏不喜歡什麼。
我將是解決此問題的任何幫助,非常感謝。
什麼是'的System.out.println輸出(FIELDNAMES [I] + 「\\ W \\ S(\\ d + | \\ W +)」);' – thefourtheye
它僅僅是相同的:第17行第46列出現詞彙錯誤。遇到:「W」(87),在:「\」\\「 – user3186902