首页 > 解决方案 > 非 HTTP 响应代码:JMeter 中的 java.net.UnknownHostException

问题描述

我第一次尝试使用 JMeter 进行负载测试。我正在尝试访问 URL:http://ss12345.localhost:9001/testManagement/login。采样器结果打印为:

Thread Name:Thread Group 1-1
Sample Start:2020-04-02 18:25:52 IST
Load time:21
Connect Time:21
Latency:0
Size in bytes:2490
Sent bytes:0
Headers size in bytes:0
Body size in bytes:2490
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):text
Response code:Non HTTP response code: java.net.UnknownHostException
Response message:Non HTTP response message: ss12345.localhost


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

我不明白为什么它不选择userSpecificSubDomain : ss12345. 如果我没有指定 userSpecificSubDomain,那么它会打开登录页面,否则它会抛出非 HTTP 响应代码:java.net.UnknownHostException。 有关更多详细信息,请参阅以下图片。

图 1

图 2

标签: jmeter

解决方案


JMeter 尝试解析DNS 主机名的IP 地址,并且由于它不知道它无法确定地址,因此它失败了。 ss12345.localhost

如果您在本地机器上有 JMeter 和正在测试的应用程序,您可以:

  1. 将下一行添加到主机文件(通常位于 下C:\Windows\System32\drivers\etc\hosts

    127.0.0.1   ss12345.localhost
    
  2. 或者(或者如果您没有管理员权限,因此无法编辑主机文件),您可以将DNS 缓存管理器添加到您的测试计划并在那里指定映射:

    在此处输入图像描述


以防万一意识到让被测应用程序和负载生成器在同一台机器上运行并不是最好的主意,因为它们将开始为资源而苦苦挣扎,因此负载测试结果将不可靠,因为您无法判断是否这是一个性能瓶颈,或者它只是缺乏即 RAM


推荐阅读