如何测试Web服务.2
-->全文字数: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服务定义语言 |
如何测试Web服务.2的更多相关文章
- 利用python httplib模块 发送Post请求测试web服务是否正常起来!
最近在学习python,恰好老大最近让我搞个基于post请求测试web服务是否正常启用的小监控,上网查了下资料,发现强大的Python恰好能够用上,所以自己现学现卖,顺便锻炼下自己. 由于本人也刚接触 ...
- 如何测试Web服务.3
-->全文字数:2254,需要占用你几分钟的阅读时间 ,您也可以收藏后,时间充足时再阅读- ->第一节讲了<Web服务基础介绍>,第二节讲了<Web服务测试工具> ...
- 如何测试Web服务.1
一.什么是web服务 web服务在简单术语中可被定义为通过安装了特定设备或服务器到另一装置或客户端应用程序通过WWW彼此通信后的应用程序(万维网)提供的服务. Web服务通常在计算机网络的应用层上使 ...
- C#测试web服务是否可用
winform客户端经常需要调用webservice或者WCF进行数据交互,但是远程服务有可能不存在或者服务器不可用,客户端只能通过超时或者捕获到异常感知服务不可用.其实有一个COM借口可用快速的检测 ...
- 测试Web服务接口
1. http://www.iteye.com/topic/142034 2. http://www.iteye.com/topic/1123835 3.http://yongguang423.ite ...
- 12个强大的Web服务测试工具
在过去的几年中,web服务或API的普及和使用有所增加. web服务或API是程序或软件组件的集合,可以帮助应用程序进行交互或通过形成其他应用程序或服务器之间的连接执行一些进程/事务处理.基本上有两种 ...
- WCF:为 SharePoint 2010 Business Connectivity Services 构建 WCF Web 服务(第 1 部分,共 4 部分)
转:http://msdn.microsoft.com/zh-cn/library/gg318615.aspx 摘要:通过此系列文章(共四部分)了解如何在 Microsoft SharePoint F ...
- 混合使用Azure LB和ILB访问相同web服务(1)
在经典的使用场景中,我们一般使用AzureLoadBalancer来面向公网提供负载均衡服务,而使用Azure Internal Load Balancer提供内部那些不愿意将服务暴露给公网的服务,比 ...
- 在 SQL Server 的存储过程中调用 Web 服务
介绍 一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务. 在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数. ...
随机推荐
- JS 实现复制、全选文本
先上效果,由于截图,高亮蓝色成了灰色 参考这位大佬的 https://www.cnblogs.com/dreambin/p/9046999.html HTML 部分 <form name=t ...
- Spring Cloud @RefreshScope 原理是什么?
要清楚RefreshScope,先要了解Scope Scope(org.springframework.beans.factory.config.Scope)是Spring 2.0开始就有的核心的概念 ...
- js追加html元素
jquery追加html代码,添加元素 .append() //新增仲裁申请人 $("."+inputName).append("<div class=\" ...
- 【Gamma】 Phylab 发布说明
Phylab Gamma阶段发布说明 一.发布地址 网站:Phylab GitHub Release: WhatAHardChoice/Phylab Gamma版本 二.新功能 1. 控制台完全接入 ...
- shell (二) shell for循环
for循环 基本示例 for i in var1 var2 var2 do echo $i done for i in {1..100} do echo $i done 列表中复杂值,可以使用引号或者 ...
- kibana We couldn't activate monitoring
调节一下监控状态查询的时间范围,有时候,刚启动监控,数据没有生成.把”last 1 hour“改成 具体有数据的时间 用如下语句查看,监控日志在不断生成.重启kibana后正常有监控画面了. GET ...
- vim常用命令整理
#创建文件 vim test.txt vi test.txt touch test.txt #在vim中要想退出,先按[esc],再输入如下命令 [:wq]保存并退出 [:q]退出,未修改 [:q!] ...
- Delphi重庆医保支付【支持重庆东软,万达,银海医保通用】
作者QQ:(648437169) 点击下载➨Delphi重庆医保支付 东软接口文件 银海接口文件 万达接口文件 重庆市医保接口文档 [Delp ...
- Linux文件目录指令
1.pwd指令 pwd 显示当前所在的目录 2.ls指令 ls [选项] [目录或文件] 查看文件信息 ls -a 查看所有文件和目录,包括隐藏的 ls -l 以列表的方式显示 3.cd指令 cd 路 ...
- SQL系列(十三)—— 关于表的DDL
前面的文章一直都在讲述关于DML方面的SQL Statement.这篇文章来说说表方面的DDL: CREATE 创建表 ALTER 修改表 DROP 删除表 CREATE 1.语法 CREATE TA ...