『动善时』JMeter基础 — 9.取样器sampler(二)
6)使用keep Alive
:
当该选项被选中时,JMeter和目标服务器之间使用Keep-Alive
方式进行HTTP通信,默认选中。
HTTP请求中Keep-Alive模式说明:
如果一个浏览器对某一个域名有多个请求,就会进行频繁的建立连接和断开连接。所以HTTP 1.0中出现了
Connection: keep-alive
属性,用于建立长连接,即我们所说的Keep-Alive模式。Keep-Alive模式更加高效,因为避免连接频繁建立和释放的开销。
7)对POST使用multipart/form-data
:
使用multipart/from-data
或application/x-www-form-urlencoded
方式发送HTTP POST请求,默认不选中。
说明POST请求表单提交的编码类型:
multipart/from-data
或application/x-www-form-urlencoded
用来控制请求向服务器发送表单数据之前如何对其进行编码。
enctype属性 | 说明 |
---|---|
application/x-www-form-urlencoded | 默认编码方式, key1=value1&key2=value2。 |
multipart/form-data | 普通表单提交,以及表单文件上传。 |
text/plain | 以纯文本形式进行编码,其中不含任何控件或格式字符,该方式不常用。 |
8)与浏览器兼容的头(Browser-compatible headers)
当勾选multipart/form-data
时,勾选此项会截掉http请求头中的Content-Type
和Content-Transfer-Encoding
,而只发送Content-Disposition
部分。
同请求一起发送参数:
1)参数(Parameters):
在请求中发送带参数的URL ,JMeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。
编码这个选项最好勾选,因为如果参数值内含有ASCII Control Chars
或者Non-ASCII characters
或者其他符号的话,如果不勾选会导致发送失败(乱码问题),勾选的话会自动将含有的这些特殊符号进行编码。
2)消息体数据(Body Data):
通请求一起发送的数据消息,这里可以支持多种数据格式 json、xml等。
例如:
参数格式:name=zhangsan&age=15的形式。(参数以纯文本形式)
参数格式:json形式。(需要配置http信息头管理器,添加Context-Type = application/json)
注意:Parameters和Body Data只能选用其中一种方式发送参数。
3)文件上传(Files Upload):
在请求中发送文件。通常HTTP文件上传行为可以通过这种方式模拟,参数名称就是发送文件对应的参数,MINE Type
为资源媒体类型。
(4)高级页面选项介绍
根据上图解释说明:
客户端实现(Client implementation):
-
实现( Implementation)
:发送http请求的方式。可选项为Java和HttpClient4,默认为HttpClient4。HttpClient4是Java工具包实现的请求方式,是基于.net工具包二次定制,效率高。
如果是上传文件的话一定要选择,否则请求发送成功了,其实文件并未上传成功。
-
超时(毫秒)<Timeouts(milliseconds)>
:超时设置。链接(Connect):连接超时时间,单位为毫秒;
响应(Response):响应等待超时时间,单位为毫秒;
从HTML文件嵌入资源(Embedded Resources from HTML Files):
-
从HTML文件获取所有内含的资源(Retrieve All Embedded Resources)
:当该选项被选中时,JMeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行解析,并获取HTML中包含的所有资源(图片、flash等),默认不选中。
如果用户只希望获取页面中的特定资源,可以在后边的
URLs must match
文本框中,填入需要下载的特定资源表达式,这样只有能匹配指定正则表达式的URL指向资源会被下载。 -
并行下载(Parallel downloads)
:是否使用自设资源池,勾选后可设置大小。 -
数量(Number)
:资源池大小,默认设置为6。 -
网址必须匹配(URLs must match)
:URL匹配过滤,填写此项则只会下载与此内容项匹配的url的资源。例如:要获取
http://example.com/
下的所有资源,使用正则表达式http://example.com/.*
。
源地址:
只用于http协议且Implementation为HttpClient4的情况,此属性用于启用IP欺骗,会重写了这个http请求使用的默认本地IP地址。
用于JMeter主机具有多个IP地址的情况。该值可以是主机名、IP地址或网络接口设备,如“ey0”或“l0”或“wlan0”
。
可以设置多个,防止IP地址被服务端拉黑。
-
IP/主机名(IP/Hostname)
:使用特定的IP地址或(本地)主机名。 -
设备(Device)
:选择该接口的第一个可用地址,该设备可以是IPv4或IPv6。 -
设备IPV4
:选择名称设备的IPv4地址。 -
设备IPV6
:选择名称设备的IPv6地址。
代理服务器:
不想用本机的地址来发送Http请求,而想使用代理服务器时则填写。
-
服务器名称或IP
:代理服务器的名称或者IP地址。 -
端口号
:该代理的端口号。 -
用户名
:使用该代理的用户名。 -
密码
:用户密码。
保存响应为MD5哈希:选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该选项,以减少取样器记录响应数据的开销。
到这里“HTTP请求”这个取样器介绍完了,每个取样器的页面和用法都不用,这里不能一一进行说明,以后再用到哪种取样器(Samplers)会单独讲解。
参考:
https://www.cnblogs.com/Psara/p/13448040.html
https://blog.csdn.net/grandPang/article/details/47448395
https://blog.csdn.net/yamadeee/article/details/84250297