soapUI使用教程[通俗易懂]

soapUI使用教程[通俗易懂]SoapUI使用1.什么是soapUI由于Web服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,soapUI是针对这种情况开发的一个工具,用户可以在soapUI中通过简单的操作完成复杂的测试。目前我们系统中电子渠道接口、充值卡接口都是用WebService实现的,因此需要用到SoapUI进行测试。SoapUI不仅可以简单地执行测试,而且可以自动运行已经准备

大家好,又见面了,我是你们的朋友全栈君。SoapUI使用

1. 什么是soapUI

由于 Web 服务是被程序调用的, 一般不会提供界面让最终用户或测试人员直接使用,soapUI是针对这种情况开发的一个工具,用户可以在 soapUI 中通过简单的操作完成复杂的测试。

目前我们系统中电子渠道接口、充值卡接口都是用WebService实现的,因此需要用到SoapUI进行测试。SoapUI不仅可以简单地执行测试,而且可以自动运行已经准备好的测试用例,另外它也有性能测试的功能,虽然不及Loadrunner强大,但相对比较简单易用。下文中主要介绍它的基本功能,不包括性能测试的部分。

2. 怎样用soapUI测试Webservice 接口

安装过程比较简单,大家从ftp://180.200.3.233/SoapUI/ 上下载安装程序安装就可以了。

先从创建项目开始,菜单——文件——创建项目:

 

说明:

Create sample requests for all operations?:为每个接口创建一个请求的例子

Creates a TestSuite for the imported WSDL or WADL:为WSDL 或WADL 创建一个测试包

Create a Web Service Simulation of the imported WSDL:为WSDL创建一个模拟的服务端

Initial WSDL/WADL:指定一个WSDL/WADL的路径,可以是本地或网络URL。这里我们填写232 的充值卡接口路径:

http://180.200.3.232:8080/interf/services/ServiceForRMP?wsdl

然后点击 [OK] 到下一步生成初始的测试用例:

 

说明:

One TestCase for each Operation:每个接口创建一个用例 

Single TestCase with one Request for each Operation:创建一个用例包含每个接口对应的请求

Use existing Requests in Interface:使用已有的请求

Create new empty requests:创建一个空的请求

Generates a default LoadTest for each created TeseCase:每个用例生成一个负责测试

确定后进入下一步,生成MockService。

 

Path 是生成的本地服务路径,Port是端口。

Starts the MockService immediately 选项可选可不选。

完成之后会在左边的树形结构中生成3部分:

 

2.1. ServiceForRMPSoapBinding

创建项目的时候我们选择了Create sample requests for all operations,所以每个接口都会自动创建一个请求,双击它就可以打开编辑面板,左边是请求内容,右边是响应内容。

把每个节点的“?”替换成需要的内容,点击绿色的箭头发送就可以了。右边的内容就是服务器返回的结果,同时可以看到系统后台有相同的日志显示。

 

发送后返回的内容:

 

2.2. ServiceForRMPSoapBinding TestSuite

TestSuite 是测试用例的集合,且里面每个测试用例包含测试步骤和负载测试。负载测试可以测试响应时间,统计测试结果。这里不讨论。

在创建时已经自动给每个接口生成了一个发送请求的测试步骤,如图,同样,初始的节点内容是“?”,要修改。

 

除了这个步骤,还可以加入其它步骤,它提供了几种用例步骤,包括:

 

简单说明一下其中几种步骤:

Test Request:发送一个soap请求

Groovy Script:用Groovy脚本定义的步骤。Groovy 是一种脚本语言,语法跟java类似。

Properties:定义变量/属性

Property Transfer:传值。可以把指定的属性的值传给另一个属性,也可以给请求中节点赋值。

Conditional Goto:跳转,符合一定条件就跳到第N步

Delay:延迟,可以调整用例执行时间,模拟人工思考时间。

Run TestCase:在用例中执行另一个用例。

下面举一个简单的例子来说明:

 

(这个用例包含9个步骤,但只看这前3个)

用例中第一步:Properties(2)。这里定义了两个变量,CAID 和SerialNo。

 

第二步:Property Transfer,把上面定义的变量值传给下一步的recharge 请求的相应节点。图中所示的是设置Property Transfer的面板。

 

上面是值的来源,选择上一步定义的变量,下面是目标,选择下一步的recharge 请求,property属性为Request。因为整段请求XML是作为一个属性保存在这个步骤的。

下面的空白框要指明传给哪个节点,这里默认用的是Xpath语言。Xpath是一种对XML格式文档操作的语言,功能很多,大家可以自行研究。

这里的“//customerId”意思是在全文中寻找这个名称的节点。

这样就可以把CAID传到充值请求中的customerId字段,设置好之后可以点击上方的绿色箭头(第一个)执行这个步骤,然后可以看到下一步的recharge请求中对应字段已经改变。

第三步:recharge。这一步是发送请求。

这里要说明是添加断言,也就是检查点。如图所示,这个步骤包含2个检查点。

 

点击下面的Assertions 或上方的 按钮可以添加断言。

soapUI定义了多种断言类型:

 

简单说明其中几种:

Not SOAP Fault:不是“失败响应”。

SOAP Response:是一个SOAP 响应。

Contains:响应内容包含的文本。

XPath Match:指定XML节点的内容。

SOAP Fault:是一个“失败响应”。

Not Contains:响应内容不包括哪些文本。

例子中用了Contains 和XPath Match。

Contains比较简单,只要指定包含的文本内容即可,介绍一下XPath Match:

 

这里上面的部分指明了要检查哪个节点,//multiRef[@id] 的意思是:在全文中寻找名称为multiRef ,并且有一个属性名称是id 的节点。这个节点是返回结果编码。下面的“0” 是这个节点的期望值。0表示充值成功。

运行用例

先设置一下运行属性。右键点击一个用例——options:

 

Abort on Error 选项,发生错误时终止运行,如果不希望这样,就取消它。

Fail TestCase on Error 选项,发生错误时把用例fail。

大家运行时可以按需要来决定。

然后可以运行用例。双击TestSuite 会弹出运行面板。

 

这里列出了TestSuite 里面的全部用例,点击绿色箭头就会顺序执行。点击下面的[TestSuite Log] 按钮可以查看执行日志,可以看到每一步骤的执行情况。如下图。

 

这样我们就可以对Webservice接口进行简单的自动化测试。

2.3. ServiceForRMPSoapBinding MockService

这部分是设置虚拟的服务端,它会在本机启动一个虚拟的服务,返回指定的响应内容。当服务端还没开发完,或者条件不允许与其他系统一起调试时,这个功能便于在开发完成前就可以把测试用例准备好。下图所示,recharge接口下面建了3个response。

 

右键单击对应的接口,新建一个response。

 

右边的内容是自动生成的,只要节点的“?”替换成实际需要的内容即可。

也可以创建一个“失败响应”,点击这个按钮 ,就会生成一个默认格式的失败响应,与实际系统返回的格式不一样,我们把已有的失败响应内容复制上去即可。

内容填写好之后,可以把响应与请求关联起来。点击 ,选择一个已有请求或新建一个,如下图。

 

然后启动MockService,运行一下请求,就会返回刚刚设置的response。但要注意,要把请求响应的服务地址改为本机的虚拟地址,如下图

 

要选择图中的灰色的那个,前面部分是本机名称。

启动MockService:右键单击ServiceForRMPSoapBinding MockService,选择restart即可,会看到  这个绿色的小图标在闪,表示正在运行。

到此介绍完soapUI工具的基本功能,更高级的功能有待继续学习。有错漏之处,欢迎指正。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/147924.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号