Jmeter测试实践:文件下载接口
一 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
本文博客地址:https://www.cnblogs.com/zhengna/p/9592596.html
转载请注明出处,谢谢!
Jmeter测试实践:文件下载接口的更多相关文章
- 转 Jmeter测试实践:文件下载接口
Jmeter测试实践:文件下载接口 一 Jmeter步骤 1.打开jmeter4.0,新建测试计划,添加线程组.根据实际情况配置线程属性. 2.添加HTTP请求.根据接口文档进行配置. Basic ...
- 转 Jmeter测试实践:文件上传接口
Jmeter测试实践:文件上传接口 1.打开jmeter4.0,新建测试计划,添加线程组.根据实际情况配置线程属性. 2.添加HTTP请求. Basic部分修改如下: Advanced部分我做任何 ...
- 测试必备:jmeter测试http协议接口的各种传参方式
测试接口,postman和jmeter是用得最频繁的工具,特别是jmeter,支持很多种协议,且除了测功能,还能做自动化测试和性能测试.下面主要介绍jmeter测试http协议接口的用法,包含get, ...
- Jmeter测试实践:文件上传接口
1.打开jmeter4.0,新建测试计划,添加线程组.根据实际情况配置线程属性. 2.添加HTTP请求. Basic部分修改如下: Advanced部分我做任何修改,完全保持默认.但是有人说Imple ...
- 使用jMeter测试Solr服务接口
之前一直用ab做简单的服务接口测试,ab功能强悍,使用简单,但是没有生成专题图和表格等功能,因此,我们决定使用jmeter来作为我们测试工具.接下来,我们将详细介绍jmeter使用的步骤,主要包括:j ...
- 采用jmeter测试dubbo服务接口
http://www.kissyu.org/2017/02/08/jmeter%E6%B5%8B%E8%AF%95dubbo%E6%8E%A5%E5%8F%A3/
- Jmeter使用实践-接口diff测试
Jmeter使用实践-接口diff测试 大多数人都使用 Jmeter 做过性能测试,但是在使用的过程中你会发现,它不仅可以做性能测试和功能测试,还能够满足基本的接口测试需求. 相比其他工具,Jmete ...
- 使用Jmeter测试Dubbo接口(参数设置篇)
WebSocket接口需要下载dubbo插件才能使用 本次下载的版本为jmeter-plugins-dubbo-1.3.6,下载完成后jar文件放到\lib\ext目录下 由于工作需要,最近需要对du ...
- Jmeter测试接口
文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接 ...
随机推荐
- Tomcat -- 启动错误 -- 解决锦集
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter :在Tomacat7的context.xml文 ...
- Mac 环境 Vue 开发 CPU 占用率高 问题
Mac开发Vue应用时,发现CPU风扇转的老高. htop查看一下: 问题找到了,就是这个dev-server.js,node起的进程. 然后就是 dtruss -p 1230(进程ID) 命名跟踪一 ...
- ios开发之--给WebView加载进度条
不是新东西,就是在项目里面用到H5页面的时候,中间加载延迟的时候,在最上面加载一个进度条,代码如下: // 获取屏幕 宽度.高度 bounds就是屏幕的全部区域 #define KDeviceWidt ...
- 系统信号(signal)与其他(定时器,退出清理等)
信号signal,可以用作进程线程通信,也可以用作接收中断后退出,退出时,清理资源,记录日志.python相关包为signa. linux信号表 root@server:~# kill -l ) SI ...
- Hadoop初期学习和集群搭建
留给我学习hadoop的时间不多了,要提高效率,用上以前学的东西.hadoop要注重实战,把概念和原理弄清楚,之前看过一些spark,感觉都是一些小细节,对于理解hadoop没什么帮助.多看看资料,把 ...
- day_5.27python网络编程
开始进行python网络编程2018-5-27 20:27:30 Tcp/Ip协议
- python 解释器
原文 Python 能让程序紧凑, 可读性增强. 用 Python 写的程序通常比同样的 C, C++ 或 Java 程序要短得多, 这是因为以下几个原因: 高级数据结构使你可以在单独的语句中也能表述 ...
- ABP之事件总线(4)
在上一篇的随笔中,我们已经初步完成了EventBus,但是EventBus中还有诸多的问题存在,那么到底有什么问题呢,接下来我们需要看一看ABP中的源码是如何定义EventBus的. 1.第一个点 在 ...
- 洛谷P1219 八皇后【dfs】
题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...
- Kindle2018 一周使用报告
使用2018年年末刚刚发布的KPW有一周时间了,可以借这个机会来对这部设备做一个使用报告了. 那咱们就参考如下描述吧: 1.轻薄便携:6英寸的屏幕,11.6厘米*16.7厘米的机身尺寸,加上仅有8.2 ...