本文由葡萄城技术团队于博客园原创并首发
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
最近公司要引入API测试工具,经过调查和了解,最终决定在SoapUI 和 Postman两种工具之间做一个选择,两种工具在业界都很有名,相信很多人两种工具也都曾使用过。
SoapUI
SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。SoapUI Pro是SoapUI的商业非开源版本,实现的功能较开源的SoapUI更多。
Postman
Postman是由Postdot Technologies公司打造的一款功能强大的调试HTTP接口的工具,它最早是Chrome中最受欢迎的插件之一,现已扩展到Mac,Windows和Linux客户端。
软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化。Postman分免费版和收费版本。
下面我们对这两个工具通过多种维度进行对比,相信通过这些对比维度综合得出的结果,能对也处在为测试工具选型阶段的你带来一些启发和帮助。
1.搜索指数
通过百度搜索指数可以看出,以近一月的搜索趋势来看,Postman的搜索指数明显高于SoapUI(约5倍),而且整体趋势来看,Postman的搜索趋势仍在增长,说明Postman的知名度高于SoapUI,并且未来仍有潜力。
2.用户介绍
SoapUI
Postman
从官方提供的各自产品用户来看,SoapUI 有更多的知名厂家使用。
3.界面
SoapUI:传统Windows 产品界面,使用弹窗来表示不同界面,界面表现复杂
PostMan:使用Tab 来表现界面,界面简洁易用。
4.功能
测试类型
工具 |
测试类型/接口类型 |
|
SoapUI |
API测试:Soap协议,http协议 压力测试 安全测试 |
Soap报文,XX系统 Win 部分和服务器之间的沟通协议。 http协议:http,https请求 |
PostMan |
http协议 压力测试 |
组织方式:SoapUI的组织方式更复杂,也更灵活。
SoapUI:
Postman:
5.接口自动化
SoapUI: SoapUI+UnitTest 实现接口自动化测试 ,也可以和jenkins 集成。
Postman: Postman + Newman + Jenkins 实现接口自动化测试
都支持接口自动化,SoapUI对编码要求更高一些。
6.脚本扩展能力
SoapUI:Groovy脚本,JavaScript(经过测试发现支持的不好,尝试提取前一次请求返回内容时会失败)
Postman:JavaScript
7.自定义变量及变量作用域
工具 |
变量类型 |
作用域 |
SoapUI |
Project、TestSuite、TestCase的Properties以及Custom Properties |
各自以内的范围内 |
TestCase里的Properties |
在整个TestCase内 |
|
TestCase里的Data Source、DataGen等 |
在整个TestCase内 |
|
Groovy脚本定义,JavaScript |
看定义方式 |
|
Postman |
Environment Variable |
当前环境的Collection |
Global Variable |
所有Collections |
|
CSV/JSON datafile |
Runner当前的Collection |
8.数据源,生成器,进行参数化
工具 |
数据源 |
生成器 |
循环 |
SoapUI |
Pro 版本:DataSource,数据可来源于文件、目录、数据库、Excel、Grid等 |
Pro版本:DataGen |
Pro版本DataSource Loop |
Postman |
Runner中运行时,可加载CSV/JSON文件 |
无(只能通过脚本) |
Runner中的Iteration |
9.结果解析,展示
工具 |
结果 |
日志 |
报告 |
SoapUI |
Project-OverView、TestSuites TestSuite-TestCases TestCase-TestSteps |
SoapUI全局多种log TestSuite log TestCase log Request log |
Project report TestSuite report TestCase report (HTML/XML/CSV) |
Postman |
Send可查看Request的Response Runner可查看运行的Result |
Postman console Chrome DevTools
|
Request的Response以及Runner的Result均可导出json 可以自定义Report |
10.Cookie 管理
SoapUI: 需要通过Groovy 脚本来管理。
Postman: 工具自动管理
11.跟随重定向(Follow Redirects)
SoapUI: 支持在每个API请求上设置。
Postman: 系统Setting中统一设置。
12.环境管理
SoapUI: 不支持。
Postman:支持,可以方便在不同环境进行切换测试。
13.团队协作
SoapUI:本身一个project是一个xml文件,但是可以通过配置变成一系列文件夹,每个Case、每个Suite均是独立的文件,这样可通过svn/git进行团队协作。支持性较好
Postman:有团队协作的功能,需要付费。也可以通过Imort/Export 成文件后通过svn/git进行团队协作,一个Collection 可以到处为一个文件。
14.工具成本
工具 |
工具成本 |
SoapUI |
社区办免费,开源 高级版本收费
|
PostMan |
基本版本免费
|
15.综合评价
SoapUI 相对Postman 多了一个Soap 协议测试。根据公司内API测试的要求,如果有需求就会很有用,但我们公司是不需要这个选项的。
SoapUI 的功能复杂,界面使用多窗口方式实现,交互复杂,学习成本高,对于使用人员有较高要求。
SoapUI进行API 测试时,是通过Java 直接发送API 请求,和Fiddler等抓包工具的配合需要额外配置。
SoapUI 测返回内容对用中、日文支持不好,会出现乱码现象。
SoapUI的API测试,自动测试需要更强的编程技能。
Postman 脱胎于Chorme 的插件,只支持Http 协议的测试。
Postman 的界面采用Tab形式,类似chrome 的操作方式,界面简单,功能设计简洁,工程的组织只有Collection 和folder ,层级,概念简洁,易学,易用,对于项目组的学习成本低。
Postman 的API 测试,自动测试对于编程的要求相对低一些,可以从测试人员中挑选人员进行培训,培训后可以胜任API测试。
16.结论
综合考虑,如果只是进行Http,https 接口测试建议使用Postman 作为API测试工具,最主要的理由是,简洁易用,学习成本低。