postman是一个谷歌出的轻量级的专门测试接口的小工具~(PS:postman包括两种:Chrome浏览器插件和postman客户端,我使用的是postman客户端)虽然不如firefox的poster插件“轻量”,但是比firefox的poster插件、fiddler的接口测试功能更全面,比Jmeter更轻量、便捷~
一、JMeter 介绍
Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时,JMeter可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.
JMeter与LoadRunner比较
JMeter 是一款开源(有着典型开源工具特点:界面不美观)测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细;很它的优点也有很多:
- 开源,他是一款开源的免费软件,使用它你不需要支付任何费用,
- 小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具。
- 功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,当然你也可以根据自己的需求扩展它的功能。
两者最大的区别:jmeter不支持IP欺骗,而LR支持。
JMeter缺点
使用JMeter无法验证JS程序,也无法验证页面UI,所以要须要和Selenium配合来完成Web2.0应用的测试。
我觉得我比较喜欢postman的两个功能点,一个是它的批量执行、一个是它的查看源码功能。下面与大家分享一下~
今天分享的是postman如何批量执行接口测试用例~其实很简单,但是会给我们的工作带来很多方便~比如我们写了几十个测试用例,请求都是同一个服务器IP,一旦服务器IP地址从测试环境搬到线上环境,需要修改所有的服务器IP,如果不能将测试用例保存起来,统一修改服务器IP ,并且批量执行,那将是一件很麻烦的事情!可是postman帮助我们完美地解决了这个问题~具体操作请见下文~
一.创建测试用例集、子集
如下图,
点击postman左侧Collections下面有个添加文件夹图标,就可以创建测试用例集,一个系统、模块或其他分类粒度的测试用例可以存放在该目录下
另外,该目录下还可以创建子目录,进行测试用例的细分,如下图:
二.创建测试用例
创建接口测试用例,即新建http请求,选择请求方式、写好url、请求头、请求体
三.设置变量
postman的变量和Jmeter的参数化相似,即把若干处出现多次的数值用一个变量表示,达到一次修改、多处生效的效果,便于修改和管理。
点击postman上方一个按钮,点击Globals后面的Edit按钮,添加全局变量
点击右下角Add按钮,添加Environment Name,Key值写变量名称,Value值写变量对应的数值,点击Save按钮进行保存
把Value值出现过的地方用{{key}}代替,比如以上面的截图为例,出现http://172...57:8080的位置使用“{{baseURL}}”代替
四.添加响应处理
响应处理有点类似Jmeter里的检查点,即通过检查响应数据是否符合预期来判断test是否通过。在Tests中添加检查条件,postman提供了一些常用的检查条件的代码,直接添加或稍加修改即可。如:响应数据的状态码为200,则判断测试通过,则在代码片中选择“status code:code is 200”
tests["测试Response包含星期三"]=responseBody.has("10日星期三")
tests["测试Response包含星期三"]=responseCode.code === 200;
https://www.apiopen.top/weatherApi?city=%E9%83%91%E5%B7%9E(郑州)
五.批量执行测试用例
点击测试用例集中的“run”,批量运行测试用例,弹出collection runner,点击“Start Run”,批量运行测试用例
运行后,弹出测试结果,显示测试通过和失败的个数、请求URL、请求头、请求体信息,响应头、响应体信息,状态码等,我们就可以查看测试用例的执行结果及具体信息啦~