jmeter做SOAPui接口的性能测试
有些非标准的wsdl文件导入到loadrunner时候会报错,这时候我们就能利用jmeter进行性能测试,Soapui导入wsdl文件或者url地址,导入报错的见说明文档
File--->new soapUI Project,输入Project Name,勾选Initial WSDL/WADL,输入http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl,点击OK按钮,如果有参数输入的,输入参数(讲?号替换成传入的参数值),参数见wsdl接口调用说明
上图左侧从XML切换到Raw,如下图:
首先要打开jmeter,在测试计划中添加一个线程组,在线程组中要添加->Sampler->SOAP/XML-RPC-Request, SOAP/XML-RPC-Request这个界面中主要填写以下红框中的三大块:
URL:可以直接复制带参数请求的URL,3320那原来是个?
在project测试中,如果引入wsdl报如下的错误:
Error loading [http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl]: org.apache.xmlbeans.XmlException: java.io.CharConversionException: Characters larger than 4 bytes are not supported: byte 0xb1 implies a length of more than 4 bytes,解决方案:关闭程序并找到SoapUI的安装位置中的SoapUI-4.6.4.vmoptions这个文件,在末尾加入 -Dfile.encoding=UTF8 可解决
Soap/XML-RPC Data:那里直接复制带参数请求的部分
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://WebXml.com.cn/">
<soapenv:Header/>
<soapenv:Body>
<web:getSupportCityString>
<!--Optional:-->
<web:theRegionCode>3320</web:theRegionCode>
</web:getSupportCityString>
</soapenv:Body>
</soapenv:Envelope>
Send SOAPAction:这里先不填任何东西,在线程组中添加一个监听器---查看结果树,运行一下,会提示报错,如下图:
重新回到SOAPui中,切换到Request 1中的Raw部分,如下图:
将蓝色框里的http链接粘贴到jmeter的Send SOAPAction里,同时勾选Use KeepAlive,再运行一下,应该是成功了,如下图:
jmeter响应数据中的返回值和SoapUI中的Response中的返回值一样(SoapUI测试的结果值),证明请求发送成功了,脚本开发结束了