《SoapUI使用的介绍》由会员分享,可在线阅读,更多相关《SoapUI使用的介绍(16页珍藏版)》请在金锄头文库上搜索。
1、.word可编辑.SoapUI使用介绍 1. SoapUI介绍由于 Web 服务是被程序调用的, 一般不会提供界面让最终用户或测试人员直接使用,在 SoapUI 等工具出现之前,测试人员不得不自己编写程序来测试它, 这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。SoapUI 的出现极大的改变了这一局面。作为一个开源的工具,SoapUI 强大的功能、易用的界面,吸引了很多用户。用户可以在 SoapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节, 极大的减轻了工作量。SoapUI 支持多样的测试, 例如功能测试,性能测试,回归测试
2、等。到目前为止 SoapUI 的下载量已经超过了100 万次,成为了Web 服务测试标准和领先的 Web 服务测试工具。它不仅仅可以测试基于SOAP 的Web 服务,也可以测试REST 风格的 Web服务,后者也是本文介绍的重点。SoapUI 基于Java 开发,支持多个平台,安装非常简单。读者可以到 SoapUI的官方网站下载一个安装包 ( 本文使用的是 Window 版本 3.0.1),直接安装即可。在该安装包中,包括了一个 SoapUI 所需要的 JRE1.6 版本。安装完毕以后,读者需要设置 JAVA_HOME 变量指向到相应的 JRE 目录,同时修改 PATH 变量,将 JRE1.6
3、 的 bin 目录添加进去。1.1 WSDL介绍WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义具体部署的服务访问点。相关的具体部署的服务访问点通过组合就成为抽象的Web服务。 本文将详细讲解WSDL文档的结构,并分析每个元素的作用。1.1.1 WSDL定义
4、 WSDL是一个用于精确描述Web服务的文档,WSDL文档是一个遵循WSDL XML模式的XML文档。WSDL 文档将Web服务定义为服务访问点或端口的集合。在 WSDL 中,由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息,指对交换数据的抽象描述;而端口类型,指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。 一个WSDL文档通常包含7个重要的元素,即types、import、message、portType、o
5、peration、binding、service元素。这些元素嵌套在definitions元素中,definitions是WSDL文档的根元素。文章的下一部分将会详细介绍WSDL的基本结构。1.1.2 WSDL基本结构 如第一部分最后描述的那样,一个基本的WSDL文档包含7个重要的元素。下面将分别介绍这几个元素以及他们的作用。WSDL 文档在Web服务的定义中使用下列元素:u Types - 数据类型定义的容器,它使用某种类型系统 (一般地使用XML Schema中的类型系统) 。 u Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。
6、 u Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。 u PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。 u Binding - 特定端口类型的具体协议和数据格式规范的绑定。 u Port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。 u Service- 相关服务访问点的集合。2. SoapUI 使用过程2.1 创建/导入工程u 安装并运行SoapUI之后,便可以创建一个SoapUI工程。程序第一次打开时,左侧导航面板上,自动由一
7、个空的Projects工程。u 右击左侧导航面板中的工作空间节点“Projects”,选择“New SoapUI Project”。u 页面弹出“New SoapUI Project”TAB页,填入Project Name,Initial WSDL/WADL可填入地址或直接导入WSDL文件,导入文件后,如图所示:默认选上:Create sample requests for all operations?(说明:为每个接口创建一个请求的例子)Creates a TestSuite for the imported WSDL or WADL(说明:为WSDL或WADL创建一个测试包)点击OK 按
8、钮后,页面弹出保存工程的提示,以project 名称+“- soapui-project.xml”的形式进行命名,因此上述工程在保存时页面给出默认命名为test1_file-soapui-project.xml,直接点击保存即可。u 保存成功后,页面继续弹出“Generate TestSuite”TAB页:选择:Single TestCase with one Request for each Operation(说明:为每个接口的请求都创建一个测试用例)Create new empty requests(说明:创建一个空的请求)Operations 中选择要测试的WS 接口方法,如果一个WS
9、 有多个方法,Operations 中会列出所有方法,只须选择要测试的方法即可,上图,去掉了test10、test2 等接口的测试。最后勾选上Generates a default LoadTest for each created TestCase(说明:为每个创建好的测试用例生成一个默认的负载测试)选择完毕后,点击OK 按钮, 进入测试用例命名页面,命名完毕后,确定。在测试用例编写完毕后,可使用ctrl+s 键,保存当前的工程。u 如果要导入其他人的工程,可通过选择“Import Project”,找到test-soapui-project.xml,选中后即可导入工程。2.2 创建测试用例
10、u 上面操作已经增加了test1 的Web 服务,接下来可以执行请求了。在上面增加接口的时候,已经根据WSDL 的Schema 定义为每一个操作创建了默认请求。在 RequestServiceSoapBinding 节点下展开了WS 服务中所有的方法,而我们的测试包test1_file_TestSuite 中根据“创建、导入工程”的第4 步,而仅创建了我们要测试的方法的测试用例。u 现在将以test1方法为例,来介绍用例的创建过程。按照下图所示,打下测试包下的“test TestCase”,在展开的“Test Steps”下选择“test1”,双击打开。双击“test1”后,在SoapUI 的
11、右侧会出现请求编辑器:请求编辑器分为三部分:_ 顶部的工具栏,包含一组请求相关的动作、操作_ 左边是请求区域_ 右边是响应区域SoapUI 默认生成的请求中,”?”表示需要被替换的内容。根据需要,可以替换或者删除掉这些值。本接口需要一个名为id 的入参,可在请求区域找到如下内容:?“id”即为参数名,找到上面的“?”,替换为abcd 任意字符串。u 通过按下工具栏最左边的按钮(绿色箭头)来发送本次请求,请求会在后台执行,响应内容会出现在编辑器的右边,test1方法没有任何逻辑,任意的入参都不会影响到输出结果,出参为一个以为数组,第一个值为123,第二个值为456。u 根据上述返回结果报文后,可
12、看到接口已被正确的调用,为在测试中不用人为的进行接口功能是否正确的判断,因此断言Assertions,可由程序直接对返回结果进行判断。点击下图左上角 的增加断言按钮:会弹出“Select Assertion”对话框,通过下拉框选择“Contains”的断言,确定后弹出如下对话框,在Content 中填入内容,此处是表示返回的结果报文里应该包含的字段,根据我们test1 接口的返回值,填写如下,点击“OK”,插入断言完毕,程序会在运行用例时,自动帮我们校验返回的结果报文是否包含“123”内容。 说明:“Test Steps”中可创建多个测试用例,组成一个测试用例集,在运行该test steps
13、时,会根据用例的顺序从上到下将用例进行一次测试,将上一用例的输出作为下一用例的输入再组织相应的用例,此处待进一步研究。 2.3 创建负载测试性能测试一般使用loadrunner,或者自己写的调用客户端进行测试。loadrunner 是全面的性能测试工具,对一般开发人员来说太重,并且需要license。自己写调用的客户端则测试的统计数据也需要写程序处理,比较麻烦。这里推荐使用SoapUI,SOAPUI 可以直接根据WSDL 生成SOAP 数据包,手工填入参数后可以直接进行性能测试。u 在创建完测试用例后,本工程的负载脚本也由在最初创建好工程时,已经默认创建完毕,在此可直接打开使用,如下,可直接点
14、开Load Tests节点,节点下包含名称为“LoadTest1”的负载脚本,双击打开。u 双击打开后,页面如下显示,设置过程参考如下,场景为100 用户并发,持续运行10 分钟,没有思考时间。相应的SoapUI 可设置Threads=100,Test Delay=0,Limit=600,后面的下拉框选择Seconds,表示600 秒。设置完毕后,点击左上方的绿色箭头,程序开始进行负载测试。u 负载测试过程中,右上方会有进度条显示测试的进度情况,SoapUI 提供了2 个图表和一个简要列表的形式列出了测试过程中相关数据的监控,如下图,简要列表形式提供的数据:u 点击上方红色方框框住的按钮,会弹
15、出下方的监控图表,图中只有曲线,没有任何数据说明,只能看到变化的情况,由于无相应的刻度,而无法直观地看出数据大小:SoapUI 还提供了另一个图表,此图表与上与图表类似,不过仅能显示线程数与另一统计内容的曲线变化情况,另一统计内容可通过下图红色方框里的“select statistic”进行选择,如下:2.4 增加webservice认证u 如果是HTTP basic authentication验证,需要如下设置:File-preferences-http settings中的 Authenticate preemptively选中,然后在下图中输入用户名、密码:如果是ws-security中的usernametoken方式,则需做如下设置:双击项目名称,出现如下图:选择Security Configurations 选项卡,然后选择outgoing ws-security configurations如下图:点击第一个“+”添加ws-security configuration点击