将整个 body 作为变量传递给 POST 请求
Passing whole body as a variable to a POST request
我正在尝试使用 JMeter 创建一个简单的压力测试。我主要有 GET 请求和几个 POST 请求。我的主要目标是使该测试尽可能可重用。我想以用户必须提供具有以下 headers:
的 CSV 文件的方式实现它
method;path;postBody
这些值看起来像:
GET;/path/to/resource;''
POST;/path/to/resource;'{"key":"value","key":"value","key":"value"}'
现在 POST(PUT、PATCH 等 ..)主体因请求而异。提供 ${postBody}
到 Body 数据选项卡也不起作用 "${postBody}"
。
有办法实现吗?命令行解决方案也非常受欢迎。
编辑: 澄清一下,我使用的是 UI 界面。当我在 Body 数据选项卡中输入 ${postBody}
时,UI 会抱怨。从 Body 数据选项卡切换到另一个选项卡时,我收到以下提示:
删除请求周围的“'”,它应该可以工作。
关于您收到的警告,这不是错误,只是在 JMeter 中这两个选项卡是互斥的:
Parameters 选项卡用于以 name=value
形式输入参数
Body数据满足你的要求
那么你能验证我的假设吗?即删除 CSV 文件中请求周围的引号?
如果仍然失败,请显示日志。
您可以保留在 Body 数据选项卡中,
在 pathPost 之后添加 GET 请求的可选查询参数:
${pathPost}?${getPramaters}
不用担心 ?
它只是来自参数的单独路径
也可以考虑把变量名改成路径,比较合适,可以是POST.
在 JSON ,
中分隔值,而在 CSV 中默认值也是 ,
我建议你可以使用你的 CSV 分隔符,在 CSV Data Set Config
中选择不同的分隔符作为 ;
并相应地在 CSV 中添加你的数据(删除额外的 ' 字符):
POST;/path/to/resource;{"key":"value","key":"value","key":"value"}
- 注意:允许引用的数据保留默认值
False
我正在尝试使用 JMeter 创建一个简单的压力测试。我主要有 GET 请求和几个 POST 请求。我的主要目标是使该测试尽可能可重用。我想以用户必须提供具有以下 headers:
的 CSV 文件的方式实现它method;path;postBody
这些值看起来像:
GET;/path/to/resource;''
POST;/path/to/resource;'{"key":"value","key":"value","key":"value"}'
现在 POST(PUT、PATCH 等 ..)主体因请求而异。提供 ${postBody}
到 Body 数据选项卡也不起作用 "${postBody}"
。
有办法实现吗?命令行解决方案也非常受欢迎。
编辑: 澄清一下,我使用的是 UI 界面。当我在 Body 数据选项卡中输入 ${postBody}
时,UI 会抱怨。从 Body 数据选项卡切换到另一个选项卡时,我收到以下提示:
删除请求周围的“'”,它应该可以工作。
关于您收到的警告,这不是错误,只是在 JMeter 中这两个选项卡是互斥的:
Parameters 选项卡用于以 name=value
形式输入参数
Body数据满足你的要求
那么你能验证我的假设吗?即删除 CSV 文件中请求周围的引号?
如果仍然失败,请显示日志。
您可以保留在 Body 数据选项卡中,
在 pathPost 之后添加 GET 请求的可选查询参数:
${pathPost}?${getPramaters}
不用担心 ?
它只是来自参数的单独路径
也可以考虑把变量名改成路径,比较合适,可以是POST.
在 JSON ,
中分隔值,而在 CSV 中默认值也是 ,
我建议你可以使用你的 CSV 分隔符,在 CSV Data Set Config
中选择不同的分隔符作为 ;
并相应地在 CSV 中添加你的数据(删除额外的 ' 字符):
POST;/path/to/resource;{"key":"value","key":"value","key":"value"}
- 注意:允许引用的数据保留默认值
False