Jmeter参数化--Post请求的Post body 参数化

本文介绍如何使用JMeter进行参数化设置,包括使用CSV Data Set Config元件实现JSON数据的参数化,适用于性能测试中动态数据的需求。

一、使用body data设置参数:

1,首先,使用Fiddler录制post请求,并发送成功,导成jmx格式,并用jmeter打开;

2,此时,不设置参数,运行,OK,运行成功,其传递的值为以下格式:

{"tagid":"aaaaa","resource":null,"resourceExtend":null}

运行成功后为:

3,然后对其进行参数化:

A,首先,添加csv  data set config,如下图所示:

注意:1,此处要选择utf-8;

2,variable Nmes处不需要写参数化名称;

3,csv文件要另存为csv格式,并且csv文件要有表头,如下图所示:

B,参数化参数:

C.OK,设置完成,运行,运行成功:

 也可以这种方式:

Step 6 使用 CSV Data Set Config 将 json 数据参数化
右键单击 Thread Group,右键菜单选择 "添加" -> 配置元件 -> CSV Data Set Config,Filename 输入 e:/defonds/work/20141105/json.txt(要使用绝对路径),Variable Names 输入 cityCode,cityName,subCategoryCode,subCategoryName,编辑 e:/defonds/work/20141105/json.txt 内容如下图所示:

最后编辑 Body Data 里的 json 串里需要参数化的地方,使用 ${cityCode} 等参数覆盖需要参数化的部分:



作者:jiu~
链接:https://www.cnblogs.com/jiu0821/p/5986164.html




### 在 JMeter 中实现 POST 接口参数化的教程与示例 在 JMeter 中实现 POST 接口的参数化可以通过多种方式完成,例如使用 BeanShell PreProcessor、CSV Data Set Config 或者直接通过 HTTP 请求的参数列表功能。以下是详细的说明和代码示例。 #### 1. 使用 HTTP 请求的参数列表功能 对于表单提交类型的 POST 请求(`Content-Type: application/x-www-form-urlencoded`),JMeter 提供了“参数列表”功能,可以很方便地实现参数化[^3]。 - 在 HTTP 请求取样器中,选择“Body Data”选项卡。 - 添加需要发送的参数及其值,支持动态变量替换。 ```plaintext 参数名1=${value1} 参数名2=${value2} ``` 上述 `${value1}` 和 `${value2}` 是 JMeter 中定义的变量,可以在测试计划中通过其他组件(如 CSV Data Set Config)进行赋值。 --- #### 2. 使用 BeanShell PreProcessor 实现参数化 BeanShell PreProcessor 是一种强大的工具,可以在请求发送前动态生成或修改参数值。以下是一个示例代码,演示如何对参数进行 Base64 编码并保存到 JMeter 变量中[^4]。 ```java import sun.misc.BASE64Encoder; // 获取输入参数 String param1 = vars.get("inputParam1"); String param2 = vars.get("inputParam2"); // 对参数进行 Base64 编码 BASE64Encoder encoder = new BASE64Encoder(); String encodedParam1 = encoder.encode(param1.getBytes()); String encodedParam2 = encoder.encode(param2.getBytes()); // 将编码后的值保存到 JMeter 变量中 vars.put("encodedParam1", encodedParam1); vars.put("encodedParam2", encodedParam2); // 输出日志以便调试 log.info("Encoded Param1: " + encodedParam1); log.info("Encoded Param2: " + encodedParam2); ``` 在 HTTP 请求中,可以直接使用 `${encodedParam1}` 和 `${encodedParam2}` 来引用这些变量。 --- #### 3. 使用 CSV Data Set Config 实现参数化 CSV Data Set Config 是一种常用的参数化方法,可以从外部文件中读取数据,并将其赋值给 JMeter 变量[^5]。 - 在测试计划中添加一个 CSV Data Set Config 组件。 - 配置文件路径、变量名称和分隔符。 - 示例 CSV 文件内容: ```plaintext user1,password1 user2,password2 user3,password3 ``` - 在 HTTP 请求中使用 `${username}` 和 `${password}` 引用这些变量。 --- #### 4. 完整示例:用户登录接口测试 以下是一个完整的示例,展示如何使用上述方法实现用户登录接口的参数化测试。 ##### 测试计划结构 1. **线程组**:配置线程数、循环次数等。 2. **CSV Data Set Config**: - 文件路径:`users.csv` - 变量名称:`username,password` - 分隔符:逗号 `,` 3. **HTTP 请求默认值**:设置服务器域名和端口。 4. **HTTP 请求取样器**: - 方法:POST - URL:`/api/login` - Body Data: ```plaintext username=${username}&password=${password} ``` 5. **查看结果树监听器**:用于查看请求和响应信息。 ##### users.csv 文件内容 ```plaintext admin,admin123 user1,user1pass user2,user2pass ``` --- #### 注意事项 - 确保所有变量名正确无误,避免拼写错误导致无法解析。 - 如果需要对参数进行加密或解密操作,可以结合 BeanShell PreProcessor 实现。 - 对于复杂的参数化需求,还可以考虑使用 JSR223 PreProcessor 和 Groovy 脚本语言。 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值