1. 程式人生 > >SoapUI、Jmeter、Postman三種接口測試工具的比較

SoapUI、Jmeter、Postman三種接口測試工具的比較

git 通過 thead runner tails json 處理 WAD 團隊

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三種接口測試工具的比較