Jmeter 4 | HTTP请求采样器发送的JAVA实现字节未捕获

Jmeter 4 | HTTP请求采样器发送的JAVA实现字节未捕获,jmeter,Jmeter,我们正在为其中一个请求使用JAVA实现。在请求中,我们正在上载一个文件。当选择HTTPCLIENT4实现时,请求不起作用。该请求与HTTPCLIENT3.1实现的早期Jmeter版本配合使用效果良好。我们需要捕获结果中发送的字节。如何在HTTP请求采样器中捕获通过JAVA实现发送的字节发送的字节基本上是URL+标题+正文的组合,因此您可以使用以下代码自己计算: def url = sampler.getUrl().toString().length() def headers = prev.ge

我们正在为其中一个请求使用JAVA实现。在请求中,我们正在上载一个文件。当选择HTTPCLIENT4实现时,请求不起作用。该请求与HTTPCLIENT3.1实现的早期Jmeter版本配合使用效果良好。我们需要捕获结果中发送的字节。如何在HTTP请求采样器中捕获通过JAVA实现发送的字节

发送的字节
基本上是URL+标题+正文的组合,因此您可以使用以下代码自己计算:

def url = sampler.getUrl().toString().length()
def headers = prev.getHeadersSize()
def body = 0;
sampler.getHTTPFiles().each {file ->
    body += new File(file.getPath()).length()
}

prev.setSentBytes(url + headers + body)
其中:

  • sampler
    是一个实例,您可以从中获取随请求一起发送的所有文件
  • prev
    是一个实例,您可以在其中获取URL和标题,还可以覆盖
    Sent Bytes
    字段

看看Groovy还能做些什么,如何做。

你不能。Java实现并没有设置这个参数。您可以将其作为bug提交给JMeter团队。更好的解决方案是找出HTTPCLIENT4不适合您的原因。一个(不太可靠的)解决方法是获取请求头,并检查它是否有
内容长度
字段。该字段将告诉您发送内容的大小,不包括标题。您可以使用JSR223后处理器来完成