我需要发送带有网络服务请求的文件。但我不知道如何在 WebService(SOAP) 请求中指定文件。
我怎样才能做到这一点?或者是否可以使用 HTTP 请求?
提前致谢...
我需要发送带有网络服务请求的文件。但我不知道如何在 WebService(SOAP) 请求中指定文件。
我怎样才能做到这一点?或者是否可以使用 HTTP 请求?
提前致谢...
JMeter 提供了至少 2 个选项来说明如何将文件传递给采样器、函数或其他任何东西。
选项 1: __FileToString()函数。只需将其放入您的“SOAP/XML-RPC 数据”文本区域,如下所示:
${__FileToString(/path/to/your/file.xml,,)}
选项 2:另一个更灵活的选项是通过脚本扩展读取文件(即,如果 XML 文件编码与您当前的系统编码不同并损坏)。
添加一个Beanshell 预处理器作为 SOAP/XML-RPC 请求的子级,代码如下:
import org.apache.commons.io.FileUtils;
import org.apache.commons.codec.binary.Base64;
String file = FileUtils.readFileToString(new File("/path/to/your/file.xml"),"UTF-8");
vars.put("file",new String(Base64.encodeBase64(file.getBytes("UTF-8"))));
它将使用 UTF-8 字符集读取 /path/to/your/file.xml 文件的内容,并将结果存储在“文件”JMeter 变量中。
只需将${file}
或${__V(file)}
放入“SOAP/XML-RPC 数据”文本区域即可。就是这样。
有关通过脚本编写 JMeter 扩展的更多详细信息,请参阅如何使用 BeanShell指南。
您可以使用查看结果树侦听器来获取有关请求/响应的完整信息。