在Jmeter中,我如何测试地图值?

时间:2015-09-30 19:26:58

标签: java spring jmeter activiti

我正在使用Jmeter测试Spring Web服务。我们也在使用activiti,但由于我在两者都是新手,这就是我所知道的。据推测,该应用程序将从请求中接收参数。

然而,我在这里遇到了障碍(UpdateInbdParams):

private String taskId;

private Map<String, String> vars;

public String getTaskId() {
    return taskId;
}

public void setTaskId(String taskId) {
    this.taskId = taskId;
}

public Map<String, String> getVars() {
    return vars;
}

public void setVars(HashMap<String, String> vars) {
    this.vars = vars;
}

我应该发送一个字符串和一个Map。后者应该如此,我们可以稍后发送我们需要的任何参数,而无需修改代码。但是我该如何测试后者呢?

enter image description here

返回:

{"vars":null}

供参考,以下是错误代码的一部分:

@RequestMapping(method = RequestMethod.POST)
public UpdateOutbdParams post(Locale locale, UpdateInbdParams model) {
    UpdateOutbdParams response = new UpdateOutbdParams();
    try{
        try{
            TaskService taskService = this.processEngine.getTaskService();
            Task task = taskService.createTaskQuery().taskId(model.getTaskId()).singleResult();
            RuntimeService runtimeService = this.processEngine.getRuntimeService();
            /** ERRORS HERE **/
            runtimeService.setVariables(task.getExecutionId(), model.getVars());
            /** ERRORS END HERE **/
            taskService.complete(model.getTaskId());
            System.out.println(model.getVars().toString());
            System.out.println("Task execution id " + task.getExecutionId());
        }catch(Exception ex){
            ex.printStackTrace();
            System.out.println("Inner catch: "+ex.getMessage());
        }
    }catch(Exception ex){
        ex.printStackTrace();
        System.out.println("Outer catch: "+ex.getMessage());
        return response;
    }
    return response;
}

这是实际的错误:

java.lang.NullPointerException
    at com.myprojects.sample.api.txn.controllers.TxnTaskController.post(TxnTaskController.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:111)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:806)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:729)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Inner catch: null

所以我猜它与它(如何)没有收到Map值有关。有什么想法吗?

感谢。

0 个答案:

没有答案