soapUI使用教程[通俗易懂]

2022-07-02 14:03:18 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。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

0 人点赞