【JMeter】将结果树中的数据保存至本地

本文介绍了如何使用JMeter将结果树中的数据保存至本地,包括XML格式的选择,以及各种参数的含义,如Elapsed Time、Response Code、Response Headers等。详细解释了Configure选项中各项参数的作用,帮助理解JMeter结果文件的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 如何保存结果

首先添加查看结果树,然后再上方填写要保存的文件所在路径。
在这里插入图片描述
这个文件最好是不要存在啦,如果你懒得删除这个文件然后又点击了运行,你可以点击 overwrite 重写这个文件,也可以点击Append来将之后的结果附加到这个文件中。
在这里插入图片描述
然后最主要的来啦,点击右侧的 Configure ,像我这样选择以下这两项之后点击 Done :
在这里插入图片描述
然后在点击运行,完成后查看刚刚那个文件,就是这个样子的了:
在这里插入图片描述
是不是很简单明了啊,下面来介绍 Configure 中参数的含义

2. 参数介绍

◆ As XML:保存为xml格式

◆ Elapsed Time: 请求的消耗时间,从请求发送到接收完毕全程耗时。(经常用)

◆ Response message:默认值:ok

◆ Success:成功标识,true/false

◆ Sent Byte Count:发送数据量的总和

◆ Response Filename:

responseFile class,响应数据文件的类。值是java lang string

◆ Encoding:编码格式

◆ Idle Time:空闲时间,闲置时间。

◆ Response Headers:响应头

◆ Assertion Result:断言的结果

◆ Field Names(CSV):字段名,只在csv文件中有效

◆ Label:线程组名称

◆ Thread Name:线程数名称

◆ Assertion Failure Message:断言失败的信息

◆ Active Thread Counts:执行线程的总数

◆ Latency:延迟时间,表示请求发送到刚开始接受响应时间

◆ Sample and Error Counts:请求成功和失败的总数

◆ Request header:请求头

◆ Response Data:响应信息

◆ Time Stamp:时间戳

◆ Response Code:服务器响应码,200表示成功

◆ Data Type:数据类型

◆ Received Byte Count:接收数据量的总和

◆ URL:链接信息

◆ Connect Time:请求建立连接的时间

◆ Hostname:保存主机名

◆ Sampler Data:请求信息,会打印请求方法(get/post)和cookie

◆ Sub Results:子结果

其他JMeter的使用教程在我的另一篇博客中做了整合,传送门:
https://blog.youkuaiyun.com/qq_34659777/article/details/85765309

最后总结一下:
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:593462778,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:暗潮汹涌
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

<think>好的,我现在需要解决用户的问题:如何在JMeter中将接口返回的二进制响应自动保存本地目录。用户提到了配置方法,可能涉及到JMeter的监听器或后置处理器。 首先,回忆一下JMeter保存响应的一般方法。通常,使用“查看结果”监听器可以手动保存响应,但用户需要自动保存,所以可能需要配置监听器或使用某种后置处理元件。记得之前了解过“Save Responses to a file”监听器,可能这就是关键。 接下来,确认具体步骤。可能需要添加该监听器,并设置保存路径和文件名。同时,文件名可能需要参数化,比如使用时间戳或变量来避免重复。例如,使用${__time()}函数生成唯一文件名。 然后,考虑是否需要处理二进制数据,比如图片或文件下载。这时候,监听器的配置可能需要指定处理二进制内容,确保不进行编码转换。可能需要勾选“Save as MD5 hash?”选项的相反,即不进行哈希处理,直接保存原始内容。 另外,用户可能希望动态指定保存路径,这时可以使用JMeter属性或变量,结合路径参数化。例如,在监听器的文件名部分使用变量,如${filePath},然后在测试计划中通过属性传递该变量,或者使用CSV数据文件来设置路径。 还要检查是否需要正则表达式提取器或后置处理器来获取文件名。比如,如果响应头里有文件名,可以用正则提取,然后保存到变量中,再在监听器里引用这个变量作为文件名。 最后,可能需要验证配置是否正确,通过运行测试并检查目标目录是否有文件生成。同时,注意监听器的位置,是否在合适的线程组下,避免影响其他请求。 另外,用户提供的引用中有提到JMeter属性和命令行参数,可能用户希望动态调整保存路径或文件名,可以通过-J参数传递属性,例如-JfilePath=/path/to/save,然后在脚本中使用${__P(filePath)}来获取。不过用户当前的问题可能不需要动态调整,但可以作为优化点提到。 总结步骤:添加监听器,配置路径和文件名,处理二进制数据,参数化文件名,验证配置。同时,可能需要引用相关JMeter文档或用户提供的引用中的配置方法,比如引用[1]提到的结果文件配置,但这里是二进制响应,可能需要不同的设置。</think>在JMeter保存二进制响应到本地目录的配置方法如下: ### 一、使用监听器配置保存 1. **添加监听器** - 右键点击目标HTTP请求 -> 添加 -> 监听器 -> Save Responses to a file 2. **配置保存路径** ```properties 文件名前缀:/your/path/test_${__time(yyyyMMddHHmmss)}.bin ``` - 路径示例:`D:/downloads/${__UUID()}.jpg`(动态生成唯一文件名) - 使用变量动态命名:`${变量名}.bin`[^1] 3. **关键参数说明** - 勾选"Don't add number to prefix"(避免自动编号覆盖文件) - 勾选"Don't add suffix"(禁用默认后缀) - 取消勾选"Save as MD5 hash?"(否则会生成哈希值文件) ### 二、二进制数据处理 1. **HTTP请求配置** ```properties HTTP请求 -> 高级设置 -> 实现选择 HttpClient4 Content encoding: 留空(避免编码转换破坏二进制数据) ``` 2. **添加后置处理器** - 使用正则表达式提取器获取响应头中的文件名: ```properties 引用名称:fileName 正则表达式:Content-Disposition:.*filename=(.*) 模板:$1$ ``` ### 三、动态路径配置 1. **通过属性传递路径** ```shell jmeter -JsavePath=/custom/path -n -t test.jmx ``` 在监听器中引用: ```properties 文件名前缀:${__P(savePath)}/response.bin ``` 2. **使用BeanShell脚本** ```java // 在BeanShell PostProcessor中写入文件 byte[] response = prev.getResponseData(); String path = "D:/downloads/" + System.currentTimeMillis() + ".bin"; FileOutputStream out = new FileOutputStream(path); out.write(response); out.close(); ``` ### 四、验证配置 1. 运行后检查目标目录是否生成文件 2. 用hex编辑器验证二进制完整性 3. 在监听器中勾选"Successes only"避免保存失败响应
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值