今天我们聊聊JMeter测试SOAP接口
1.安装soapui工具
- 链接: https://pan.baidu.com/s/1sl4bB1z 密码: 2wha
2.需要找到测试的soap接口,本文中我用到是公用的soap接口作为例子,此url为通用的soap测试接口
3.Saopui导入wsdl文件或者url地址,操作如下:
File——>new soapUI Project——>输入Project Name——>Initial WSDL/WADL:输入url>OK
- 因为soap用到的是WSDL,所以我们要复制这个接口,放到soap的url中
4.有些用户,点击ok后出现报错的情况
- 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 可解决
5.soapui通过后,会出现下面的接口请求
- 根据自己的需求选择接口进行测试
6.我选择的是第一个接口,默认的请求如下:
- ?这个是可以修改的参数,你想看那个城市的天气,就填写那个城市
- 我填写的是“天津”,点击左上角的三角形标号后,右边会出现接口的结果。
- 我发现输入“天津”后,查询后的结果不单单是“天津”这一个城市
- 修改一下请求的参数后:
- 发现填写的“天津(54517)”没有识别,图上明显标出,参数不正确
- 我也不是很清楚为什么这样不行(如果哪位小伙伴知道原因,麻烦告知一下,谢谢)
7.换一个单独的接口进行测试http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl
8.打开jmeter,添加一个soap请求
9.soap请求接口参数配置
需要对应如下:
- JMeter中SOAP请求的URL需要输入下面中的url
- 在soapui的请求中,点击Raw,找到SOAPAction的url(标示2),拷贝到jmeter的send SOAPAction中(标志2)
- 在soapui的请求中,点击xml(标志3)全部复制到jmeter的Soap/XML-RPC Data中(标志3)
10.在jmeter中执行soap接口
至此soap接口的单个参数执行结束
作者简介
朱彬
10年测试工作经验,5年团队管理经验,擅长:功能、接口、性能、自动化、测试用例设计及常见测试工具的使用