本文由葡萄城技術團隊於博客園原創並首發
轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
最近公司要引入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中的Iteration  |  
          
9.結果解析,展示
|   工具  |  
             結果  |  
             日志  |  
             報告  |  
          
|   SoapUI  |  
             
 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測試工具,最主要的理由是,簡潔易用,學習成本低。


