2014-01-12 3 views
0

누구든지 정규 표현식 문제를 해결할 수 있도록 도와 주시겠습니까?JMeter BeanShell 샘플러의 정규 표현 패턴에 대해 불평하는 Java가

그래서 JMeter에서 BeanShell 어설 션을 통해 SSH 콘솔 출력을 확인하고 있습니다. 출력은 다음과 같습니다 : 나는 점점 오전

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

때마다 :

내가 좋아하는, 예상 값을 정의하는 변수를 사용
field1: value1 
field2: value2 
... 
fieldN: valueN 

:

fieldNames = "field1|field2|field3"; 
fieldValues = "value1,value2,value3"; 

BeanShell이다 주장의 코드는 다음과 같다 이 응답 :

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 콘솔에서도 제대로 작동합니다. 그래서 나는 자바가 싫어하는 것을 실제로 얻을 수 없다.

이 문제와 관련하여 도움을 주시면 매우 감사드립니다.

+0

(fieldName에가 [I] + "\\ W \\ S (\\ D + | + \\)은 W") ' – thefourtheye

+0

그냥 같다 : 발생했습니다 : "W"(87), 뒤에 : "\"\\ " – user3186902

답변

0

변수 fieldNames[i]에 문제가 있다고 생각합니다.

작성된 패턴을 보려면 대신이 코드를 시도하십시오. `에서 System.out.println 출력 무엇

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); 
} 
관련 문제