0

次の正規表現エクストラクタを使用しようとしています

Reference Name: FMSFlightPlan
Regular Expression: (?s)<FMSFlightPlan>(.*?)</FMSFlightPlan>
Template: $1$
Match No. 1

XML内の2つのFMSFlightPlanタグ間の文字列を一致させるため(タグ間の行数が異なるため、(?s)dotallモードが確立されます)

<FMSFlightPlan>
6500
AN NTEST/GL 
- FPN/FN/RP:DA:LEMG:AA:LEXJ:F:BLN,N38092W003375.UN865. 
BUGIX,N42215W003381.R753.EMANU,N42575W003469 
 </FMSFlightPlan>

いくつかのテストアプリケーションは、私の正規表現が正しいことを教えてくれます。ただし、Beanshellアサーションを使用してキャプチャされた文字列を出力しようとすると、次のエラーメッセージが表示されます。

アサーションエラー:trueアサーション失敗:falseアサーション失敗メッセージ:org.apache.jorphan.util.JMeterException:bshメソッドの呼び出しエラー:evalソースファイル:インライン評価: `` import java.io. *; //データ結果をファイルに書き出すoutfile="/ Users /Dani。..''トークン解析エラー:行12、列380で字句エラーが発生しました。発生:" \ n "(10)、後:" \ " 3811\tはい\tAAR\ tSTN \ t835 \ t \ t $ B738 \ tfp、nradps、art、CCAAN、EXCD、wp00、p00 \ t37919 \ ta0 \ ti \ t10 \ t0 \ t3 \ t0 \ t \ t14 \ t 25 / M \ t0000ADF \ t140785 \ t133806 \ t006979 \ t01:15:00 \ t0484 \ t360 \ t0379 \ t360 \ t0112 \ t 000932 \ tP00 \ t007115 \ t2013-02-13T21:23:00Z \ t2013-02-14T08: 35:00 + 00:00 \ t000837 \ t00:10:00 \ t000000 \ t00:00:00 \ t000837 \ t00:10:00 \ t000000 \ t000000 \ t000000 \ t00:00:00 \ t000000 \ t00:00: 00 \ t "

したがって、エクストラクタは文字列を返すように見えますが、Beanshellアサーションはそれを変数として認識しません。dotallモードを確立した後、なぜこれが当てはまるのでしょうか?どこかにエスケープエラーがありますか?エラーメッセージの意味もわかりません

Encountered: "\n" 

解析されるテキストには\n文字が含まれていないためです。

正規表現エクストラクタの代わりにXPathエクストラクタを使用することを検討しましたが、多くの操作やスレッドが関係する場合、これは最適ではないと聞きました。

4

1 に答える 1

1

(?s)-単一行を意味します、正しいですか?次に、新しいライン信号である\nに到達します。それがおそらくエラーの原因です。改行文字は必要ありません。

通常の応答アサーションを使用できますか?パターンの正規表現を使用してテストできると思います。

于 2013-02-19T22:36:25.067 に答える