今天我们聊聊JMeter测试SOAP接口

1.安装soapui工具

soap ui生成java客户端_wsdl接口

  • 链接: 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 ui生成java客户端_wsdl接口调用请求消息xml_02

  • 因为soap用到的是WSDL,所以我们要复制这个接口,放到soap的url中

soap ui生成java客户端_发送soap请求 返回wsdl文件内容_03

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通过后,会出现下面的接口请求

soap ui生成java客户端_soap ui生成java客户端_04

  • 根据自己的需求选择接口进行测试

6.我选择的是第一个接口,默认的请求如下:

soap ui生成java客户端_soap ui生成java客户端_05

  • ?这个是可以修改的参数,你想看那个城市的天气,就填写那个城市

soap ui生成java客户端_soap ui生成java客户端_06

  • 我填写的是“天津”,点击左上角的三角形标号后,右边会出现接口的结果。
  • 我发现输入“天津”后,查询后的结果不单单是“天津”这一个城市
  • 修改一下请求的参数后:

soap ui生成java客户端_wsdl接口调用测试工具_07

  • 发现填写的“天津(54517)”没有识别,图上明显标出,参数不正确
  • 我也不是很清楚为什么这样不行(如果哪位小伙伴知道原因,麻烦告知一下,谢谢)

7.换一个单独的接口进行测试http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

soap ui生成java客户端_wsdl接口调用请求消息xml_08

8.打开jmeter,添加一个soap请求

soap ui生成java客户端_soap ui生成java客户端_09

9.soap请求接口参数配置

soap ui生成java客户端_发送soap请求 返回wsdl文件内容_10

需要对应如下:

  • JMeter中SOAP请求的URL需要输入下面中的url

soap ui生成java客户端_soap ui生成java客户端_11

  • 在soapui的请求中,点击Raw,找到SOAPAction的url(标示2),拷贝到jmeter的send SOAPAction中(标志2)

soap ui生成java客户端_wsdl接口调用测试工具_12

  • 在soapui的请求中,点击xml(标志3)全部复制到jmeter的Soap/XML-RPC Data中(标志3)

soap ui生成java客户端_soap ui生成java客户端_13

10.在jmeter中执行soap接口

soap ui生成java客户端_wsdl接口调用请求消息xml_14

至此soap接口的单个参数执行结束


作者简介

朱彬

10年测试工作经验,5年团队管理经验,擅长:功能、接口、性能、自动化、测试用例设计及常见测试工具的使用