文章目录
1) Java默认请求 (Java Request Defaults)
2)DNS Cache Manager
当用户从不同的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解析程序解析
- 添加静态主机按钮:将条目添加到静态主机表
- 删除静态主机按钮:删除表中当前选定的静态主机
3)Keystore Configuration(密钥库配置)
密钥库配置元件允许您配置密钥库的加载方式以及它将使用的密钥。此组件通常用于您不希望在响应时间中考虑密钥库初始化时间的HTTPS方案中。
要使用此元件,您需要首先使用要测试的客户端证书设置Java密钥库,以执行此操作:
- 使用Javakeytool实用程序或通过PKI创建证书
- 如果由PKI创建,请将密钥转换为JKS可接受的格式再导入Java密钥库
- 然后通过两个JVM属性引用密钥库文件(或在system.properties中添加它们):
-Djavax.net.ssl.keyStore=path_to_keystore
-Djavax.net.ssl.keyStorePassword=password_of_keystore
字段含义:
- Preload:预加载,是否预加载密钥库。将其设置为true通常是最佳选择。必须
- Variable name…:指向证书别名的变量名称,变量名称,包含用于身份验证的客户端证书的别名。以在CSV数据文件填充变量值为例。非必须
- Alias Start…:别名起始索引,密钥库中使用的第一个key的索引,从0开始。必须
- Alias End…:别名末尾索引,密钥库中使用的最后一个key的索引,从0开始。使用“指向证书别名的变量名称”时,请确保它足够大,以便在启动时加载所有密钥。默认为-1表示加载全部。必须
要使JMeter使用多个证书,您需要确保:
1)在jmeter.properties或user.properties中设置了https.use.cached.ssl.context=false
2)您对HTTP请求使用HTTPClient 4实现
4)TCP取样器配置
- TCPClient classname:TCP客户端类的名称。默认从属性tcp.handler读取,失败则从TCPClientImpl取。
- 服务器名称或IP:TCP服务器的名称或IP
- 端口号:要使用的端口
- Re-use connection :如果选中,则连接保持打开状态。否则,在读取数据后将关闭连接。
- Close connection:如果选择此选项,则在运行取样器后将关闭连接。
- SO_LINGER:创建套接字时启用/禁用指定的延迟时间(以秒为单位)SO_LINGER。如果将“SO_LINGER”值设置为0,则可以防止大量套接字处于TIME_WAIT状态。
- End of…:行尾的字节值,将其设置为-128到+127范围之外的值以跳过EOL检查。您可以在jmeter.properties文件中设置,也可以设置tcp.eolByte属性。如果在TCP取样器配置和jmeter.properties文件中同时设置此项,将使用TCP取样器配置中的设置值。
5)登陆配置元件/素
该元件可以让我们在使用用户名和密码作为其设置的一部分的取样器中,添加或覆盖用户名和密码设置
6)简单配置元件
简单配置元件允许您在取样器中添加或覆盖任意值。您可以选择值的名称和值本身。虽然一些有冒险精神的用户可能会发现这个元件的用途,但它主要是供开发人员在开发新的JMeter组件时使用的基本GUI。