JMeter 非 HTTP 响应代码:在 Kubernetes 上运行时出现 java.net.UnknownHostException

Posted

技术标签:

【中文标题】JMeter 非 HTTP 响应代码:在 Kubernetes 上运行时出现 java.net.UnknownHostException【英文标题】:JMeter Non HTTP response code: java.net.UnknownHostException when running on Kubernetes 【发布时间】:2021-05-09 12:33:55 【问题描述】:

我在 Azure Kubernetes 上运行我的 JMeter 进行负载测试。 JMeter 使用 HTTP 采样器调用 Azure 函数(HTTP 端点)来生成负载。 我在 kubernetes 上收到错误消息 响应代码:非 HTTP 响应代码:java.net.UnknownHostException 响应消息:非 HTTP 响应消息:abcd.azurewebsites.net.

我在 Azure 虚拟机中运行了 JMeter 测试,但没有遇到任何问题。 我对 Kuberenetes 和虚拟机使用相同的测试计划(jmx 文件),并且在两种情况下都使用相同的 Azure 函数。

请告诉我为什么在 Kubernetes 上运行时出现错误响应代码:非 HTTP 响应代码:java.net.UnknownHostException 响应消息:非 HTTP 响应消息:abcd.azurewebsites.net。 p>

我正在使用以下配置

    JMeter - 5.2.1 Kubernetes - 1.19.9 Jmx 文件有 150 个线程

问候, 阿米特·阿格拉瓦尔

【问题讨论】:

【参考方案1】:

我怀疑这是 JMeter 的问题,很可能您的 pod 出于某种原因无法访问 Internet,您可能需要熟悉以下材料:

Check required ports Debugging DNS Resolution

但是,如果 JMeter 是唯一存在此问题的软件,您可能希望通过将下一行添加到 log4j2.xml 文件来increase JMeter's logging verbosity 用于 HTTP 协议:

<Logger name="org.apache.http" level="debug" />
<Logger name="org.apache.http.wire" level="error" />
<Logger name="org.apache.jmeter.protocol.http" level="debug" />

其中一个可能的原因是您在本地 configured JMeter to use your corporate proxy for accessing the Internet 并且不小心忘记为您的 k8s 部署删除此设置

【讨论】:

我们在虚拟机上运行时没有使用任何代理。

以上是关于JMeter 非 HTTP 响应代码:在 Kubernetes 上运行时出现 java.net.UnknownHostException的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter:非 HTTP 响应代码:java.net.URISyntaxException

Jmeter - 简单的 HTTP 请求

jmeter找不到接口错误

jmeter添加断言

在 REST 响应中使用非标准 HTTP 状态代码是不是很好? [关闭]

Jmeter—添加断言 判断接口响应数据是否符合预期