前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >soapUI使用教程[通俗易懂]

soapUI使用教程[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-02 14:03:18
3.4K0
发布2022-07-02 14:03:18
举报

大家好,又见面了,我是你们的朋友全栈君。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工具的基本功能,更高级的功能有待继续学习。有错漏之处,欢迎指正。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档