1、SoapUI使用说明soapUI简介 soapUI是一个测试 Web Service的工具,通过 soap/http来检查、调用、实现 Web Service的功能 /负载 /回归 性测试 等。该工具既可作为一个单独的测试软件使用,也可利用插件集成到 Eclipse,maven2.X, Netbeans 和 intellij中使用 。 SoapUI是一个自由和 开放源 码 的 跨平台 功能 测试 解决 方案。通过一个易于使用的图形界面和企业级功能,使用 SOAPUI,能快速创建和执行自动化功能,回归,合规和 负载测试 。在一个 测试环境 , SOAPUI提供完整的 测试 覆盖 , 并支持所有的
2、标准协议和技术。soapUI安装 SVN里面 有 soapUI安装包 , 包含 安装 说明名词解释 WSDL:指网络服务描述语言( Web Services Description Language),是一种使用 xml编写的文档。这种文档可描述某个 Web Service,它可以规定服务的位置,如何访问服务,以及服务提供的操作(或方法)。 Soap:指简单对象访问协议( Simple Object AccessProtocol)是一种用于访问 Web服务的协议。基于 XML和 HTTP,其通过 XML来实现消息描述,然后再通过 HTTP实现消息传输。 Rest可以通过 http形式直接调用,
3、利用 HTTP的请求方式 GET, POST,PUT等约定事务操作。soapUI应用场景 导入项目 Web Service Mocking Web Service Inspection 对 Web Service服务进行功能测试 对 Web Service服务进行负载测试导入项目 右键点击在 Navigator中的 Projects节点,选择 “ Import Project” 选项,导入已经存在的项目,此时页面会弹出 “ Select soapUI Project File” 对话框( 演示 ) 选择相关的文件,导入需要的项目文件。Web Service Mocking Web Servic
4、e Mocking是在 soapUI中伪造或模拟 Web Service服务接口功能的一个途径,当 Web Service服务接口没有启动或接口编码尚未完成等各种原因导致接口无法使用时,采用 Web Service Mocking这个功能 添加一个 MockService,右键单击接口集合的名称( 演示 ) 弹 出 “ Generate MockService” 对话框,可以 直接 使用默认设置的值。 输入 MockService的名称,点击 ”OK”按钮。 经过上面的操作, MockService已经成功生成,接下来可以选择如何去响应请求。 打开模拟的 Web Service,点击 开始运行
5、。Web Service Inspection 能够在测试开始执行时,了解到所测的 Web Service接口是如何工作的,需要什么样的入参才能调用。 视图 模式查看 WSDL的 xml报文等。对 Web Service 服务进行功能测试 在项目中,可以创建不同的测试集,测试集包含了不同的用例,一个测试用例又由一个或多个测试步骤组成 ,SoapUI会组织如下的结构: 选择相关的测试用例,双击打开,可以查看到该测试用例下面的测试步骤( 演示 ) 点击运行按钮,进行功能测试 SoapUI一个最重要的特点是:断言,断言的使用是为了验证发出的请求是否被正确的响应,校验与预期的结果是否一致。对 Web
6、Service服务进行负载测试 在创建完测试用例后, SoapUI可以快速地创建用例对应的负载测试用例。 在 SoapUI里创建负载测试只要选择一个功能测试用例,右击选择“ New loadtest” 即 可 双击点开其中一个负载用例,配置里面的配置项。 配置好之后,开始执行,执行后可以得到性能相关的数据:相应时间,每秒吞吐量( tps),错误数( error)等。基础讲解1.创建一个工程 在左边栏 Navigator区域,右键单击 Project,在弹出的菜单中选择“ New soapUI Project” 或按组合键: Ctrl-N键。( 演示 ) 页面弹出 “ New soapUI Pr
7、oject” 新建对话框,可以输入项目名 点击 “ OK” 之后,左边栏 Navigator区可以看到已经成功创建项目。 之后再添加 WSDL,每个项目都基于一个对应的 WSDL,右键点击项目名 “ Getting Started” ,在弹出的菜单中,选择 “ Add WSDL” ,页面会弹出 “ Add WSDL” 对话框。 输入 wsdl地址:http:/ 并点击“ OK” 。成功之后可在左边栏区域查看到导入的接口。 可以双击项目名来打开项目的概要信息窗口1.”Overview”标签页列出了项目所包含了有用的相关数据和度量值。2.”TestSuites”标签显示了在项目中的所有功能测试集,
8、并且可以按顺序或并行执行测试用例。( 1)工具栏 :从整体上空间测试集的执行。( 2)整体进度条 :显示整体测试集执行的进度。( 3)测试集进度条 :显示单个测试集的执行进度条。( 4)项目的覆盖率标签 :查看测试集的覆盖率。( 5)脚本:包含 Setup和 TearDown脚本用在开始执行所有的测试集之前和执行完所有的测试集之后,分别运行这两个脚本进行初始化或清理工作。( 6)在按顺序执行测试集时,会实时地显示测试中的打印日志。3.”Security Configuration”管理项目范围内,基于 SOAP的 Web Service服务的 WS-安全配置。4.”Requirements”管
9、理项目需要的资源。( 1)工具栏 :添加、删除、导入、导出 requirements。( 2) TestCases:在这里的每个 ID,在 Testcases中都可以设置与之关联的测试用例,在设置好关联关系后,可以双击测试用例,即可打开对应的测试用例。( 3) Links:可以设置链接到有用的引用或是在项目管理系统中的实际需求。( 4) Description:为测试用例添加描述。5.”JDBC Connections”管理项目范围内可以被使用在多个场景的 JDBC连 接。( 1)工具栏 :JDBC连接工具栏,包括添加、删除、配置和测试连接按钮。( 2) JDBC表格 :包括 JDBC配置信息
10、的表格。6.”Reporting”管理所有全局的和项目范围内的报告模板和参数。7.”Event”管理项目范围内用来增强测试执行的 event-handlers(事件控制)。8. 创建报告的按钮:通过点击按钮可以创建报告。9. “Project Summary”项目文件所存放的路径。10.“Interface Sumamry”WSDL文件所存放的路径。11.“Test Summary”统计和预览测试用例数据。12.“Mock Summary”统计和预测模拟服务的数据13.“Overview Inspectors”:包含描述、属性、加载、保存、报告等。Load Script:在项目加载后调用,可以
11、被使用来初始化一些会话、数据等。Save Script:在项目被保存前调用,允许执行一些自定义的清理任务,如清空密码等Report Script:生成项目报告的时候被调用。创建一个新的测试集1.通过邮件单击项目名称弹出菜单,选择 ”New TestSuite”2.右键点击 ”TestSuites”标签页中任何位置,在弹出的菜单,选择 ”New TestSuite”3.测试集还可以通过右图上的标志创建一个新的测试集。4.测试集还可以在初始创建项目,导入 WSDL或输入WSDL的 URL后,勾选 ”Create TestSuite”,系统会自动创建一个新的测试集。5.一个测试集可以包括任意数量的测
12、试用例,执行时可以按顺序执行也可以并行执行,可以通过点击测试集窗口中工具栏图标来选择。创建新的测试用例1.右键 单击项目中的测试集名称,在弹出的右键菜单中选择 ”New TestCase”2.双击打开测试集,在 ”TestCases”标签页中选择 创建测试用例或者右键点击,选择弹出菜单中的 ”New TestCase”.3.在下图中 ”TestCase”标签页中任何位置,右键点击,选择弹出菜单中的 ”New TestCase”.选择某一个测试步骤,右键单击,在弹出的右键菜单中包含 ”Run from here”选项,该选项方便在测试用例编写时,测试用例的调试。Open Editor:打开所选择
13、的测试步骤编辑窗口,双击测试步骤也能打开编辑窗口Enable or Disable:测试步骤可以被启动,也可以被禁用,允许你有选择地执行不同的测试步骤,当选择 Disable时,步骤变成灰色。Inset Step:在当前选择的步骤之前插入一个新的测试步骤Rename and Delete:快速的重命名或删除测试步骤,在一个测试用例中,测试步骤的名称要唯一。Clone Teststep:复制测试步骤Move up or down:移动测试步骤的执行顺序。测试步骤 测试步骤 属性相关属性测试步骤一般用来管理需要参数化的属性,测试步骤主要有:1.Properties;允许你定义任意数量的属性,属性可
14、以从文件中读出或写入,可以用来参数化请求、断言等。(演示)2.Property Transfer:允许你在测试步骤间传递或抽取属性值,可以从一个相应信息中抽取一个值,然后通过 DataSink测试步骤写入到一个外部文件。3.DataGen:允许你创建一个计数器、随机值等的动态的属性。 测试步骤 数据相关SoapUI Pro添加了一些测试步骤主要用来与外部数据源交互,可读可写,主要有:1.DataSource:允许你从一些外部源文件中读到属性值,外部源文件包含数据库、 EXECL文件、 directories等,之后可通过使用属性传递等将值作为请求入参或验证响应报文等。2.DataSource
15、Loop:与 DataSource成对出现,主要用在当 DataSource有多行数据时,可通过 DataSource Loop循环得到每一行的值来作为入参发起调用,在 SoapUI中这是一种基于数据驱动的测试。3.DataSink:允许你将属性值写到外部存储文件中,如数据库、EXCEL文件等,以供后续分析和处理。 测试步骤 -执行 流程测试步骤可以顺序执行,也可以分支,循环等:1.Conditional Goto:检查返回的响应的报文中指定的值,并跳转到步骤中符合条件配置的目标步骤。2.Delay:根据配置的毫秒数暂停测试步骤的执行。3.Run TestCase:转去执行指定的目标测试用例,
16、当某些测试步骤需要在一些用例运行前先被执行,可以使用这种方式进行处理。4.DataSource Loop: 正如上面所提到的,根据 DataSource所配置的行数,以每行为一次入参,循环地执行测试用例中待定的某几个步骤。 测试步骤 其他类型SoapUI还提供了其他类型的测试步骤,让你可以做任何需要做的事情。 Script TestStep测试步骤让我们可以写任意的脚本(包括Groovy和 Javascript)做几乎所有需要做的事情:1.一些无法通过默认的断言机制实现的复杂报文的校验2.复杂的分支或循环3.以数据驱动来生成测试步骤的情况,如从数据库中动态生成测试步骤4.集成外部系统来读写数据。5. 触发外部的活动或进程,如发送邮件或启动程序。6.与用户的交互(对话框等)来得到输入或控制执行。功能测试断言判断断言:对接口的响应报文验证是否正确 , SOAP UI提供多种方式断言。给测试用例添加断言,点击按钮 ,我们添加一个最简单的检查响应报文内容的断言, 名为 “ Contains” 断言, “ Contains” 断言检查整个从 服务器返回的响应报文,包括 XML都可以作为查找的内容。在弹出的“ contains Assertion”对话框中,我们添加了要查找的内容 “ 89 59 59.96S” ,选择忽略大小写。 断言成功 断言失败,会变红,且下方会有失败信息