SoapUI、Jmeter、Postman三種接口測試工具的比較
1. 用例組織方式
首先是用例組織方式的不同,不同的目錄結構與組織方式代表不同工具的測試思想,學習一個測試工具應該首先了解其組織方式。
SoapUI的組織方式如下圖,最上層是WorkSpace,每個窗口只可以打開一個WorkSpace(這是一個xml文件),每個Project也是一個單獨的xml文件(為了協同工作,也可以通過設置將其轉化為一堆文件集合),所以每個WorkSpace中可以打開多個Project,一個Project也可以在不同的WorkSpace中。
Project對應我們的測試項目,其中可添加WSDL、WADL資源、TestSuite以及MockService。
TestSuite對應我們的測試模塊,比如商戶中心,其中可以添加TestCase,TestCase對應我們對某個模塊的不同接口,比如訂單管理接口。而一個接口可以能需要多個Step完成,變量、數據源、請求等都是一個Step。
Jmeter的組織方式相對比較扁平,它首先沒有WorkSpace的概念,直接是TestPlan,等價於SoapUI中的Project,TestPlan下創建的Threads Group就相當於TestCase,並沒有TestSuite的層級。
TheadsGroup中的Sampler、管理器等均相當於SoapUI中的一個Step,如下圖:
Postman功能上更簡單,組織方式也更輕量級,它主要針對的就是單個的HTTP請求。Collection就相當於是Project,而Collection中可以創建不定層級的Folders,可以自己組織TestSuite。每個Request可以當做是一個TestCase或者Step:
2. 支持的接口類型與測試類型
從功能上Jmeter最為強大,可以測試各種類型的接口,不支持的也可以通過網上或自己編寫的插件進行擴展。SoapUI專門針對HTTP類型的兩種接口,其初衷更是專門測試Soap類型接口,對於其他協議的接口不支持。Postman更是輕量級,定位也不同,可用來測試Rest接口。
工具
接口類型
測試類型
SoapUI
Soap、Rest
功能、壓力、安全
Jmeter
Rest、Soap等
可擴展WebSocket、socket
功能、壓力
Postman
Rest
功能
3. 配置不同接口類型
SoapUI可以創建Soap Project或者Rest Project(但Project中添加什麽類型的Step則不受影響),可添加wsdl、wadl資源,並能在TestCase裏添加Rest或Soap的Step。
Jmeter可以在線程組裏添加HTTP、TCP或WebSocket的Sampler。
Postman僅支持Rest接口。
4. 自定義變量以及變量的作用域
除以下表格中所列的變量之外,每個工具都有系統變量,未列在內。
工具
變量類型
作用域
SoapUI
Project、TestSuite、TestCase的Properties以及Custom Properties
各自以內的範圍內
TestCase裏的Properties
在整個TestCase內
TestCase裏的Data Source、DataGen等
在整個TestCase內
Groovy腳本定義
看定義方式
Jmeter
TestPlan中用戶定義的變量
所有Threads Group
配置元件 - 用戶定義的變量
根據元件位置而定
CSV data set、random variable等
根據元件位置而定
前置、後置處理器
當前Threads Group
Postman
Environment Variable
當前環境的Collection
Global Variable
所有Collections
CSV/JSON datafile
Runner當前的Collection
5. 數據源、生成器,進行參數化
工具
數據源
生成器
循環
SoapUI
DataSource,數據可來源於文件、目錄、數據庫、Excel、Grid等
DataGen
DataSource Loop
Jmeter
CSV Data Set Config讀取csv文件
Random Variable
計數器
ForEach控制器
循環控制器
While控制器
Postman
Runner中運行時,可加載CSV/JSON文件
無(只能通過腳本)
Runner中的Iteration
6. 流程控制
SoapUI:由Conditioinal Goto控制流程,以及Groovy腳本
Jmeter:由Switch控制器、If控制器、隨機控制器等一系列控制器實現流程控制,以及Beanshell腳本
Postman:通過JavaScript腳本控制
7. 結果解析、展示
工具
結果
日誌
報告
SoapUI
Project-OverView、TestSuites
TestSuite-TestCases
TestCase-TestSteps
SoapUI全局多種log
TestSuite log
TestCase log
Request log
Project report
TestSuite report
TestCase report
(PDF/HTML/XML/CSV)
Jmeter
各種監聽器
統一的Jmeter log
監聽器可導出到文件
並可導出JTL、CSV文件、通過插件可導出HTML(Jmeter3自帶)
Postman
Send可查看Request的Response
Runner可查看運行的Result
Postman console
Chrome DevTools
Request的Response以及Runner的Result均可導出json
8. 斷言
SoapUI:每個Request可添加Assertion
Jmeter:TestPlan、Threads Group、Sampler均可添加斷言
Postman:請求的Tests中可添加斷言
9. 腳本擴展能力
SoapUI:Groovy腳本
Jmeter:Bean shell(Java)
Postman:JavaScript
10. 團隊協作
SoapUI:本身一個project是一個xml文件,但是可以通過配置變成一系列文件夾,每個Case、每個Suite均是獨立的文件,這樣可通過svn/git進行團隊協作。支持性較好。
Jmeter:一個TestPlan也是一個jmx(xml)文件,無法分割,但Jmeter有一個合並的功能,允許將多個文件合並在一起。只能每個團隊成員自己建立一個TestPlan,分功能塊進行測試。最後整理合並。
Postman:有團隊協作的功能,需要付費。
---------------------
作者:huilan_same
來源:CSDN
原文:https://blog.csdn.net/huilan_same/article/details/75413482
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
SoapUI、Jmeter、Postman三種接口測試工具的比較