之前公司系统涉及到WebService的接口一直在用WcfTestClient进行测试,或者直接打开WebService接口地址,输入参数看响应结果
偶然有一天看到Jmeter可以测试Webservice的接口,于是就尝试下,结果对于百度上提到的插件SOAP/XML-RPC Request一直没有找到,各种方法都试了,结果发现Jmeter版本太高了,3.2版本之后就没有这个插件了,所以没办法直接进行WebService接口的测试,不过可以借助http信息头管理器的两个参数Content-Type和SOAPAction,可以一个一个添加,然后查看结果确定是否必要参数
步骤:
1、 新建一个线程组
2、 在线程组中添加HTTP请求
(1)填写协议、服务器或IP及端口号、请求类型、路径
(2)在WcfTestClient客户端中选择调用的方法,输入正确的参数,进行调用
![](https://img.haomeiwen.com/i5999951/3193d5e60e0af521.png)
(3)切换到XML,复制Request的内容,拷贝到Http请求中的body内
![](https://img.haomeiwen.com/i5999951/048b745a9366f2d0.png)
3、在线程组中添加HTTP消息头管理器
不知道要怎么填写时可以在浏览器中打开:接口测试地址?op=调用的方法,此时就可以看到请求数据了,需要注意的是SOAPAction的值是字符串,要用引号
![](https://img.haomeiwen.com/i5999951/53a8e1fe46ec715c.png)
如果没有填写Content-Type,运行时报错
![](https://img.haomeiwen.com/i5999951/f40878499b58823e.png)
4、XPath断言
我们看到请求的返回数据是XML格式的,所以可以用XPath进行断言
同第3点,查看响应结果,格式://XML的标签/子标签[text()="值"],有些只返回一个值,那么就不需要子标签了
![](https://img.haomeiwen.com/i5999951/1c6fc20b536aebd8.png)
5、添加响应结果
比如查看结果树、断言结果
![](https://img.haomeiwen.com/i5999951/5aa7eda622ca7286.png)
遇到的问题
使用Wcf Client客户端工具拷贝的Body Data数据,启动线程,运行报错
![](https://img.haomeiwen.com/i5999951/d04f9dc537b3113d.png)
对于这个报错信息,我还不知道要怎么处理,没有发现问题(只有BodyData拷贝的值不一样)
![](https://img.haomeiwen.com/i5999951/58aa84cab0395c2a.png)
后来换了SOAPUI工具拷贝了请求,执行成功了,但是默认的Text这种格式显示的数据对比起来会很累,可以通过左侧下拉框选择XML格式
![](https://img.haomeiwen.com/i5999951/dd535b0eb9065c13.png)
![](https://img.haomeiwen.com/i5999951/356d473b2b352592.png)
写在最后的话
Jmeter还是主要以性能测试为重心,并且可以进行http协议的接口测试为主
虽然也支持其他协议,但是对于webservice协议的接口测试,推荐使用SoapUI
网友评论