在我的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中运行该程序,则没有问题......
感谢您的帮助。
答案 0 :(得分:0)
在此代码中
cart.getSearch().getResults().get(selection);
NPE可能是由
引起的之前假设从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 ..:)