J-Meter无法访问Bean

时间:2014-06-05 03:15:13

标签: java post jmeter javabeans

在我的Controller java类中,我有以下几行:

CartBean cart = (CartBean) request.getSession().getAttribute("cart");
int selection = Integer.parseInt(request.getParameter("choice"));
ArrayList<RoomDTO> booking = cart.getSearch().getResults().get(selection);

当我使用JMeter并运行查询时,我在第3行收到NullPointerException

调用jsp的{​​{1}}页面只包含可以选择的房间,因此我的HTTP请求只是(来自JMeter):

Controller

POST data: action=Checkout&choice=6 中,我添加了JMeter,当我运行请求时,正在保存HTTP Cookie Manager

cookie

有人会知道问题可能是什么吗?如果我在Eclipse中运行该程序,则没有问题......

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在此代码中

cart.getSearch().getResults().get(selection);

NPE可能是由

引起的
  1. 购物车为空
  2. cart.getSearch()返回null
  3. cart.getSearch()。getResults()返回null
  4. 之前假设从jmeter调用此代码导致问题确定哪一个导致问题

答案 1 :(得分:0)

我对你的问题有一些评论,

request.getParameter("choice")将从提交的表单中获取名为choice的输入类型的值。因此request.getParameter()将检索客户端通过POST或GET方法提交的值。

现在request.getAttribute(),这都是服务器端完成的。您将该属性添加到请求并将请求提交给另一个资源,客户端不知道这一点。所以处理它的所有代码通常都在servlet中。

您无法使用带有 Jmeter Cart Bean设置 request.setattribute() 值,因为您可能已经在webapp中使用了JSP页面。 Jmeter可以发送具有不同内容类型和标头值的POST / GET方法。

第3行出错: CartBean cart = (CartBean) request.getSession().getAttribute("cart"); 在继续购物车对象request.getParameter("choice")

之前执行空检查
if(cart==null){//do action} 
if(request.getParameter("choice")==null){//do action}

还有一点, 我认为,最好使用Test Script Recorder创建测试计划然后关联变量。

gud luck ..:)