尝试重播Jmeter脚本时显示空指针异常



我正在尝试回放我的JMeter脚本,在那里我点击了几个按钮来在此处输入图像描述的网页之间导航。但我在响应数据部分得到了null指针异常。奇怪的是,在采样器结果部分,我得到的响应代码是"200"。我在捕获请求时使用了"测试脚本记录器"。在之前的构建中,我采用了相同的方法,但从未遇到过这个问题。

异常显示为:

{"errorTrace":"java.lang.NullPointerException \r\n\tat com.bird.common.service.NewReportService.getSchemaDetails(NewReportService.java:97)\r\n\tat com.ibm.bird.common.controller.NewReportController.getSchemaDetails(NewReportControlr.java:197)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0\\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)\r\n\tat java.lang.reflect.Method.invoke(不明源)\r\n\at org.springframework.web.bind.annotation.support.HanderMethodInvoker.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:444)\r\n\r\ntat org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandrAdapter.handle(annotation MethodHandlerAAdapter.java:432)\r\n\r\nat org.springfframework.web-servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)\r\n\r\nat org/springframework.web.seervlet.DispacherServlet.doService(DispatcherCervlet.java:893)org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java)\r\n\tat org.springfframework.web-servlet.FFrameworkServlet.doGet(HttpServlet.java:741)\r\n\r\ntat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n\r\nat org.apache.cacatalina.core.applicationFilterChaing.doFilter(ApplicationFilterChain.java:193)\r\n\r\ntat org.apache.catalina.core.ApplicationFilterChain.doFilterorg.springframework.security.web.access.cointercept.FilterSecurityInterceptor.doFilterorg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterorg.springframework.security.web.authentication.AnymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n\r\ntat org.springfframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterorg.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilterorg.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilterorg.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)\r\n\r\ntat org.springfframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequest filter.java:107)\r\n\r\nat org.springfFramework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\r\n\tatorg.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegration filter.java:56)\r\n\r\ntat org.springfframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequest Filt

看起来您正试图在启用Spring会话管理的情况下对web应用程序进行负载测试。这意味着,如果不应用相关性,您将无法"按原样"回放录制的脚本。

  1. 再次录制您的脚本
  2. 比较2个生成的.jmx脚本并确定差异
  3. 检查以前的页面响应以定位动态元素,使用合适的JMeter PostProcessor将其提取到JMeter变量中,并用相关变量替换记录的硬编码值

在大多数常见的设置中,将HTTP Cookie管理器添加到您的测试计划中即可自动处理Cookie,并将HTTP标头管理器发送可从Cookie中获得的相关会话标头值,但实施方式可能有所不同。您需要联系您的web应用程序开发人员以了解更多详细信息。

最新更新