我正在尝试为我的项目测试Web服务。 Web服务接受SOAP请求并提供适当的响应。
在JMeter中,我选择了SOAP / XML-RPC请求。它对我来说完全没问题,给了我正确的答案。但是,在我的测试范围内,我有超过100个Web服务,我必须在不同的环境中测试它们。从SOAP / XML-RPC示例更改URL值以将其指向不同的env是非常麻烦的工作。我们是否有像SOAP / XML-RPC请求的HTTP请求默认值?
我还尝试了一个bean shell sampler,我在其中设置变量的值,然后在SOAP sampler URL参数中检索它。但它对我不起作用。以下是代码。
Bean Shell采样器代码: vars.put("&基本URL#34;" http://localhost:9191/ws/soap&#34);
SOAP / XML-RPS采样器URL值: $ {__的BeanShell(vars.get("&基本URL#34;))}
有什么建议吗?我在JMeter文档中读到这可以通过http sampler完成,但是,如果可能的话,我想避免使用它。
答案 0 :(得分:2)
您应该避免使用SOAP / XML-RPC来支持纯Http Sampler。 使用"模板......" (菜单)>构建SOAP Web服务测试计划:
这样,您可以根据需要使用HTTP请求默认值。
但请注意,根据您的描述,使用CSV数据集配置可以让您对网址进行变换。
答案 1 :(得分:1)
使用JMeter属性设置基本URL,如:
(在JMeter安装的/ bin文件夹下)为每个属性添加一行:
baseURL=http://localhost:9191/ws/soap
或者您可以通过-J命令行键传递属性:
jmeter -JbaseURL=http://localhost:9191/ws/soap -n -t /path/to/your/testplan.jmx -l /path/to/results.jtl
${__P(baseURL,)}
您甚至可以提供默认值,即如果未通过user.properties文件或命令行参数设置该属性 - 将使用默认值:
${__P(baseURL,http://localhost:9191/ws/soap)}
有关JMeter属性以及设置,覆盖和使用它们的方法的更多信息,请参阅Apache JMeter Properties Customization Guide。