Jmeter学习随笔文件下载接口

Posted benben-zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter学习随笔文件下载接口相关的知识,希望对你有一定的参考价值。

本次测试的是文件下载接口,文件是PDF文档,步骤如下:

1、通过jmeter的录制功能,获取了文件下载接口的地址和参数,和其他的HTTP请求一样的配置:

技术分享图片

2、执行此接口后,察看结果树,点击下载接口的结果,可以看到响应结果像是乱码,其实这些都是这个文档的内容,并且由于文档较大,察看响应数据时jmeter会短暂卡死

---优化:由于jmeter返回的是字节流,当数据量太大时,会发现jmeter完全卡住,为了防止这种情况发生,可以在查看结果树勾选仅日志错误,让其不显示,提高性能

技术分享图片

3、如果下载接口是通的,可以通过把下载接口的响应数据"保存到文件"这种方式来查看文件,这样查询结果时直接到本地查看文件就行

添加方法:线程组右键添加 -> 监听器 -> 保存响应到文件(或者是Sampler直接添加也行)

配置字段:

  1)Save Failed Responses only:只保存失败的响应;

  2)Save Successful Responses only:只保存成功的响应;

  3)Don‘t add number to prefix:不添加数字到文件名前缀;

  4)Don‘t add suffix:不添加文件后缀,即扩展名(注意:默认情况下,jmeter会根据服务器返回的结果自动生成适合类型的文件。)

  5)Add timestamp:添加时间戳到文件前缀 ;

  6)Minimum Length of sequence number:添加 数字时的最小值,不填默认从1开始。

注意:在不勾选任何1)和2)时,会将响应成功和响应失败的都保存到文件中。添加在测试计划下时,该监听器默认的会为所有的sampler分别建立一个单独的文件来保存响应结果,如果只想保存某个请求的返回结果时,只要把监听器拖动到某个请求的作用域下,就只会保存这个请求的响应。

技术分享图片

技术分享图片

技术分享图片

优化:加上时间戳,历史文件就不会被覆盖掉

技术分享图片

4、下载的文件,可以通过添加 后置处理器 BeanShell PostProcessor 保存到本地

代码(换一个文件地址和名称就行):

import java.io.*; byte[] result = prev.getResponseData();  //这个是获取到请求返回的数据,prev是获取上个请求的返回 String file_name = "D:/Program Files/apache-jmeter-3.3/bin/result/下载文件/180607144641.pdf";  //代表存放文件的位置和文件名 File file = new File(file_name); FileOutputStream out = new FileOutputStream(file); out.write(result); out.close();

技术分享图片

技术分享图片

5、如果要判断文件是否下载完整,可以通过添加断言来判断

技术分享图片

 

技术分享图片

技术分享图片

 

以上是关于Jmeter学习随笔文件下载接口的主要内容,如果未能解决你的问题,请参考以下文章

jmeter随笔--post接口参数化问题

jenkins+ant+jmeter接口自动化的持续集成

jmeter压测学习49 - 测试文件上传接口(multipart/form-data)

性能测试学习基础篇--随笔3

JMeter-SHA256加密算法接口测试

JMeter-SHA256加密算法接口测试