2

Jmeterのhtml応答データから特定の値を取得することについて質問があります。正規表現とxpathエクストラクタ(以下を参照)の両方を試しましたが、うまくいきませんでした。

これは私が受け取る応答データの一部です:

<table border="0" cellpadding="2" cellspacing="1" style="border-collapse: collapse" id="AutoNumber2" bordercolorlight="#999999" bordercolordark="#999999" width="100%">
   <tr> 
      <td class="head" align="center" colspan="2">Routing Sheet</td>
   </tr>

   <tr class="altrow"> 
      <td align="right" width="50%" class="formtext">Today's Date:</td>
      <td valign="top" width="50%" class="formtext">06/19/2012</td>
   </tr>

   <tr class="altrow"> 
      <td align="right" width="50%" class="formtext"> HCSC Received Date:</td>
      <td valign="top" width="50%" class="formtext">06/19/2012</td>
   </tr>

   <tr class="tablerow"> 
      <td align="right" width="50%" class="formtext"> Package Log Date:</td>
      <td valign="top" width="50%" class="formtext">06/19/2012 04:21PM</td>
   </tr>

   <tr class="altrow"> 
      <td align="right" width="50%" class="formtext"> Group Specialist:</td>   
      <td valign="top" width="50%" class="formtext">WATTS, JOHN</td>            
   </tr>

   <tr class="tablerow"> 
      <td align="right" width="50%" class="formtext"> Case Underwriter:</td>
      <td valign="top" width="50%" class="formtext">N/A</td>           
   </tr>    

   <tr class="altrow"> 
       <td align="right" width="50%" class="formtext"> Medical Underwriter:</td>  
       <td valign="top" width="50%" class="formtext">N/A</td>    
   </tr>

   <tr class="tablerow"> 
       <td align="right" width="50%" class="formtext">Case Number:</td>                           
       <td valign="top" width="50%" class="formtext">7402628</td>
   </tr>

そして、私はケース番号を取得しようとしています。私は正規表現抽出機能を試してきました:

Case Number:</td><td valign="top" width="50%" class="formtext">(.+?)</td>

しかし、null値が返されました。

そしてxpathextractorのために私はこれを試しました:

//table[@id='AutoNumber2']/tbody/tr[8]/td[2]

しかし、それも機能していません。私はBeanshellを使用してソースコードを文字列として取得し、数値を解析することを考えていました。その番号を取得するためのより良い方法はありますか?また、Beanshellを使用して応答データのソースコードを取得するにはどうすればよいですか?/ htmlのxpathを使用してみましたが、うまくいきません。

どうもありがとう

4

4 に答える 4

5

これを試してください、私はあなたのサンプルでそれをテストしました、そしてそれは動作します:

ここに画像の説明を入力

それがうまくいくかどうか教えてください

于 2012-06-25T13:30:55.223 に答える
2

このxpathを試してください:

//table[@id='AutoNumber2']/tr[8]/td[2]
于 2012-06-30T20:45:56.657 に答える
1
  1. XPath Extractorを使用してHTML (XML ではありません!..) 応答を解析している場合は、[ Tidy (寛容なパーサー) を使用する] オプションがオンになっていることを確認してください。

  2. xpath クエリは、抽出したい値を返す必要があります。
    xpath クエリを改良します。

    //table[@id='AutoNumber2']/tbody/tr[td/text()='Case Number:']/td[2]/text()

  3. 解析に Beanshell を使用するには、次を参照してください: Using jmeter variables in xpath extractor

  4. 最初に、他のツール (少なくとも Firefox アドオン) を使用して xpath クエリをテストできます。

于 2012-06-26T17:01:39.213 に答える
0

ViewResultsTree リスナー コンポーネントを使用して、実際の応答データで正規表現をテストおよび調整できます。

実行時に何が起こるかを調べるには、デバッグ コンポーネントを使用します。

一見すると、正規表現に改行がないため一致しないことがわかります(次のCase Number:</td>)。

改行をエミュレートする特殊文字については、こちらを参照してください。

于 2012-06-19T22:46:18.793 に答える