当用户从不同的IP接收内容时,DNS缓存管理器元件允许测试在负载平衡器(CDN等)后面有多个服务器的应用程序。默认情况下,JMeter使用JVM DNS缓存。这就是集群中只有一台服务器接收负载的原因。DNS缓存管理器在每次迭代时分别解析每个线程的名称,并将解析结果保存到其内部DNS缓存中,该缓存独立于JVM和系统DNS缓存。
静态主机的映射可用于模拟/etc/hosts文件之类的。这些条目将优先于自定义解析程序。如果要使用此映射,则必须启用Use custom DNS resolver。
静态主机表的用法
比如,您有一个测试服务器,您希望使用名称来访问,该名称尚未在您的DNS服务器中设置。在我们的例子中,服务器名称是www.example.com,您希望通过服务器的IP地址a123.another.example.org来访问。
您可以更改工作站并在/etc/hosts文件中添加条目- 或者等效于在您的操作系统中,在DNS缓存管理器的静态主机表中添加条目。
您可以在第一列(Host)中键入www.example.com, 在第二列(Hostname or IP address)中键入a123.another.example.org。正如第二列的名称所暗示的那样,您甚至可以使用测试服务器的IP地址。
将使用自定义DNS解析程序查找测试服务器的IP地址。如果没有给出,将使用系统DNS解析器。
现在,您可以在HTTPClient4取样器中使用www.example.com,并且对于a123.another.example.org的所有请求,使用www.example.com设置的信息头。
DNS缓存管理器设计用于在线程组或测试计划的根节点中使用。不要将其作为特定HTTP取样器的子元件
DNS缓存管理器仅适用于使用HTTPClient4实现的HTTP请求。
- 名称 :树中显示的此元件的描述性名称
- 在每次迭代中清除缓存 如果选中:则每次启动新迭代时都会清除每个线程的DNS缓存
- Use system DNS resolver:将使用系统DNS解析程序。要使它能正确工作,需要编辑$JAVA_HOME/jre/lib/security/java.security并添加networkaddress.cache.ttl=0
- Use custom DNS resolver:将使用自定义DNS解析器(来自dnsjava库)
- Hostname or IP address:要使用的DNS服务器列表。如果为空,将使用网络配置DNS
- 添加按钮:将条目添加到DNS服务器表
- 删除按钮:删除当前选定的表条目
- Host and Hostname or IP address:将主机名映射到静态主机条目,该条目将使用自定义DNS解析程序解析
- 添加静态主机按钮:将条目添加到静态主机表
- 删除静态主机按钮:删除表中当前选定的静态主机
原文链接:https://blog.csdn.net/paidaxing_dashu/article/details/102677682