Jmeter(105)——读取csv文件参数时显示方块乱码

本文介绍了在JMeter中遇到CSV文件参数读取时中文出现乱码的解决方法。通过将原始CSV文件从ANSI编码格式转换为UTF-8编码,可以成功解决乱码问题。具体步骤包括使用记事本打开CSV文件,然后选择另存为并更改编码为UTF-8,最后重新执行JMeter测试计划,乱码即可消除。

在91节中讲过在结果树中显示?乱码的解决方案

Jmeter书中不会教你的(91)——dummy sampler中响应中文结果树中显示乱码?_agrapea的博客-优快云博客

在实际中还会遇到读取csv文件参数时显示方块字乱码

比如这种,content和type都是从csv文件中读取的参数,其中方块字是中文乱码

 尝试采用91中的解决方案无果,怀疑是文件格式有问题。

解决方案:

步骤1:将原csv文件用记事本打开,可以看到在这里其实没有乱码

 步骤2:将其另存为,可以看到原编码格式ANSI改成utf-8保存

 步骤3:重新执行查看结果,乱码解决

 

### JMeter 读取 CSV 文件 参数未成功加载 解决方案 #### 使用 `CSV Data Set Config` 组件配置 为了确保参数能够被正确加载,建议使用 `CSV Data Set Config` 组件来代替内置的 `__CSVRead()` 函数。该组件提供了更多的灵活性和功能选项[^2]。 - **文件路径设置** - 确认 CSV 文件路径无误,并且对于分布式测试环境而言,需将相同的 CSV 文件放置于每一台 slave 测试机器上的相同位置。 - **分隔符设定** - 默认情况下,字段间是以逗作为分隔符;如果有其他字符充当分隔作用,则应在配置项中指定相应的分隔符。 - **量名称定义** - 定义清晰易懂的量名用于映射 CSV 中各列的数据,在后续脚本编写过程中调用这些量即可获取对应值。 - **循环行为调整** - 可选地开启“Recycle on EOF?” 和 “Stop thread on EOF?” 来控制当到达文件末尾的行为方式,前者会重新回到文件开头继续读取而后者则是终止线程运行。 ```properties # 示例属性配置 filename=example.csv # 路径指向要使用的CSV文件 variableNames=id,name,value # 列表中的各个项目分别赋给不同的量 delimiter=, # 字段之间的分割符,默认为英文半角逗 recycle=true # 是否允许回绕至文件起始处再次遍历 stopThread=false # 达到EOF不中断整个线程工作流 shareMode=all # 数据集共享模式可设为all、group或thread ``` #### 处理编码问题防止乱码现象发生 针对可能出现的乱码情况,应该仔细检查并统一所有涉及环节所采用的文字编码标准: - **保存源文件指明编码格式** - 创建或编辑 CSV 文档之前,请先确认其默认编码形式(如 UTF-8),必要通过文本编辑工具手动转换成目标编码再上传至服务器端供 JMeter 访问。 - **启动命令行加入 JVM 参数** - 如果是在 Linux 或 MacOS 平台上执行 JMeter 的话,可以在启动命令后面追加 `-Dfile.encoding=UTF-8` 这样的 JVM 参数以强制规定内部处理过程遵循特定编码规则。 ```bash java -jar ApacheJMeter.jar -n -t testplan.jmx -l result.log -Dfile.encoding=UTF-8 ``` #### 动态切换不同 CSV 文件策略 有需要根据不同条件动态选择不同的输入数据集合,这可以通过组合使用自定义函数以及逻辑控制器实现灵活跳转效果[^5]。 ```groovy // Groovy Script Sampler example to dynamically set the file path based on some condition. def filePath = 'defaultPath'; // Default value if no conditions match. if (someCondition) { filePath = vars.get('customFilePath'); } vars.put('currentCsvFile', filePath); log.info("Current CSV File Path: " + filePath); // Then use this variable within your CSV Data Set Config element as follows: ${__P(currentCsvFile)} ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

agrapea

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

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

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

打赏作者

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

抵扣说明:

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

余额充值