无法使用Jmeter成功拨打休息服务(方法:DELETE)

时间:2016-07-20 08:52:58

标签: performance jmeter automated-tests performance-testing load-testing

我写了REST网络服务。它接受RequestMethod.DELETE,消耗"application/json"。我在本地使用chrome的DHC客户端对此进行了测试。它很成功。但是当我使用Jmeter测试它时,响应就是:"客户端发送的请求在语法上是错误的"。我的观点是如何使用dhc client&为什么不在Jmeter?

enter image description here enter image description here

Java部分:

@RequestMapping(value = { "/{apiVersion}/provision"}, 
        method = RequestMethod.DELETE, consumes = "application/json")
public @ResponseBody
EspCancelResponse cancel(@RequestBody EspCancelRequest cancelRequest) throws ProvisionException{
//do something
}

ESPCancelRequest:

@JsonPropertyOrder({"espCentralTransactionId"})
public class EspCancelRequest {

private String espCentralTransactionId;

public String getEspCentralTransactionId() {
    return espCentralTransactionId;
}

@JsonProperty("espCentralTransactionId")
public void setEspCentralTransactionId(String espCentralTransactionId) {
    this.espCentralTransactionId = espCentralTransactionId;
   }
}

2 个答案:

答案 0 :(得分:0)

来自您的Java部分:

  

method = RequestMethod.DELETE, consumes =“application / json”)

这可能是由于您的服务器将您的请求正文视为纯文本。

尝试添加HTTP Header ManagerContent-Type

的值发送application/json标头

另一个原因可能是您的应用服务器是ignoring your message body。虽然DELETE方法是allowed to have the body,但它可能被服务器丢弃,您的应用程序依然存在。

答案 1 :(得分:0)

我想这是Jmeter中的一个错误。方法为DELETE时无法发送正文。看到这篇文章后我才明白这个理解: https://bz.apache.org/bugzilla/show_bug.cgi?id=55255

:(。考虑使用其他工具或最新版本。