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工具的基本功能,更高级的功能有待继续学习。有错漏之处,欢迎指正。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值