如何在Jmeter中将Bean Shell处理器变量传递到HTTP请求主体数据

时间:2019-05-27 09:28:04

标签: performance jmeter

我需要将日期格式变量数据从Bean外壳处理器传递到http请求正文

下面是我的代码和json,我在其中传递了变量数据,但它不起作用

import java.text.SimpleDateFormat;
import java.util.Date;

Date enrolmentDate = new Date();
enrolmentDate.setDate(enrolmentDate.getDate());//+ ${__Random(1,50,)});
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm");
String formattedDate = df.format(enrolmentDate);
vars.put("StartDate",formattedDate);
log.info("########################"+formattedDate);

下面是Http请求正文数据

{
"articleId":""${ArticleId}",
"startDate":"${formattedDate}",
"endDate":"${Carttodates}"
}

当我运行它时,开始日期和结束日期显示为$ {formattedDate},解决方案是什么?

在我的JSON正文数据中,我想发送开始日期和结束日期,例如“ 27/05/2019 14:34”

以下是我收到的请求

PUT data:
{
"articleId":"7694b207-936b-40b9-9c80-4b8097e67da1",
"startDate":"${formattedDate}",
"endDate":"${Carttodates}"
}

2 个答案:

答案 0 :(得分:0)

还需要将formattedDate作为变量名:

vars.put("formattedDate", formattedDate);

答案 1 :(得分:0)

将您的请求正文更改为

{
"articleId":""${ArticleId}",
"startDate":"${StartDate}",
"endDate":"${Carttodates}"
}

之所以需要这样做,是因为您将日期存储在beanshell的“ StartDate”变量中。因此,您应该稍后在HTTP中使用“ StartDate”访问该值。 另一个选择是将值存储在beanshell的“ formattedDate”变量中,然后就不需要在HTTP请求正文中进行更改。