4 HTTP信息头管理器
HTTP信息头管理器,用于设置HTTP请求包的报文头。通过右键点击菜单,选择“添加->配置元件->HTTP 信息头管理器”而获得。其界面如图55所示。
图55 HTTP信息头管理器
HTTP信息头管理器的操作按键同用户定义的变量的操作按键。
5 HTTP请求默认值 HTTP请求默认值,设置HTTP请求的默认值。在这里设置好的信息在下面所有的HTTP请求元件中都可以不设置。HTTP请求默认值通过右键点击菜单,选择“添加->配置元件->HTTP请求默认值”而获得。其界面如图56所示。
图56 HTTP请求默认值“基本”标签
(一)基本标签 HTTP请求默认值组件可以为我们的http请求设置默认的值。假如,我们创建一个测试计划有很多个请求且都是发送到相同的Server,这时我们只需添加一个HTTP请求默认值组件并设置“服务器或IP”,然后添加多个HTTP请求且不设置“服务器或IP”,这些HTTP请求会默认使用HTTP请求默认值组件设置的值。
- 协议:http或https
- 服务器或IP:待测软件所在服务器的名称或者IP地址
- 端口号:待测服务软件HTTP所在的端口号。比如Tomcat的默认端口号为8080,Django端口号为8000等,默认为80
- 路径:请求的路径。
- 内容编码:默认为ISO8859,中文格式的网页,建议改为utf-8。
(二)高级标签,如图57所示。
图57 HTTP请求默认值“高级”标签
- 客户端实现:实现中可以选择默认、HttpClient4和Java。
使用Java进行压测,Java表示使用JVM的HTTP实现。链接是复用的。代码中的HTTP调用都加了连接池。 使用HttpClient4进行压测,表示使用 Apache HttpComponents HttpClient 4.x.作为请求的实现方法。每请求一次都创建一个新的链接(JMeter5.0以前默认关闭了连接复用,5.0上是打开的:即每请求一次都会创建一个新的链接)。 从JMeter 5.0开始,当使用默认的HttpClient4实现时,JMeter将在每个线程组迭代时重置HTTP状态(SSL状态 连接)。如果您不想要此行为,请在jmeter.properties文件中设置。
代码语言:javascript复制httpclient.reset_state_on_thread_group_iteration = false
所以HttpClient4在连接复用设置打开的情况下,压测结果与java的是不一样的,因为java复用链接,HttpClient4每次连接都会重新建立TCP连接,如果HttpClient4吞吐量过低,需要考虑网络带宽的限制。Java实现适合强度测试,HttpClient4适合真实场景的模拟。 在这里顺便介绍一下连接池的作用。连接池的作用于原理: 正常访问数据库的过程中,每次访问都需要创建新的连接,这会消耗大量的资源。连接池的就是为数据库连接建立一个“缓冲池”,预先在缓冲池中放入一定数量的连接对象,当需要建立数据库连接时,只需要从“缓冲池”中取出一个,使用完毕之后再放回去就可以了。并且连接池允许多个客户端使用缓存起来的连接对象,这些对象可以连接数据库,并且是共享的、可被重复使用的。使用连接池可以节省大量资源,从而提高程序运行速度。
- 超时。 Ø 连接:连接超时时间设置,就是超过多长时间没有连接就认为是超时。 Ø 响应:回复超时时间设置,就是多长时间没有收到回复就认为是超时。 某一公司,要求产品的所有界面在多少压力下不得低于3秒响应,在这种情况下,设置超时响应为:3000秒。
- 从HTML文件嵌入资源。如果HTML含有CSS、JS、图片等文件是否下载。 Ø 从HTML中获取所有资源并下载。如果HTML含有CSS、JS、图片等文件,均下载。 Ø 并行下载,数量为后面的设置。 Ø 网址必须匹配。网址必须与输入匹配。 Ø URLs must not match。URL不应该与输入匹配。 我们在第1节中建立的电子商务登录脚本中的HTTP请求默认值的高级标签中选择从HTML文件嵌入资源。运行结果如图58所示。
图58 选择从HTML文件嵌入资源后的运行结果
在这种情形下,所有对CSS、JS、PNGhellip;文件的请求都被记录来了。
- 源地址:该部分主要用于地址欺骗,以避免服务器对同一IP地址过滤。需要选择地址类型,并设置值。类型只有http请求的实现方式为 HTTPClient 才能使用该选项。可选类型有IP/主机名、设备、设备IPV4和设备IPV6。 Ø IP主机名: 指定IP地址或者主机名 Ø 设备:选择设备以选择该接口的第一个可用地址,该接口可以是IPv4或IPv6。 Ø 设备IPV4:选择设备名称(如“eth0”、“1o”、“wlan0”)的IPv4地址。 Ø 设备IPV6.:选择设备名称(如“eth0”、“1o”、“wlan0”)的IPv6地址。 此属性用于启用IP欺骗。它重写了这个示例的默认本地IP地址。JMeter主机必须具有多个IP地址(即IP别名、网络接口、设备)。该值可以是主机名、IP地址或网络接口设备,如如“eth0”、“1o”或“wlan0”。
- 代理服务器。设置代理服务器的名称或IP、端口号、用户名和密码。
- 其他任务,保存响应为MD5的哈希值:选中这个选项,在执行时只记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该项以减少取样器记录响应数据的开销。
设置了HTTP请求默认值,在设置HTTP请求时,公用的部分就不用设置了,你可以回过头来参看第1.3节中的5)-8)步。