2

私の質問は、解析されたテキストの行数が問題にならないように、Jmeter 正規表現をどのように記述することができるかということです。たとえば、正規表現:

<FMSFlightPlan>\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)</FMSFlightPlan>

以下に示す 7 行の文字列に一致し、2 つのタグの間のすべてを返します。

<FMSFlightPlan>
8725
AN NTEST/GL 
- FPN/FN/RP:DA:GCRR:AA:LEMD:F:KORAL,N29439W012347.UG5. 
SONSO,N30007W012061.UN871.VJF,N36144W005585.UN10. 
HIJ,N38305W005060.Z230.SOTUK,N39116W004448 
</FMSFlightPlan>

ただし、同じ正規表現は、次の 6 行の文字列に対して NA を返します。

<FMSFlightPlan>
C90D
AN N9696T/GL 
- FPN/FN/RP:DA:KDEN:AA:KSFO:F:DBL,N39264W106537.J80. 
ILC,N38150W114237..RUMPS,N38072W117163..OAL,N38002W117462 
</FMSFlightPlan>

テンプレートも正しい行数に設定する必要があることは理解していますが、これが問題の原因であるとは思いません。

4

1 に答える 1

1

dotall モードを確立する必要があることが判明しました。これは基本的に、正規表現エクストラクタに、新しい行を空白であるかのように解析するように指示します。dotall モードは、次のように正規表現の先頭にタグ (?s) を追加することで確立されます。

(?s)<FMSFlightPlan>(.*?)</FMSFlightPlan>

しかし...一致したテキストをまだ印刷できていません。何らかの理由で、使用している Beanshell アサーションが正規表現の参照名を変数として認識せず、次のエラー メッセージが表示されます。

アサーション エラー: true アサーション エラー: false アサーション エラー メッセージ: org.apache.jorphan.util.JMeterException: bsh メソッドの呼び出しエラー: eval ソース ファイル: 次のインライン評価: ``import java.io.*; // データ結果をファイルに書き出し outfile = "/Users/Dani . . . '' トークン解析エラー: 行 12、列 380 の語彙エラー。検出: "\n" (10)、後: "\" 3811\tYes\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\t2013T-081: 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 アサーションによって認識されるようにしようとしています。

みなさん、ご回答ありがとうございます!

于 2013-02-19T00:05:05.390 に答える