2016-02-16 195 views
2

我曾嘗試:如何在JMeter中讀取XML文件?

//${__FileToString(C:\\QC\\qa\\Testlink\\Jmeter\\Expected\\test.xml,ASCII,${xmlFile})};

發現錯誤消息: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval In file: inline evaluation of: ``//<?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/At . . . '' Encountered "<" at line 2, column 1.

也,我試着用${__StringFromFile}並得到了相同的錯誤信息,甚至與BeanShell的腳本是:

import org.apache.jmeter.services.FileServer; 

    //Open the file 
    FileInputStream fstream = new FileInputStream("C://QC//qa//Testlink//Jmeter//Expected//test.xml"); 
    //Get the object of DataInputStream 
    DataInputStream instream = new DataInputStream(fstream); 
    BufferedReader br = new BufferedReader(new InputStreamReader(instream)); 

回答

3

請嘗試以下操作:

  1. 添加Beanshell Sampler到您的測試計劃
  2. 將下面的代碼到取樣器中的 「腳本」 區域:

    import org.apache.commons.io.FileUtils; 
    
    try { 
        String content = FileUtils.readFileToString(new File("C:/QC/qa/Testlink/Jmeter/Expected/test.xml")); 
        vars.put("content", content); 
    
    } catch (Throwable ex) { 
        log.info("Failed to read \"test.xml\" file", ex); 
        throw ex; 
    } 
    
  3. 添加Debug SamplerView Results Tree收聽到您的測試計劃

  4. 運行測試
  5. 確保Beanshell採樣器是綠色的,並且設置了${content}變量。如果沒有 - 查看jmeter.log文件並搜索行Failed to read "test.xml" file。如果這條線下面的異常堆棧跟蹤沒有告訴你 - 在這裏發佈。

請參閱How to Use BeanShell: JMeter's Favorite Built-in Component有關在JMeter測試中使用Beanshell的更多信息的指南。

+0

謝謝sooo多德米特里....它的工作:) –