SoapUI模拟soap接口返回不同响应(通过groovy脚本)
2024-10-18 08:02:46
一、创建soap项目,输入wsdl文件,然后生成SOAP Mock Service,再生成测试用例,然后新建新的响应
WSDL文件:MathUtil.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://sean.com"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://sean.com"
xmlns:intf="http://sean.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://sean.com"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="add">
<complexType>
<sequence>
<element name="x" type="xsd:int"/>
<element name="y" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="addResponse">
<complexType>
<sequence>
<element name="addReturn" type="xsd:int"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="addResponse">
<wsdl:part element="impl:addResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="addRequest">
<wsdl:part element="impl:add" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="MathUtil">
<wsdl:operation name="add">
<wsdl:input message="impl:addRequest" name="addRequest">
</wsdl:input>
<wsdl:output message="impl:addResponse" name="addResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="MathUtilSoapBinding" type="impl:MathUtil">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="addRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="addResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MathUtilService">
<wsdl:port binding="impl:MathUtilSoapBinding" name="MathUtil">
<wsdlsoap:address
location="http://localhost:8080/webservice_create/services/MathUtil"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
MathUtil
最后双击add打开页面写入脚本
脚本如下
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( mockRequest.requestContent ) def x=holder.getNodeValue("//sean:x")
def y=holder.getNodeValue("//sean:y") if (x=='' && y=='') //注意需要加单引号‘’
return"Response 1"
else
return"Response 2"
response 1对应如下响应
response 2对应如下响应
验证一下,参数为x=1,y=2,可以看出返回的是response1
参数为x=2,y=2,可以看出返回的是response2
最新文章
- php截取utf-8中文字符串乱码的解决方法
- java小白来报道
- android 进程间通信数据(一)------parcel的起源
- 帝国cms搜索表单用法
- 41.Android之图片放大缩小学习
- Google工程师打造Remix OS系统 桌面版安卓下载
- WCF 在VS中,添加服务引用,地址输入http://ip/Service.svc,点击前往,提示错误,内容如下:
- HDU 5639 Deletion 二分+网络流
- Jquery 操作xml 文档的方法
- ubuntu常用文件搜索命令 分类: linux 学习笔记 ubuntu 2015-07-05 15:40 84人阅读 评论(0) 收藏
- App 启动加载广告页面思路
- mount, findmnt,df命令
- 单元测试(UT)、功能测试(FT)(转)
- IOS开发:UIAlertView使用
- C 连接mysql VC的步骤
- 定时器和函数的使用初级------移动一个div元素
- DMA内存申请--dma_alloc_coherent 及 寄存器与内存【转】
- Extjs的grid的单元格中加载超链接和按钮
- tensorflow模型在实际上线进行预测的时候,使用CPU工作
- shiro学习(二)身份验证
热门文章
- 在PostgreSQL自定义一个“优雅”的type
- python 实用案例 supervisord管理进程详解
- python 小白(无编程基础,无计算机基础)的开发之路 day2
- 张高兴的 Xamarin.Forms 开发笔记:TapGestureRecognizer 的简单介绍与应用
- SpringCloud接入EDAS——服务发现篇
- 【深度学习系列】用PaddlePaddle和Tensorflow进行图像分类
- 一位有着工匠精神的博主写的关于IEnumerable接口的详细解析
- Foundation框架的小总结
- Entity Framework——建模建库
- css一些简单的例子