(轉)僅供我的學習-接口測試工具:jmeter、postman、soapUI的區別

1.  用例組織方式git

首先是用例組織方式的不一樣,不一樣的目錄結構與組織方式表明不一樣工具的測試思想,學習一個測試工具應該首先了解其組織方式。shell

SoapUI的組織方式以下圖,最上層是WorkSpace,每一個窗口只能夠打開一個WorkSpace(這是一個xml文件),每一個Project也是一個單獨的xml文件(爲了協同工做,也能夠經過設置將其轉化爲一堆文件集合),因此每一個WorkSpace中能夠打開多個Project,一個Project也能夠在不一樣的WorkSpace中。數據庫

Project對應咱們的測試項目,其中可添加WSDL、WADL資源、TestSuite以及MockService。json

TestSuite對應咱們的測試模塊,好比商戶中心,其中能夠添加TestCase,TestCase對應咱們對某個模塊的不一樣接口,好比訂單管理接口。而一個接口能夠能須要多個Step完成,變量、數據源、請求等都是一個Step。安全

 

Jmeter的組織方式相對比較扁平,它首先沒有WorkSpace的概念,直接是TestPlan,等價於SoapUI中的Project,TestPlan下建立的Threads Group就至關於TestCase,並無TestSuite的層級。dom

TheadsGroup中的Sampler、管理器等均至關於SoapUI中的一個Step,以下圖:socket

 

Postman功能上更簡單,組織方式也更輕量級,它主要針對的就是單個的HTTP請求。Collection就至關因而Project,而Collection中能夠建立不定層級的Folders,能夠本身組織TestSuite。每一個Request能夠當作是一個TestCase或者Step:svn

 

 

2.  支持的接口類型與測試類型工具

從功能上Jmeter最爲強大,能夠測試各類類型的接口,不支持的也能夠經過網上或本身編寫的插件進行擴展。SoapUI專門針對HTTP類型的兩種接口,其初衷更是專門測試Soap類型接口,對於其餘協議的接口不支持。Postman更是輕量級,定位也不一樣,可用來測試Rest接口。oop

 

工具

接口類型

測試類型

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:有團隊協做的功能,須要付費

相關文章
相關標籤/搜索