如何在 JMeter 中读取 XML 文件?

How to read XML file in JMeter?

我试过:

//${__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));

尝试以下操作:

  1. Beanshell Sampler 添加到您的测试计划
  2. 将以下代码放入采样器的"Script"区域:

    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 Sampler and View Results Tree 侦听器添加到您的测试计划

  4. 运行 测试
  5. 确保 Beanshell Sampler 是绿色的并且设置了 ${content} 变量。如果不是 - 查看 jmeter.log 文件并搜索行 Failed to read "test.xml" file。如果此行下方的异常堆栈跟踪没有告诉您任何信息 - post 它在这里。

有关在 JMeter 测试中使用 Beanshell 的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 指南。