Jmeter测试实践:文件下载接口
1.最好自己搭建测试环境,如果条件不够,只能使用开发搭建的测试环境的话,一定要问清楚测试环境的软硬件配置。比如说负载机与应用服务器是否在同一个局域网(如果跨局域网的话,会经过路由器,可能会有网络瓶颈)?操作系统是Windows还是Linux?被测机器是物理机还是虚拟机?是否使用磁盘阵列等等。2.win+R运行,输入dxdiag,可查看计算机名,操作系统,系统型号,处理器,内存大小。
一 Jmeter步骤
1.打开jmeter4.0,新建测试计划,添加线程组。根据实际情况配置线程属性。
2.添加HTTP请求。根据接口文档进行配置。
Basic部分修改如下,Advanced部分保持默认。这里的参数id是文件的id,我进行了参数化,方便下载多个不同的文件。
3.添加CSV数据文件设置。
4.在HTTP请求下面添加BeanShell PostProcessor。强调一下,由于jmeter本身是不支持将文件保存到本地的,这里需要写一点java代码。
import java.io.*; byte[] result = prev.getResponseData(); String file_name = "D:/download-files/${filename}-${index}.${fextension}"; File file = new File(file_name); FileOutputStream out = new FileOutputStream(file); out.write(result); out.close();
5.添加计数器。目的是区分每次下载的文件。
6.可以在HTTP请求下面添加响应断言和断言结果。
7.添加集合点(Synchronizing Timer)。
8.添加监听器。包括查看结果树、聚合报告(可配置将数据写入一个文件test.jtl)、图形结果、每秒事务数(jp@gc - Transactions per Second)、每秒点击数(jp@gc - Hits per Second)、jp@gc - PerfMon Metrics Collector等。
二 文件下载接口测试总结
1.最好自己搭建测试环境,如果条件不够,只能使用开发搭建的测试环境的话,一定要问清楚测试环境的软硬件配置。比如说负载机与应用服务器是否在同一个局域网(如果跨局域网的话,会经过路由器,可能会有网络瓶颈)?操作系统是Windows还是Linux?被测机器是物理机还是虚拟机?是否使用磁盘阵列等等。
2.win+R运行,输入dxdiag,可查看计算机名,操作系统,系统型号,处理器,内存大小。
3.本次测试由于应用服务器不给开放端口,所以无法使用Jmeter自带的性能监控插件,只能使用Windows自带的perfmon远程监控硬件性能。
4.计数器:使每次下载文件命名不同,方便区分。
5.后置处理器:添加一段java代码,将文件下载到本地。
6.由于jmeter返回的是字节流,当数据量太大时,会发现jmeter完全卡住,为了防止这种情况发生,可以在查看结果树勾选仅日志错误,让其不显示,提高性能。
7.测试文件下载接口,jmeter返回的是字节流,怎么判断服务器有没有完全返回?response header头里面有一个content-lenth,添加断言,可判断文件是否下载完整。
8.下载的文件大小不超过10M?应该是jmeter的配置问题,具体没弄清楚原因,重新下载一个jmeter就好了。
9.报错java.lang.OutOfMemoryError: Java heap space?解决方式:jmeter报错:内存溢出
10.CSV参数配置文件中千万不要出现空行!因为
jmeter会报错:响应数据HTTP Status 500 & 后台日志Typed variable declaration : Object constructor
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
更多推荐
所有评论(0)