首页 > 解决方案 > JMeter 非 HTTP 响应代码:在 Kubernetes 上运行时出现 java.net.UnknownHostException

问题描述

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

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

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

我正在使用以下配置

  1. JMeter - 5.2.1
  2. Kubernetes - 1.19.9
  3. Jmx 文件有 150 个线程

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

标签: kubernetesjmeterload-testingazure-virtual-machineazure-aks

解决方案


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

但是,如果 JMeter 是唯一有此问题的软件,您可能希望通过将下一行添加到log4j2.xml文件来增加 JMeter 对 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" />

可能的原因之一是您在本地将 JMeter 配置为使用您的公司代理访问 Internet,并且不小心忘记了为您的 k8s 部署删除此设置


推荐阅读