Jmeter书中不会教你的(96)——如何避免写入csv的数字显示科学技术法

本文介绍如何在CSV文件中正确写入包含长数字的时间戳,避免科学计数法显示,通过添加制表符实现标准格式。

如果我们对一个很长的数字不进行处理,name写入csv文件时很可能看到的是这样的

为了让它正常显示,实际写入时只需要增加一个符号即可,以当前时间戳为例

//当前时间戳,利用time函数,加双引号将其转换成字符串打印

sendtimestamp="${__time(,)}";
log.info(sendtimestamp);

//写入文件

path="writeto.csv";

fw=new FileWriter(path,true);
bw=new BufferedWriter(fw);
//按以下格式直接写入时 就会显示科学记数法 
bw.write(sendtimestamp+"\r\n");

//只需要增加/t制表符

bw.write(sendtimestamp+"/t\r\n");
bw.close();
fw.close();

看到的结果就是这样子的

在 Apache JMeter 中,将执行结果中的特定数据写入 CSV 文件的特定列中,通常可以通过结合 JMeter 的后置处理器(如 **BeanShell PostProcessor** 或 **JSR223 PostProcessor**)与 **CSV 数据写入逻辑** 来实现。以下是一种常见的实现方式: ### 配置步骤 1. **添加 JSR223 PostProcessor** 在需要提取数据的 Sampler 下添加一个 **JSR223 PostProcessor**,选择语言为 Groovy(推荐,因其性能优于 BeanShell)。 2. **提取响应数据** 使用 JMeter 的 `prev` 变量访问当前 Sampler 的响应数据。例如,提取响应文本并存储为变量: ```groovy def responseData = prev.getResponseDataAsString() def json = new groovy.json.JsonSlurper().parseText(responseData) def specificValue = json.someKey.someSubKey vars.put("specificValue", specificValue) ``` 3. **将数据写入 CSV 文件** 在 JSR223 PostProcessor 中追加以下 Groovy 脚本,将变量写入指定的 CSV 文件,并确保写入到特定列: ```groovy def csvFile = new File("/path/to/output.csv") def specificValue = vars.get("specificValue") def additionalData = vars.get("someOtherVariable") if (!csvFile.exists()) { csvFile.write("Column1,Column2,Column3\n") // 写入表头 } csvFile.append("${additionalData},${specificValue},${vars.get('anotherVar')}\n") ``` 4. **使用 CSV Data Set Config(可选)** 如果需要后续测试中读取该 CSV 文件,可以使用 **CSV Data Set Config** 元件,并指定对应的文件路径和变量名。 ### 注意事项 - 确保 JMeter 脚本运行时具有对目标 CSV 文件的写入权限。 - 若并发线程同时写入文件,建议启用 `File locking` 或使用 `synchronized` 块避免数据竞争问题。 - 若需写入更多列,只需在 `append` 方中扩展逗号分隔的字段即可。 ### 示例输出 假设响应内容为 JSON 格式: ```json { "someKey": { "someSubKey": "12345" } } ``` 执行脚本后,`output.csv` 内容可能如下: ```csv Column1,Column2,Column3 data1,12345,data3 ``` ### 相关配置建议 - 使用 **Simple Data Writer** 或 **Listener** 直接保存响应数据,供后续分析。 - 若需更复杂的格式控制,可使用 **JDBC Request** 将数据写入数据库,再导出为 CSV。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

agrapea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值