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

news2024/12/25 12:58:02

推荐阅读:

[内部资源] 想拿年薪30W+的软件测试人员,这份资料必须领取~

Python自动化测试全栈+性能测试全栈,挑战年薪40W+

前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下。本文从多个方面对接口测试的三款常用工具进行比较分析,以便于在特定的情况下选择最合适的工具,或者使用自己编写的工具。(不同工具定位不同,我们只是主要从接口功能测试的角度进行分析)。

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接口。

工具接口类型测试类型
SoapUISoap、Rest功能、压力、安全
Jmeter

Rest、Soap等

可扩展WebSocket、socket

功能、压力
PostmanRest功能

3.  配置不同接口类型

  • SoapUI可以创建Soap Project或者Rest Project(但Project中添加什么类型的Step则不受影响),可添加wsdl、wadl资源,并能在TestCase里添加Rest或Soap的Step。

  • Jmeter可以在线程组里添加HTTP、TCP或WebSocket的Sampler。

  • Postman仅支持Rest接口。

4.  自定义变量以及变量的作用域

除以下表格中所列的变量之外,每个工具都有系统变量,未列在内。

工具变量类型作用域
SoapUIProject、TestSuite、TestCase的Properties以及Custom Properties各自以内的范围内
TestCase里的Properties在整个TestCase内
TestCase里的Data Source、DataGen等在整个TestCase内
Groovy脚本定义看定义方式
JmeterTestPlan中用户定义的变量所有Threads Group
配置元件 - 用户定义的变量根据元件位置而定
CSV data set、random variable等根据元件位置而定
前置、后置处理器当前Threads Group
PostmanEnvironment Variable当前环境的Collection
Global Variable所有Collections
CSV/JSON datafileRunner当前的Collection

5.  数据源、生成器,进行参数化

工具数据源生成器循环
SoapUIDataSource,数据可来源于文件、目录、数据库、Excel、Grid等DataGenDataSource Loop
JmeterCSV Data Set Config读取csv文件

Random Variable

计数器

ForEach控制器

循环控制器

While控制器

PostmanRunner中运行时,可加载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:有团队协作的功能,需要付费。


资源分享【这份资料必须领取~】

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

水库信息化监测系统有哪些?水库信息化监测解决方案

一、背景分析 全国现有水库9.8万余座,小型水库占95.3%。小型水库数量最多, 主要分布山东、安徽、江西、广东、湖南、湖北、四川和云南,每个省小型水库数量超过5000座 全国中小型水库9万余座,其中4万余座存在病险,195…

图解设计模式:动动手玩转适配器模式

前言 📣 📣 📣 📢📢📢 ☀️☀️点开就是缘分认识一下,我是小冷。是一个兴趣驱动自学练习两年半的的Java工程师。 📒 一位十分喜欢将知识分享出来的Java博主⭐️⭐️⭐️,…

C++进阶 继承

作者:小萌新 专栏:C进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍C中继承的概念 继承的概念及定义 继承的概念 继承是一种面向对象编程的概念,它指的是一个类(称为子类…

Win10关闭安全中心的病毒和威胁实时保护

一、遇到问题 想必大家在下载软件时,经常会遇到这样的问题:当我们下载好一个软件安装包时,当双击进行安装时,电脑却报出“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件”。这是Win10的安全中心误以为此为问题软…

ShardingJDBC读写分离

ShardingJDBC是什么 看一看ChatGPT对他的解释: ShardingJDBC是一个数据库连接池,它为数据库的分片和读/写拆分提供支持。它允许您跨多个物理数据库和服务器分发数据,并根据设置的配置将读写操作路由到适当的数据库。 以下是它的工作原理&…

基于java+springmvc+mybatis+vue+mysql的校园拼车系统

项目介绍 本系统采用java语言开发,后端采用ssm框架,前端采用vue技术,数据库采用mysql进行数据存储。 管理员后台页面: 功能:首页、个人中心、学生管理、司机管理、订单信息管理、接单信息管理、留言信息管理 学生后…

小米(Android)刷NetHunter安装指南,无需ssh执行kali命令

一、安装NetHunter 前提:确保手机已经root,已装上magisk。如果没有root,可用尝试magisk root 后执行此文 1、下载Nethunter:Get Kali | Kali Linux 然后push 到sdcard 里, 2、打开magisk,选择刚刚下好的…

【问答篇】Java 基础篇面试题(一)

每天进步一点~ 01、问&#xff1a;空字符串的作用 package com.neuedu.nineteen;public class Test {public static void main(String[] args) {String s"";for (char i a; i < d; i) {ssi;//输出abcsis;//输出cba}System.out.println(s);} } 答&#xff1a;如…

[附源码]Node.js计算机毕业设计高校迎新管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

(五)springcloud之Nacos注册中心-2

最近因口罩事件&#xff0c;也被“阳"了。自己在宿舍&#xff0c;闲来无事。整理下Nacos的注册中心的知识点。 模块&#xff1a; 1.父工程&#xff08;管理版本&#xff09; 2.公共模块&#xff1a;Common-API 3.测试模块&#xff1a;NacosClientConfigConsumer80 版本&am…

Vue3基础语法(⼀)

文章目录02——Vue3基础语法&#xff08;⼀&#xff09;VSCode代码片段模板语法Mustachev-once指令v-textv-htmlv-prev-bind绑定class对象语法数组语法绑定style动态绑定属性绑定一个对象v-on基本使用参数传递修饰符02——Vue3基础语法&#xff08;⼀&#xff09; 上一节中的问…

股票列表接口数据API

国内股票行情股票列表接口数据API&#xff0c;包含5分钟、日线。 JSON返回示例 { "code": "000000", "message": "success", "result": [ "2017-04-10 14:55:00,15.190,15.230,15.180,15.190,3838901", &qu…

毕业设计-基于大数据的股票预测系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

数据挖掘|主成分分析|

一、主成分分析 在实际问题中&#xff0c;我们经常会遇到研究多个变量的问题&#xff0c;而且在多数情况下&#xff0c;多个变量之间常常存在一定的相关性。由于变量个数较多再加上变量之间常常存在一定的相关性&#xff0c;势必增加了分析问题的复杂性。如何从多个变量中综合为…

2022年下半年的软考成绩今天可以查询啦!!!

自2022年11月5-6日软考考试完成后&#xff0c;经过一个多月的等待&#xff0c;终于在2022年12月15日软考成绩出来啦&#xff01; 相信很多小伙伴们都怀着激动与愉悦的心情&#xff0c;迫切想查询一下自己的成绩&#xff01; 下面是弘博创新小编整理的软考成绩查询流程。 软考成…

Python+QT美颜工具源码

程序示例精选 PythonQT美颜工具源码 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《PythonQT美颜》编写代码&#xff0c;功能包括了亮度&#xff0c;磨皮&#xff0c;风格化&#xff0c;铅笔化…

软件测试人员一定要会的微信小程序测试点

微信小程序&#xff1a; 不需要下载安装即可使用的应用&#xff0c; 实现了应用“触手可及”的梦想&#xff0c;用户扫一扫或者搜一下即可打开应用。 体现了“用完即走”的理念&#xff0c;用户不用关心是否安装太多应用的问题。 应用将无处不在&#xff0c;随时可用&#…

Mysql分布式锁(一)通过jvm本地锁解决mysql并发问题及可能的失效情况

强烈建议配合之前的JVM本地锁&#xff08;一&#xff09;简单实现阅读 mysql场景 将之前的场景修改为mysql场景&#xff0c;即在数据库中保存一条数据&#xff0c;多个线程并发处理该数据。 数据库建表如下 pom.xml中新增mybatis-plus和mysql <dependency><groupId…

戴尔r730xd服务器从u盘启动设置方法(戴尔r730取消网络启动方法)

1,开机后出现提示的时候&#xff0c;按F12 2,等一会系统会自动进入BIOS选择菜单:选择system bios 回车 3,这时在选择boot setting 回车: 4,在这里选择 BIOS Boot settings 5,将网卡启动的勾选去掉&#xff0c;即默认使用C盘启动 6,退出Esc&#xff0c;会提示保存&#xff0…

C#语言实例源码系列-电脑系统挂机锁

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…