jmeter实现参数化及请求出现中文乱码问题解决

本文详细介绍了如何使用JMeter进行参数化,包括CSV Data Set Config和Function Helper两种方式。在使用Function Helper时遇到了请求参数中文乱码的问题,通过调整文件编码和尝试设置接口请求头、修改JMeter配置文件、使用BeanShell脚本等方式解决,最终发现将CSV文件另存为ANSI编码解决了乱码问题,但可能导致使用CSV Data Set Config时出现乱码。

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

一.jmeter进行参数化

方式1:通过CSV data set config

1.add-config element-CSV data set config
在这里插入图片描述
其中,
filename:参数化文件的绝对路径
file encoding:指明编码格式,读取文件时的编码格式;默认为ANSI
Variable Names :变量名称。多个变量名之间必须用分隔符分隔。如果该项为空,则文件首行会被读取并解析为列名列表
Ignore first line:是否忽略首行?如果csv文件中没有表头,则选择false
Delimiter:分隔符。将一行数据分隔成多个变量,默认为逗号,也可以使用“\t”。如果一行数据分隔后的值比Vairable Names中定义的变量少,这些变量将保留以前的值(如果有值的话)
Allow quoted data?:是否允许变量使用双引号?允许的话,变量将可以括在双引号内,并且这些变量名可以包含分隔符
Recycle on EOF?:遇到文件结束符是否再次循环?默认为 true
Stop thread on EOF?:遇到文件结束符是否停止线程?默认为 true
Sharing mode:线程共享模式。1、All threads(默认):一个线程组内,各个线程(用户)唯一顺序取值;2、current thread:一个线程组内,各个线程(用户)各自顺序取值;3、线程组各自独立,但每个线程组内各个线程(用户)唯一顺序取值;

2.设置线程组
1S内发起4个线程(循环一次)
在这里插入图片描述

3.请求接口引用CSV生成的变量
在这里插入图片描述
4.执行请求,查看结果树
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方式2:通过function helper(函数助手)
1.点击函数助手
在这里插入图片描述
2.在弹出面板选择CSVread
需要填写两行:
第一行是参数化文件的位置,同方式1
第二行是你需要参数化的列,注意下标从0开始
随后点击generate & copy to clipboard
在左侧会生成参数表达式,并自动复制
在这里插入图片描述
3.用这个参数表达式替换请求参数
在这里插入图片描述

4.执行HTTP请求,如图所示成功执行但是请求参数中文出现乱码
在这里插入图片描述

二.方式2请求出现乱码问题解决

1.参数化文件编码是utf-8,推测应该是jmeter读取是按照别的格式
分别采用了设置接口请求头为utf-8,
修改bin下的配置文件并重启:jmeter.properties,
添加BeanShell Sampler/BeanShell PostProcessor,在Script处填写如下代码:prev.setDataEncoding(“utf-8”);
但是都没有用…
因为方式1的file encoding默认是ANSI,推测函数助手读取默认也是这个编码

2.记事本方式打开CSV文件,选择另存为,编码选择ANSI
在这里插入图片描述
替换原文件保存即可

3.重新执行HTTP请求,乱码问题解决
在这里插入图片描述

注:
但是这种方式会导致方式1出现乱码,因为方式1中我们设置的是通过utf-8格式去读取

参考文章:
https://zhuanlan.zhihu.com/p/112955910
https://blog.youkuaiyun.com/mu_wind/article/details/108225919

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值