使用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 毫秒。
上面只是简单的进行了一下性能测试的流程,等以后需要了也算是有个基础。
相关文章推荐
- 使用HttpClient工具类测试WebService接口(soap)
- WebService:使用 Soap 标头自定义身份验证和授权(转载)
- [导入]WebService开发(二) 如何使用Soap扩展
- Java/WebService 入门与使用
- WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响应消息
- WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响
- 使用JMeter进行性能测试(适合入门)
- WebService生成XML文档时出错。不应是类型XXXX。使用XmlInclude或SoapInclude属性静态指定非已知的类型。
- WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响应消息
- WebService性能测试回顾版-入门篇
- webService使用测试
- WebService开发(二) 如何使用Soap扩展
- WebService开发(一) 如何使用Soap头 http://www.cnblogs.com/wayne-ivan/archive/2007/06/19/788539.html
- Java/WebService 入门与使用
- WebService大讲堂之Axis2(10):使用soapmonitor模块监视soap请求与响应消息
- WebService开发(一) 如何使用Soap头
- 使用XFire开发WebService入门教程
- Webservice-使用Tomcat的SOAP的应用
- WebService性能测试回顾版-入门篇
- 使用SOAP开发WebService 服务--Axis解决方案