Jmeter 将整个正文作为变量传递给POST请求

Jmeter 将整个正文作为变量传递给POST请求,jmeter,load-testing,Jmeter,Load Testing,我正在尝试使用JMeter创建一个简单的压力测试。我大部分收到请求,还有一些发帖请求。我的主要目标是使这个测试尽可能可重用。我希望以用户必须提供具有以下标题的CSV文件的方式实现它: method;path;postBody 这些值类似于: GET;/path/to/resource;'' POST;/path/to/resource;'{"key":"value","key":"value","key":"value"}' 现在,POST(放置、修补等)主体在不同的请求之间有所不同。向正文

我正在尝试使用JMeter创建一个简单的压力测试。我大部分收到请求,还有一些发帖请求。我的主要目标是使这个测试尽可能可重用。我希望以用户必须提供具有以下标题的CSV文件的方式实现它:

method;path;postBody
这些值类似于:

GET;/path/to/resource;''
POST;/path/to/resource;'{"key":"value","key":"value","key":"value"}'
现在,POST(放置、修补等)主体在不同的请求之间有所不同。向正文数据选项卡提供
${postBody}
也不起作用
“${postBody}”

有没有办法做到这一点?命令行解决方案也非常受欢迎

编辑:为了澄清,我使用的是UI界面。当我在Body数据选项卡中输入
${postBody}
时,UI会抱怨。从Body Data选项卡切换到另一个选项卡时,我得到以下提示:

删除请求周围的“”,它应该可以工作

关于您得到的警告,这不是一个错误,只是在JMeter中,这两个选项卡是独占的:

  • 参数选项卡用于以名称=值的形式输入参数

  • 车身数据符合您的要求

那么你能验证我的假设吗,即删除CSV文件中请求周围的引号


如果仍然失败,请显示日志。

您可以保留在Body Data选项卡中

在pathPost之后添加GET请求的可选查询参数:

 ${pathPost}?${getPramaters}
不要担心
它只是将路径与参数分开

还考虑将变量名改为PATH,更合适,因为它可以是POST。 在JSON

中,
在值之间分隔,而在CSV中,默认值也是

我建议您可以在
CSV数据集配置中选择不同的分隔符作为
并相应地在CSV中添加数据(删除额外的“字符”):

  • 注意:允许引用数据保留默认值
    False

什么不起作用?也许您还需要CSVN的标题,但不清楚什么不起作用。对于POST,发送
${postBody}
作为一个主体应该可以工作,只要它的url编码正确。GET通常需要URL参数(所以应该在路径上)。但由于我们不知道什么不起作用,可能还有100多个其他原因,请查看更新的问题。这并不能提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-第一部分是答案。你在哪里看到评论?谢谢你!我被警告挂了,以为这是个错误。你是对的
pathPost
应该是
path
。但问题在于post请求的主体中,我无法将主体数据作为从CSV检索的变量提供。
POST;/path/to/resource;{"key":"value","key":"value","key":"value"}