您的位置:首页 > 产品设计 > UI/UE

使用soupUI5.0测试 SOAP WebService入门

2014-11-20 11:51 183 查看

soapUI 介绍

由于 Web 服务是被程序调用的, 一般不会提供界面让最终用户或测试人员直接使用,在 soapUI 等工具出现之前,测试人员不得不自己编写程序来测试它, 这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。

soapUI 的出现极大的改变了这一局面。 作为一个开源的工具,soapUI 强大的功能、易用的界面,吸引了很多用户。用户可以在 soapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节, 极大的减轻了工作量。soapUI 支持多样的测试, 例如功能测试,性能测试,回归测试等。到目前为止 soapUI 的下载量已经超过了 100 万次,成为了事实的 Web 服务测试标准和领先的 Web 服务测试工具。 它不仅仅可以测试基于 SOAP 的 Web 服务,也可以测试 REST 风格的 Web 服务

soupUI安装

就是一路Next进行安装。

功能测试

创建Project并Add WSDL

1、打开soupUI,右键点击在Navigator中的project,选择New SOAP Project(根据你所测试的webservice架构不同,你可以选择New REST Project),见图:



2、在“New SOAP Projec”对话框中填入Project Name吗,点击OK



3、现在看下Navigator,里面新增了一个project:



4、给Getting Started添加WSDL,右键点击Getting Started,选择ADD WSDL:



5、在打开的Add WSDL窗口中,填入WSDL的location:http://www.webservicex.com/currencyconvertor.asmx?WSDL,点击OK



6、现在我们可以看到WSDL被成功添加到project中了,从project中可以看到该webservice提供的操作。



你可以双击Getting Started,查看该project信息



你还可以双击Interface,查看WSDL本身的信息:



这对于检查和解析WSDL很有帮助:



建立测试用例

当创建完Project并add进来WSDL之后,我们就可以添加测试用例并展开测试了。对于测试用例来讲,是一个层次结构:

TestSuite:类似于 Junit 中的测试套件,其中可以加入多个 TestCase
TestCase:可以包含多个 TestStep
TestStep:一个 TestCase 可以包含多个 TestStep,TestStep 有多种类型,它可以是上面提到一个 REST 操作请求,也可以是一个 Groovy 的脚本,还可以试一个设置属性的操作。 TestStep 甚至支持分支跳转操作:根据特定的条件,从一个 step 可以跳转到其他 step, 而不必顺序执行。

soapUI 实际上是一个平台,它支持强大的编程能力,开发或者测试人员可以利用 groovy 脚本来访问 soapUI 中的对象,在运行时修改 REST request/response, 这就提供了极大的灵活性。

1、展开web service,在request1上点击右键,选择Add to TestCase:



2、在弹出的Create TestSuite窗口中填入TestSuite名称,例如Basic TestSuite,点击OK



3、在Create TestCase窗口中,填写TestCase名称:采用默认,点击OK



4、为这个TestCase添加一个Request,点击OK



5、经过上面几步,我们就创建了一个TestCase,这个TestCase的结构如下:



添加检查点

作为TestCase,添加上检查点才算完整:

1、双击TestStep中的Request,在打开的Request窗口中,点击“Adds an assertion to this item”



2、在弹出的Add Assertion窗口中,选择Assertion的类型,在窗口中选择Contains类型的Assertion



3、在Contains Assertion中填入,TestCase运行的预期结果



点击OK后, 可以看到Assetion是Failed,这是因为我们的测试结果中并没有contain 你填写的6.119.也可以是正则表达式,正则表达式学习网址:http://www.jdocs.com/javase/7.b12/java/util/regex/Pattern.html



这里需要说明的是,我们只添加了一个Assertion,但是是为什么有两个呢?这是因为我们添加TestStep的时候,soapUI自动添加了一个默认的Assertion,即SOAP Response。

执行测试用例

现在我们执行上面的TestCase,执行之前我们在Test Request左侧窗口填入参数,并在Contains检查点中填入6.1245。

点击Test Request窗口左上角的“Submit request to specified endpoint URL ”,我们可以按到两个检查点都是绿色的,说明该TestCase执行成功了



现在我们把检测点中设置的content改为6.1242,再次执行这个TestCase看看,发现测试失败了,因为实际的response中是6.1245,与Assertion中设置的不一致。



需要说明的是,我们测试网上提供的免费的webservice的时候,有时候webservice暂停了服务,这时我们测试是永远不会成功的,那么我们如何判断webservice服务是否可用呢? 见得办法是在浏览器中打开webservice的WSDL地址,如果能显示XML文件,则说明该webservice服务是好的。

性能测试

性能测试在 soapUI 中称为 Load Test, 针对一个 soapUI 的 TestCase, 可以建立一个或多个 LoadTest, 这些 LoadTest 会自动的把 TestCase 中的所有步骤都添加到其中, 在运行的时候,soapUI 会自动的使用多个线程来运行这些 TestStep,同时也会监控它们的运行时间, 例如最短时间,最长时间,平均时间等等。这样用户能够很直观的看到WEB 服务的响应时间,从而对性能进行调优。

1、在TestCase上点右键,选择“New LoadTest”,之后TestCase结构应该是这样的:



2、双击LoadTest1,在打开的页面上进行性能测试的一些设置,包括虚拟用户数Threads、性能测试时间Limit等



3、点击左上角的三角,运行性能测试:



4、运行结果分析



从上面的运行结果中可以看到:最后的结果是,最短响应时间684毫秒,最长时间 9712 毫秒,平均时间 1528.93 毫秒。

上面只是简单的进行了一下性能测试的流程,等以后需要了也算是有个基础。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: