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

本报告从多个方面对接口测试的三款常用工具进行比较分析,以便于在特定的情况下选择最合适的工具,或者使用自己编写的工具。(不同工具定位不同,我们只是主要从接口功能测试的角度进行分析)。
报告中如果有哪些不合适的地方,欢迎指正。

用例组织方式

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

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:

图片

支持的接口类型与测试类型

从功能上Jmeter最为强大,可以测试各种类型的接口,不支持的也可以通过网上或自己编写的插件进行扩展。

SoapUI专门针对HTTP类型的两种接口,其初衷更是专门测试Soap类型接口,对于其他协议的接口不支持。

Postman更是轻量级,定位也不同,可用来测试Rest接口。

图片

配置不同接口类型

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

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

Postman:仅支持Rest接口。

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

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

图片

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

在这里插入图片描述

流程控制

SoapUI:由Conditioinal Goto控制流程,以及Groovy脚本

Jmeter:由Switch控制器、If控制器、随机控制器等一系列控制器实现流程控制,以及Beanshell脚本

Postman:通过JavaScript脚本控制

结果解析、展示

在这里插入图片描述

断言

SoapUI:每个Request可添加Assertion

Jmeter:TestPlan、Threads Group、Sampler均可添加断言

Postman:请求的Tests中可添加断言

脚本扩展能力

SoapUI:Groovy脚本

Jmeter:Bean shell(Java)

Postman:JavaScript

团队协作

SoapUI:本身一个project是一个xml文件,但是可以通过配置变成一系列文件夹,每个Case、每个Suite均是独立的文件,这样可通过svn/git进行团队协作。支持性较好。

Jmeter:一个TestPlan也是一个jmx(xml)文件,无法分割,但Jmeter有一个合并的功能,允许将多个文件合并在一起。只能每个团队成员自己建立一个TestPlan,分功能块进行测试。最后整理合并。

Postman:有团队协作的功能,需要付费。

 感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI开发者工具的双子星:Cursor与ChatGPT Canvas的区别

01—Cursor:沉浸式的开发体验 Cursor是一款旨在为开发者提供无缝编程体验的工具。它将AI的功能深度嵌入到开发者熟悉的环境中,便于在编码过程中获得即时帮助。开发者无需离开自己的操作界面,AI就能自动为其提供代码补全、错误检查和优化建议…

Android shape 设置solid透明度

Android shape 设置solid透明度 在Android中&#xff0c;您可以通过在shape drawable的<solid>标签中指定透明度来设置透明度。透明度是通过一个8位的值来指定的&#xff0c;其中0表示完全透明&#xff0c;255表示完全不透明。 要设置透明度&#xff0c;您需要使用#AAR…

什么是单片机?

单片机&#xff08;Single-Chip Microcomputer&#xff09;是一种集成电路芯片&#xff0c;是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能&#xff08;可能还包括显示驱动电路、脉宽…

zabbix报警设置

文章目录 I 通过脚本媒介,调用钉钉电话API。配置脚本设置脚本媒介II 配置发送邮件的信息案例:配置163邮箱配置接收媒介创建动作知识扩展DING 2.0 发钉钉钉机器人自定义webhookzabbix执行远程命令I 通过脚本媒介,调用钉钉电话API。 zabbix可以通过脚本调用钉钉电话API,需要…

哪些因素会影响 FMEA 实施的效果?

在探讨哪些因素会影响FMEA&#xff08;潜在失效模式及后果分析&#xff09;实施效果的问题时&#xff0c;我们不得不深入剖析FMEA的核心理念、实施流程及其在企业质量管理中的应用实践。FMEA作为一种系统性的预防性工具&#xff0c;旨在识别产品或过程中潜在的失效模式及其影响…

WriteUp - 江苏省领航杯 CTF 2024

文章目录 一、前言二、MISC高职组1、签到2、BASE拓展 3、PG 本科组1、签到2、veee3、seeme 三、WEB高职组1、aio2、robots3、web_sql_xxe 本科组1、web_sql_xxe2、提权3、acxi拓展 四、CRYPTO高职组1、兔兔2、1zRSA 本科组1、兔兔2、Evaluate 五、REVERSE高职组1、easyre2、16q…

云计算第四阶段 CLOUD2周目 01-03

国庆假期前&#xff0c;给小伙伴们更行完了云计算CLOUD第一周目的内容&#xff0c;现在为大家更行云计算CLOUD二周目内容&#xff0c;内容涉及K8S组件的添加与使用&#xff0c;K8S集群的搭建。最重要的主体还是资源文件的编写。 (*^▽^*) 环境准备&#xff1a; 主机清单 主机…

【Vue】Vue(八)Vue3.0 使用ref 和 reactive创建响应式数据

ref 创建&#xff1a;基本类型的响应式数据 **作用&#xff1a;**定义响应式变量。语法&#xff1a;let xxx ref(初始值)。**返回值&#xff1a;**一个RefImpl的实例对象&#xff0c;简称ref对象或ref&#xff0c;ref对象的value属性是响应式的。注意点&#xff1a; JS中操作…

前端开发笔记--html 黑马程序员1

文章目录 前端开发工具--VsCode前端开发基础语法VsCode优秀插件Chinese --中文插件Auto Rename Tag --自动重命名插件open in browserOpen in Default BrowserOpen in Other Browser Live Server -- 实时预览 前端开发工具–VsCode 轻量级与快速启动 快速加载&#xff1a;VSCo…

10个Python自动化脚本,让日常任务轻松便捷!

Python 以其简单易学的语法和强大的库支持,使得它成为实现自动化任务的理想语言.无论是个人日常工作,还是企业的流程优化,Python 都可以通过自动化脚本帮助节省时间、提升效率.以下是10个令人不可思议的 Python 自动化脚本,涵盖了从文件管理、网络爬虫到数据处理的各个领域. 1…

深度学习-24-基于keras的十大经典算法之残差网络ResNet

文章目录 1 残差网络(ResNet)1.1 ResNet简介1.2 ResNet结构2 模型应用2.1 加载数据2.2 构建模型SimpleResNet2.2.1 simple_resnet_block2.2.2 SimpleResNet2.2.3 实例化模型2.2.4 模型训练2.2.5 模型预测2.3 构建模型ResNet182.3.1 residual_block2.3.2 ResNet182.3.3 训练模型…

设计模式——门面模式 | 外观模式

哈喽&#xff0c;各位盆友们&#xff01;我是你们亲爱的学徒小z&#xff0c;今天给大家分享的文章是设计模式的——门面模式。 文章目录 定义通用类图1.通用结构2.优点3.缺点 使用场景注意事项1.一个子系统可以有多个门面2.门面不参与子系统内的业务逻辑 定义 定义&#xff1a;…

python画图|两个Y轴共享X轴

【1】引言 在前述学习中&#xff0c;对使用matplotlib模块输出图形已经非常熟练&#xff0c;但常见的画图方式并未穷尽&#xff0c;如两个Y轴共享X轴就没有探索过。 对此&#xff0c;我进行了一些学习&#xff0c;获得一些心得&#xff0c;在此和大家共享。 【2】官网教程 …

鸿蒙开发(NEXT/API 12)【使用fetchsync发送同步网络请求】远场通信服务

场景介绍 发送一个同步HTTP请求&#xff0c;也可以设置请求头和请求体等参数&#xff0c;并返回来自服务器的HTTP响应。常用于获取资源&#xff0c;支持通过拦截器来处理请求和响应。 接口说明 接口名描述Rcp_Response *HMS_Rcp_FetchSync(Rcp_Session *session, Rcp_Reques…

【Linux第一弹】- 基本指令

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;重生之我在学Linux&#xff0c;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持…

Window7上微信小程序开发工具上,小程序界面空白

目录 背景 解决方案 背景 微信小程序开发工具不断升级&#xff0c;自从1.06后不再支持Window7系统。安装1.05版本开发工具软件&#xff0c;新建小程序后&#xff0c;小程序界面空白&#xff0c;真机显示正常&#xff0c;但是对于开发者来说很不友好。 解决方案 点击“设置-&…

selenium的IDE插件进行录制和回放并导出为python/java脚本(10)

Selenium IDE&#xff1a;Selenium Suite下的开源Web自动化测试工具&#xff0c;是Firefox或者chrome的一个插件&#xff0c;具有记录和回放功能&#xff0c;无需编程即可创建测试用例&#xff0c;并且可以将用例直接导出为可用的python/java等编程语言的脚本。 我们以chrome浏…

今日最佳WAF雷池社区版,tengine问题解决办法

很多第一次使用雷池社区版的朋友会碰到tengine相关的问题 其实官方文档都有记录怎么排除&#xff0c;这里都单独把tengine的排查方法再说一下 请检查防火墙规则&#xff0c; tengine 容器状态和日志 如果站点报错如上&#xff0c;说明tengine容器可能出现问题&#xff0c;需…

Element Ui el-table列表中的tooltip内容过长超出屏幕换行显示

elementui-table组件列表中的tooltip内容过长超出屏幕换行显示内容,虽然el-table列属性中带的有show-overflow-tooltip&#xff0c;可以设置内容超出列宽度显示为…&#xff0c;且有tooltip提示全部内容&#xff0c;但是内容过多时&#xff0c;提示会超出屏幕&#xff1a; 只有…

Excel:vba实现拆分单元格成一字一单元格

我拿到的表格如下&#xff1a; 我想实现的表格效果如下&#xff1a; 要求就是&#xff1a;将A列的千字文拆分成一个单元格一个字&#xff0c;并整理成4列 我这里是将效果呈现到一个新的表里面&#xff0c;没有在原表里面(在原表里…