JMeter
最近在看接口测试过程中分别接触到JMeter和postman,下面就对这两种工具进行一个梳理,也是对自己学习的一个加强,避免后面遗忘,也可以和小伙伴们进行交流一下啦
JMter原本是基于Java的压力测试工具,现在很多web测试中广泛应用,JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能,对压力和并发测试,整体测试比较方便,简单易用,而且能使用正则表达式进行断言,这是在测试中对于验证是非常重要的
优点
1、JMeter可视化界面简单,条理清楚,参数框和编码格式能清晰的显示和调整,一定情况下参数、请求头正确就可以添加case进行测试
简单控制器—>添加配置文件—>HTTP信息头管理器
2、断言功能可以验证代码中是否有需要得到的值
3、使用参数化以及Jmeter提供的函数功能,可以快速完成测试数据的添加修改
4、对于不是很懂变成的人来说比较便捷,测试代码较少,多数case可以复用,编码格式不用像其他工具需要添加进脚本里面
5、相对于界面来说能是整套业务更加简单化,HTTP请求流程更直观
6、能够及时修改除response以外的任何数据,及时得到验证结果,不需要重新添加case再走一遍流程
7、Jmeter不需要要关注对象是否被识别的问题,而其他测试工具在录制过程中,很容易出现页面对象不能被录制工具识别的问题,因此适用Jmeter,省略了很多关于对象操作的麻烦,更易于使用
缺点
1、就算是jmeter脚本顺利执行,依旧无法确定程序是否正确执行,有时候需要进入程序查看,或者查看Jmeter的响应数据。
2、Jmeter的断言功能不是很强大
3、Jmeter脚本的维护需要保存为本地文件,而每个脚本文件只能保存一个测试用例,不利于脚本的维护。
Postman
postman相较于其他工具显得逼格更高一些(=。=),这是更直观、便捷和开发人员进行沟通的一个工具,还是同样比较下优缺点
优点
1、图形用户界面简单易用
2、可以保存接口请求bai的历史记录
3、使用测试集Collections可以更bai有效的管理组织接口,支持抓包,保存历史记录,多终端同步用例
缺点
1、通过url搜索用例,通过命令行传参修改环境变量,不能指定执行失败的测试用例
2、不能操作文件相关的操作,不能读写数据库,不能使用非HTTP协议
比较
Postman功能上更简单,组织方式也更轻量级,它主要针对的就是单个的HTTP请求。Collection就相当于是Project,而Collection中可以创建不定层级的Folders,可以自己组织TestSuite。每个请求可以当做是一个测试Case或者步骤,Jmeter可以在线程组里添加HTTP、TCP或WebSocket的Sampler,Postman仅支持Rest接口。
关于业务流程的控制,Jmeter是由Switch控制器、If控制器、随机控制器等一系列控制器实现流程控制,以及Beanshell脚本,而Postman是通过JavaScript脚本控制
Jmeter在TestPlan、Threads Group、Sampler均可添加断言,Postman请求的Tests中可以添加断言
从功能上Jmeter最为强大,可以测试各种类型的接口,不支持的也可以通过网上或自己编写的插件进行扩展。SoapUI专门针对HTTP类型的两种接口,其初衷更是专门测试Soap类型接口,对于其他协议的接口不支持。Postman更是轻量级,定位也不同,可用来测试Rest接口。
两者定位不同,有时在想两者在测试中都能够满足需求,为什么学了postman还要再学习JMeter呢,其实想想工具并无好坏强弱之分,定位不同,只能说是基本要求,是一种生产力工具,例如在日常测试中JMeter使用肯定是更多的,因为Postman功能简单,仅支持Rest接口,肯定满足不了测试需求,但是在平时和开发沟通api,,难道我们也去使用JMeter吗,这样更高效、便捷、快速有结果!