SoapUI、Jmeter、Postman三种接口测试工具的比较分析

原文地址: http://blog.csdn.net/huilan_same/article/details/75413482git

 

1.  用例组织方式shell

首先是用例组织方式的不一样,不一样的目录结构与组织方式表明不一样工具的测试思想,学习一个测试工具应该首先了解其组织方式。数据库

SoapUI的组织方式以下图,最上层是WorkSpace,每一个窗口只能够打开一个WorkSpace(这是一个xml文件),每一个Project也是一个单独的xml文件(为了协同工做,也能够经过设置将其转化为一堆文件集合),因此每一个WorkSpace中能够打开多个Project,一个Project也能够在不一样的WorkSpace中。json

Project对应咱们的测试项目,其中可添加WSDL、WADL资源、TestSuite以及MockService。安全

TestSuite对应咱们的测试模块,好比商户中心,其中能够添加TestCase,TestCase对应咱们对某个模块的不一样接口,好比订单管理接口。而一个接口能够能须要多个Step完成,变量、数据源、请求等都是一个Step。dom

 

Jmeter的组织方式相对比较扁平,它首先没有WorkSpace的概念,直接是TestPlan,等价于SoapUI中的Project,TestPlan下建立的Threads Group就至关于TestCase,并无TestSuite的层级。socket

TheadsGroup中的Sampler、管理器等均至关于SoapUI中的一个Step,以下图:svn

 

Postman功能上更简单,组织方式也更轻量级,它主要针对的就是单个的HTTP请求。Collection就至关因而Project,而Collection中能够建立不定层级的Folders,能够本身组织TestSuite。每一个Request能够当作是一个TestCase或者Step:工具

 

 

2.  支持的接口类型与测试类型oop

从功能上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:有团队协做的功能,须要付费。

相关文章
相关标签/搜索