2017-01-03 25 views
0

JSON形式のHTTP応答を取得しています。 JSON抽出ツールを使用して正確な値を抽出できますが、CSVファイルに保存することができません。ここでbeanshell jmeterを使用してcsvファイルに抽出結果を書き込む方法は?

JSONレスポンス

{ 
    "success": true, 
    "vulns":  [ 
       { 
      "TYPE": "vuln", 
      "ID": "82003", 
      "FQDN": "", 
      "PORT": "", 
      "Table": "67696056" 
     }, 
       { 
      "TYPE": "vuln", 
      "ID": "90067", 
      "FQDN": "", 
      "PORT": "", 
      "Table": "67696057" 
     }, 
       { 
      "TYPE": "vuln", 
      "ID": "70000", 
      "FQDN": "", 
      "PORT": "", 
      "Table": "67696058" 
     }, 
       { 
      "TYPE": "vuln", 
      "ID": "70032", 
      "FQDN": "", 
      "PORT": "", 
      "Table": "67696059" 
     }, 
       { 
      "TYPE": "vuln", 
      "ID": "90042", 
      "FQDN": "", 
      "PORT": "", 
      "Table": "67696060" 
     } 
    ] 
} 

私はすべてのIDは、将来的にそれらを使用する.CSVファイルに保存することにしたいです。 私はそれがファイルを足すされるが、すべてのIDのが

["82003","90067","70000","70032","90042"] 

のように1行で記述されたが、私は

82003 
90067 
70000 
70032 
90042 

デバッグポストプロセッサのようにそれらを必要としているbeanshell postprocessor

import java.io.FileWriter; 

String str=vars.get("ID"); 

FileWriter writer = new FileWriter("C:\\Softwares\\Installed\\jmeter-3.0\\bin\\ID.csv"); 

writer.write(str); 

writer.close(); 

に次のコードを使用応答データ

ID=["82003","90067","70000","70032","90042"] 

いくつか私に解決策やBeanShellコードを提供してもらえますか?

おかげで、 ビジェイ

+0

'ID 'を取得するために使用したパターン/正規表現を追加してください。 –

答えて

0

私はあなたがJSR223ポストプロセッサとGroovy言語の代わりに、JSON抽出とBeanShellのを使って一石二鳥ことができると信じて。あなたは、ファイルが生成されるはずです

import groovy.json.JsonSlurper 
import org.apache.commons.io.FileUtils 

def response = prev.getResponseDataAsString() 

JsonSlurper slurper = new JsonSlurper() 
def json = slurper.parseText(response) 

def ID = json.vulns.ID 

ID.each { FileUtils.writeStringToFile(new File("C:\\Softwares\\Installed\\jmeter-3.0\\bin\\ID.csv"), it + System.getProperty("line.separator"), true) } 

  1. JSON出力
  2. は、ポストプロセッサの「スクリプト」領域に以下のコードを入れていることを生成し、要求の子としてJSR223 PostProcessorを追加します。あなたが望む形式で

    参考文献:

0

それは私のため

ID = vars.get( "ID")を働いていた、これを試してください。

0

JSON Extractorを使用して正確な値を抽出する場合は、次のコードを使用して変数を改行することができます。

のFileOutputStream機能の使用には
try { 
     extractedId=vars.get("extracted_Id"); 
     f= new FileOutputStream("D:/YourCSVFile.csv", **true**); 
     p = new PrintStream(f); 
     this.interpreter.setOut(p); 
     print(extractedId); 
     f.close(); 
    } 

    catch (Throwable ex) { 
    log.error("Error in Beanshell", ex); 
    throw ex; 
    } 

「false」に、あなたはすべてのセットアップに新しい新鮮な結果を作成したい場合。'true'は、そのテストプランの実行ごとに同じファイルに追加されます

関連する問題