【问题标题】:Jmeter 4 | HTTP Request sampler JAVA implementation bytes sent not capturedJmeter 4 | HTTP 请求采样器 JAVA 实现字节发送未捕获
【发布时间】:2018-08-01 16:51:40
【问题描述】:

我们正在为其中一个请求使用 JAVA 实现。在请求中,我们正在上传文件。选择 HTTPCLIENT4 实现时请求不起作用。该请求适用于具有 HTTPCLIENT3.1 实现的先前 Jmeter 版本。我们需要捕获结果中发送的字节。如何在 HTTP 请求采样器中捕获通过 JAVA 实现发送的字节

【问题讨论】:

  • 你不能。 Java 实现根本不设置该参数。您可以将其作为错误提交给 JMeter 团队。一个更好的解决方案是弄清楚为什么 HTTPCLIENT4 不适合你。一个(不是很可靠的)解决方法是获取请求标头,并检查它是否具有Content-Length 字段。该字段将告诉您发送内容的大小,不包括标题。你可以使用 JSR223 PostProcessor

标签: jmeter


【解决方案1】:

Sent bytes 基本上是 URL + 标头 + 正文的组合,因此您可以使用 JSR223 PostProcessor 和类似代码自行计算:

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)

地点:

  • samplerHTTPSamplerProxy 的一个实例,您可以在其中获取随请求发送的所有文件
  • prevHTTPSampleResult 的一个实例,您可以在其中获取 URL 和标头,还可以覆盖 Sent Bytes 字段。

请参阅The Groovy Templates Cheat Sheet for JMeter,了解您还可以使用 Groovy 做什么以及如何使用。

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2013-10-03
    相关资源
    最近更新 更多