![](/img/trans.png)
[英]How to add a Jmeter variable to JAVA variable in BeanShell Sampler?
[英]JAVA in complaining about regular expression pattern in JMeter BeanShell sampler
誰能幫我解決正則表達式問題?
因此,我正在通過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不喜歡的東西。
非常感謝您提供有關此問題的幫助。
我認為變量fieldNames[i]
出了點問題。
嘗試使用此代碼查看構建的模式。
for (int i = 0; i < fieldNames.length; i++)
{
String tmp = fieldNames[i] + "\\W\\s(\\d+|\\w+)";
System.out.println(">> " +tmp);
Pattern pattern = Pattern.compile(tmp);
Matcher matcher = pattern.matcher(resp);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.