前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下。本文
从多个方面对接口测试的三款常用工具进行比较分析,以便于在特定的情况下选择最合适的工具,或者使用自己编写的工具。
(不同工具定位不同,我们只是主要从接口功能测试的角度进行分析)。
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:
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】
2. 支持的接口类型与测试类型
从功能上Jmeter最为强大,可以测试各种类型的接口,不支持的也可以通过网上或自己编写的插件进行扩展。SoapUI专门针对HTTP类型的两种接口,其初衷更是专门测试Soap类型接口,对于其他协议的接口不支持。Postman更是
轻量级,定位也不同
,可用来测试Rest接口。
工具
|
接口类型
|
测试类型
|
SoapUI
|
Soap、Rest
|
功能、压力、安全
|
Jmeter
|
Rest、Soap等
可扩展WebSocket、socket
|
功能、压力
|
Postman
|
Rest
|
功能
|
3. 配置不同接口类型
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. 流程控制
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. 断言
9. 脚本扩展能力
-
SoapUI:Groovy脚本
-
Jmeter:Bean shell(Java)
-
Postman:JavaScript
10. 团队协作
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。