4) 双击模拟操作打开配置面板,会提供设置动态响应的方法
了解派遣的方法:
在配置面板中,通过选择调度方法,我们可以设置动态响应。
各种调度方式:
SCRIPT: 使用脚本,我们可以根据请求的内容设置动态响应。
下面有一个例子:
在脚本方法中,使用Groovy脚本来读取请求内容并提取特定节点的值。请参阅以下脚本示例,其中的结果响应根据输入请求值而更改的。
1 import javax.xml.xpath.* 2 import groovy.xml.StreamingMarkupBuilder 3 import groovy.lang.Binding; 4 import groovy.lang.Script; 5 def util = new com.eviware.soapui.support.GroovyUtils( context ) 6 def xml = new XmlSlurper().parseText(mockRequest.requestContent) 7 def country = xml.Body.GetCitiesByCountry.CountryName 8 def str = country.toString() 9 log.info str 10 def len = str.size() 11 log.info len 12 if(len > 1 ) 13 { 14 context.ResultResponse = "Response1" 15 log.info "r1" 16 } 17 else if(len <= 1) 18 { 19 context.ResultResponse="InvalidMockResponse 2" 20 log.info "r2" 21 } |
SEQUENCE:这是发送响应的简单方法,按照响应顺序依次查询。
QUERY_MATCH:查询可以是一个复杂的调度方法,这是种基于查询结果的方式。
在配置面板中,我们可以在左侧和右侧面板上列出一个或多个查询,可以指定查询(XPATH)和期望值。如果查询符合预期值,则将调度所选的响应。否则,将返回默认响应。
XPATH:和QUERY_MATCH相似,但没那么强大。如果XPATH匹配,则发送响应。
RANDOM:这是一种简单的调度方式,它只是以随机的方式获取响应并立即发送。
Scripting for Mock Response:
模拟响应脚本:
脚本时复杂多样的,同时脚本也提供了一种方法,这种方法能够在脚本发送给客户端时更改模拟响应的内容、标题以及附件。同时,它还允许模拟有效或者无效的HTTP响应。每个模拟响应都可以有自己的脚本,用于在响应消息中创建动态内容。
模拟响应编辑器底部的脚本检查器如下所示:
脚本示例:
1 import javax.xml.xpath.* 2 import groovy.xml.StreamingMarkupBuilder 3 import groovy.lang.Binding; 4 import groovy.lang.Script; 5 def util = new com.eviware.soapui.support.GroovyUtils( context ) 6 def xml = new XmlSlurper().parseText(mockRequest.requestContent) 7 def country = xml.Body.GetCitiesByCountry.CountryName 8 def str = country.toString() 9 log.info str 10 if(str == 'India' || str == 'INDIA') 11 { 12 context.CaptialCity = "Delhi" 13 } 14 else if(str == 'UK' || str == 'Uk') 15 { 16 context.CaptialCity = "London" 17 } |
在上面的例子中,脚本只是在当前上下文的响应中设置属性"CaptialCity"的值。我们可以使用各种方法创建属性动态内容,如查询数据库或读取外部文件等。
Mock Services是SOAPUI最强大的功能之一。模拟服务公开了一些模拟操作,反过来也可以包含任意数量的模拟响应。这些回应将提供一个有形的方式来评估Web服务实际工作,如何回应用户以及使用应用程序。SOAPUI中的动态模拟响应使其在自动化测试过程中使用非常频繁。通过一些额外的脚本工作,可以创建自动测试步骤,这将确保提高测试质量,并有效减短Web应用程序开发阶段的测试时间。