当前位置: 首页 > news >正文

接口测试工具SoapUI、Jmeter、Postman

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

报告中如果有哪些不合适的地方,欢迎指正。

用例组织方式

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

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙455787643,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

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:有团队协作的功能,需要付费。

总结:

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

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

软件测试面试文档

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

 

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • E32.【C语言】练习:指针运算习题集(下)(未完)
  • 统计学习与方法实战——K近邻算法
  • 编译u-boot报错configuration written to .config
  • 快速了解Docker容器技术
  • 米家商城主题 html 页面源码分享,可用于网页设计作业
  • IDEA快捷键总结大全
  • 建筑安全寿命你知道多少?老旧危房如何逃脱‘倒塌’宿命?
  • 在C#中使用Redis
  • 虚幻5|知识点(1)寻找查看旋转,击打敌人后朝向主角
  • MySQL笔记(大斌)
  • Python世界:文件自动化备份实践
  • 聚类算法-Kmeans聚类
  • 基础闯关4
  • CentOS7虚拟机下安装及使用Docker
  • qt5.15.2在线安装选项不见了?怎么办?
  • 4个实用的微服务测试策略
  • JavaScript函数式编程(一)
  • jquery cookie
  • leetcode386. Lexicographical Numbers
  • log4j2输出到kafka
  • springboot_database项目介绍
  • 简单实现一个textarea自适应高度
  • 今年的LC3大会没了?
  • 使用 Docker 部署 Spring Boot项目
  • 事件委托的小应用
  • 数据科学 第 3 章 11 字符串处理
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 原生Ajax
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • # Apache SeaTunnel 究竟是什么?
  • #Linux(帮助手册)
  • (12)Linux 常见的三种进程状态
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (C#)获取字符编码的类
  • (Charles)如何抓取手机http的报文
  • (C语言)共用体union的用法举例
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (八)c52学习之旅-中断实验
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (小白学Java)Java简介和基本配置
  • ****Linux下Mysql的安装和配置
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net8.0与halcon编程环境构建
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET框架设计—常被忽视的C#设计技巧
  • .Net面试题4
  • @EnableWebSecurity 注解的用途及适用场景
  • @开发者,一文搞懂什么是 C# 计时器!