jmeter获取请求body里面的变量值 No:${No}
时间: 2023-06-11 16:06:55 浏览: 96
要在 JMeter 中获取请求体(Request Body)中的变量值,您可以使用正则表达式提取器(Regular Expression Extractor)来实现。
假设您的请求体如下所示:
```
{
"name": "John",
"age": "25",
"id": "1234"
}
```
要获取 `id` 变量的值,您可以按照以下步骤进行操作:
1. 添加一个正则表达式提取器作为 HTTP 请求的子元素。
2. 在正则表达式提取器中,设置“应用于”为“Main sample only”(仅应用于主样本)。
3. 在“响应字段”中输入变量的名称,例如 `RequestBody`。
4. 在“匹配号”中输入一个正则表达式,以匹配变量的值。例如,对于上面的请求体,您可以使用以下正则表达式:`"id":\s*"(\d+)"`。
5. 在“模板”中输入 `$1$`,这将提取匹配项中的第一个捕获组(即括号中的内容)。
6. 将变量名称设置为 `No` 或您想要的任何名称。
7. 现在,您可以在测试计划中使用 `${No}` 来引用该变量的值。
请注意,以上步骤仅适用于 JSON 格式的请求体。如果您使用其他格式,您需要相应地调整正则表达式。
相关问题
jmeter里面 用json提取器提取请求body里面No的值
假设你的请求body为以下JSON格式:
```
{
"id": 1,
"name": "John",
"No": "12345",
"email": "john@example.com"
}
```
你可以使用JMeter中的JSON Extractor提取No的值,以下是具体步骤:
1. 在HTTP请求中添加JSON Extractor
2. 在JSON Extractor中配置以下属性:
- "Names of created variables":输入一个变量名,例如"noValue"
- "JSON Path expressions":输入JSON Path表达式,例如"$.No",表示提取JSON中No属性的值
3. 在接下来的请求或断言中使用`${noValue}`引用刚刚提取的值即可。
注意:JSON Path表达式需要根据实际返回的JSON格式进行调整。可以使用jmeter-plugins插件包中的JSON Path Tester插件来帮助构建正确的表达式。
jmeter 请求body如何在不使用CSV的方式,引用list类型的变量
如果不想使用 CSV 文件来存储 list 类型的数据,也可以在 JMeter 中使用变量来存储这些数据,并在请求的 Body 中引用这些变量。
具体操作步骤如下:
1. 在 JMeter 中创建一个线程组,并添加一个 HTTP 请求。
2. 在 HTTP 请求中,选择“Body Data”选项,并输入请求的 Body 内容。例如:
```
{
"items": [
{"name": "${item_1_name}", "price": ${item_1_price}},
{"name": "${item_2_name}", "price": ${item_2_price}},
{"name": "${item_3_name}", "price": ${item_3_price}}
]
}
```
在这个例子中,我们使用 `${}` 语法引用了三个变量,分别是 `item_1_name`、`item_1_price`、`item_2_name`、`item_2_price`、`item_3_name` 和 `item_3_price`。
3. 在线程组中添加一个“用户定义的变量”配置元件,用于定义这些变量的初始值。例如:
```
item_1_name=apple
item_1_price=1.5
item_2_name=banana
item_2_price=2.0
item_3_name=orange
item_3_price=1.8
```
在这个例子中,我们定义了六个变量,分别是 `item_1_name`、`item_1_price`、`item_2_name`、`item_2_price`、`item_3_name` 和 `item_3_price`,并为它们分别赋初值。
4. 在测试计划中添加一个“循环控制器”配置元件,用于循环执行 HTTP 请求。在循环控制器中,可以使用 `${__counter(,)}+1` 引用一个计数器变量,用于循环遍历 list 中的元素。例如:
```
item_${__counter(,)}_name=apple
item_${__counter(,)}_price=1.5
```
在这个例子中,我们定义了两个变量,分别是 `item_1_name`、`item_1_price` 和 `item_2_name`、`item_2_price`,并使用计数器变量 `${__counter(,)}+1` 来动态生成变量名称和变量值。
5. 运行测试计划,JMeter 将会循环执行 HTTP 请求,并在每次执行时使用不同的变量值来替换请求 Body 中的变量。