-->全文字数:2700,需要占用你几分钟的阅读时间 ,您也可以收藏后,时间充足时再阅读-
-->上一节讲了《Web服务基础介绍》,本节介绍可用于测试web服务的开源测试工具。
一. SoapUI简介
soap代表简单对象访问协议。它是一种协议,用于在计算机网络中借助Web服务或Web API以XML,JSON或纯数据等结构化数据的形式交换信息。使用诸如HTTP(超文本传输协议),SMTP(简单邮件传输协议)等协议在计算机网络的应用层上协商和传输XML格式信息。
SoapUI介绍:
SoapUI是可以在跨平台中运行的开源测试工具。
它主要用于测试Web服务和Web API。
它具有非常简单的用户界面,无论是技术用户还是非技术用户都非常容易使用。
它能够基于代表性状态转移(REST)和面向服务的体系结构(SOA)来测试应用程序。
使用SoapUI工具,测试人员可以自动执行功能测试和非功能测试,还可以执行Web API的合规性,回归,安全性和负载测试。
SoapUI支持所有标准协议,例如HTTP,HTTPS,SOAP,WSDL,REST,AMF,JDBC,JMS等,并具有用于测试各种API的内置技术。下图显示了SoapUI支持的协议:
SoapUI工具支持协议测试
二. 为什么选择SoapUI?
我将标题命名为“为什么使用SoapUI?”,以说明SoapUI作为测试领域中的工具的重要性。在具有Web服务或Web API的应用程序中,SoapUI工具对测试人员来说是一个福音,因为它的用户界面非常易于使用,因此可以轻松覆盖功能测试和非功能测试。使用SoapUI,我们可以对Web服务和Web API进行以下类型的测试:
1.功能或行为测试:
在功能测试中我们知道,我们涵盖了Web服务和Web API的功能或行为测试方面。使用SoapUI,测试人员可以利用以下功能:
拖放:这是新测试人员通过使用SoapUI的拖放功能来构建测试自动化的最佳功能。这加快了测试自动化脚本的开发。
自定义脚本:SoapUI支持高级脚本选项,具体取决于功能测试方案,该选项有助于编写用于测试自动化脚本开发的自定义脚本。这提供了在工具内编写脚本的灵活性。
无障碍环境切换:在不同的环境(例如UAT(用户接受测试),QA(质量保证),SIT(系统集成)等)之间切换和测试Web API代码很容易。
测试调试:SoapUI工具可帮助测试人员调试其测试脚本并允许编写数据驱动的测试。测试人员可能会放置各种检查点以验证其测试是否按预期执行。
健壮的工具:毫无疑问,取决于SoapUI工具的上述功能及其在编写测试自动化脚本中的健壮性。它提供了一个强大的测试工具,可以在任何软件应用程序中测试Web服务和Web API。
2.符合性测试:
使用SoapUI工具,测试人员可以验证合规性测试,并可以使用测试脚本将其自动化。一致性测试主要涉及在调用软件应用程序中的Web服务或Web API之前和之后使用许可证证书等以及各种服务级别协议进行的源及其数据身份验证。
3.回归测试:
进行回归测试以分析在使用当前版本实施新更改后,或简单来说,Web服务内引入的任何缺陷或故障,或使用它来查找新更改或修复的任何副作用。测试人员可以执行测试套件,以确保现有功能不会中断,并且使用SoapUI工具可以正确进行新更改。
4.负载测试:
进行负载测试以分析Web服务或Web API在中断之前可以保留的负载。让我们讨论SoapUI支持的功能,如下所示:
LoadUI代理:SoapUI具有许多LoadUI代理,可以在其上分配负载并可以分析各种性能参数。
易于使用:利用简单的用户界面和处理SoapUI工具的LoadUI代理,负载测试变得非常简单且易于操作。
性能监视:SoapUI具有高级报告系统,可以捕获各种性能参数以进行负载测试。此外,它还允许对端到端系统负载测试进行性能监视。
5.安全测试:
SoapUI支持这种测试,以确保授权以及Web服务和Web API的请求和响应模型中的真实身份。让我们看一下SoapUI支持的功能,如下所示:
跨站点脚本编写:它在跨站点脚本编写期间扫描并检测结构化消息中是否暴露了服务参数。
保护数据库安全:它扫描并检测任何可能损害数据库的潜在SQL注入,从而保护数据库。
堆栈溢出:SoapUI具有扫描和检测消息中可能导致堆栈溢出的大量文档的功能。
救生扫描:SoapUI能够进行多次扫描,并确保Web服务和we API的安全性。这些扫描是漏洞扫描,模糊扫描和边界扫描,以减轻Web服务的潜在不稳定行为。
通过SoapUI工具进行测试支持
三. SoapUI集成
SoapUI工具可以与许多流行的构建工具一起使用,如下所示:
Apache Ant: Apache ant使用命令行来构建项目。同样,它可以使用SoapUI命令行执行测试套件。
Hudson: Hudson是基于JAVA平台构建的集成工具。通过将SoapUI与Hudson集成,在开发团队每次提交代码时都可以尽早发现bug。
Maven: Maven是一个项目管理自动化工具,主要用于构建JAVA项目。它具有自动从*存储库进行构建,版本控制和文档的功能。使用Maven构建,我们还可以按照许多简单命令构建和执行SoapUI测试。
JUnit: JUnit是基于JAVA构建的单元测试框架,可以与SoapUI工具集成以对Web服务和Web API进行单元测试。
SoapUI集成支持
四. 比较
SoapUI与其他测试工具(Fitnesse和Selenium)的比较:
属性 | SoapUI工具 | Fitnesse工具 |
Selenium工具 |
测试类型 | SoapUI工具用于测试功能,合规性,回归,负载和安全性测试。 | Fitnesse工具用于用户验收测试。它还有助于执行功能测试以及回归。 |
Selenium用于网站测试,涵盖功能测试和回归测试。 |
用户界面测试 | SoapUI不是测试用户界面(UI)的测试工具。 | 它不用于测试Web用户界面。但是可以与Selenium工具一起进行此类测试。 | 它主要用于测试Web用户界面(UI)测试。 |
Web服务和Web API测试 | 它主要用于测试Web服务和Web API。 | 它可以与SoapUI集成,并协作测试Web API和Web服务 | 它不用于测试Web API和Web服务。 |
协议测试,例如SOAP,REST等。 | SoapUI可以用于测试在Web服务器和客户端浏览器之间传输和接收的数据,因此可以测试SOAP,REST等协议。 | Fitnesse可以验证Web服务器和浏览器之间发送和接收的数据,但不能测试SOAP,REST等协议。 | Selenium可以通过UI测试来测试Web服务器和客户端浏览器之间发送和接收的数据,但是无法测试SOAP,REST等协议。 |
非功能测试,例如性能,负载,合规性和安全性测试 | SoapUI工具支持LoadUI代理,该代理扩展了功能以执行性能和负载测试。此外,借助漏洞,模糊测试和边界扫描等多种扫描,它还有助于进行安全性和合规性测试。 | Fitnesse不支持性能,安全性和负载测试。为了进行合规性测试,可以使用它来验证客户端和服务器之间的数据。 | Selenium主要用于进行功能测试。但是,Selenium可以在某种程度上进行性能测试,因为它有助于跟踪执行时间,但不能测试多用户和多租户。Selenium根本不能用于安全性测试。 |
测试依赖 | SoapUI测试取决于HTTP,SOAP,WSDL,REST等协议。不依赖浏览器。 | Fitnesse主要用于验证发送和保存在数据库中的数据,这是一种用户接受性测试。它既不依赖协议也不依赖Web浏览器。 | Selenium测试取决于Web浏览器,而不取决于诸如SOAP,WSDL,REST等协议。 |
五.附录
使用的缩写:
缩略语 | 完整形式 | 描述 |
SOAP | Simple Object Access Protocol | 简单对象访问协议 |
HTTP | Hyper Text Transmission Protocol | 超文本传输协议 |
HTTPS | Hyper Text Transmission Protocol Secured | 安全超文本传输协议 |
WSDL | Web Service Definition Language | Web服务定义语言 |
REST | Representational State Transfer | 表述性状态传递 |
AMF | Action Message Format | 动作消息格式 |
JDBC | Java Database Connectivity | Java数据库连接 |
JMS | Java Messaging Service | Java消息服务 |
WSDL | Web service Definition Language | Web服务定义语言 |