取样器介绍
取样器是用来模拟用户操作的,向服务器发送请求以及接收服务器的响应数据。
取样器是在线程组内部的元件,也就是说取样器只能在线程组中添加。
取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元。(取样器通常要进行这三个工作)
JMeter自带的取样器
HTTP Request:HTTP请求
Flow Control Action :测试活动
Debug Sampler :Debug取样器
JSR223 Sampler :JSR223取样器
AJP/1.3 Sampler :AJP/1.3取样器
Access Log Sampler:Access Log取样器
Bean Shell Sampler :Bean Shell取样器
FTP Request :FTP请求
JDBC Request :JDBC Request
JMS Publisher:JMS发布
JMS Point-to-Point :JMS点到点
JMS Subscriber :JMS订阅
JUnit Request :JUnit请求
Java Request :Java请求
LDAP Extended Request :LDAP扩展请求默认值
LDAP Request :LDAP请求
OS Process Sampler :OS进程取样器
SMTP Sampler :SMTP取样器
TCP Sampler :TCP取样器
Mail Reader Sampler:邮件阅读者取样器
说明:
在测试工作中用的最多的可能就是“HTTP请求”。
每一种不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。
在JMeter的所有Sampler中,Java Request Sampler与Bean Shell Sampler是两种特殊的可定制的Sampler。
总结:
取样器的作用是向服务器发送请求,记录响应信息,记录响应时间。
多个取样器按照它们在树中出现的顺序运行。
“HTTP请求”为例介绍一下取样器
根据上图解释说明:
(1)HTTP Request:
名称(Name):取样器名称,也就是需要访问接口的名称。
建议写成请求接口的地址,例如:/login这样在有多个取样器的时候,左侧列表就可以知道该取样器是针对哪个接口的。
注释(Comments):对当前取样器的解释说明。
(2)Web服务器:
协议<Protocol(http)>:向目标服务器发送HTTP请求时的协议,可以是http或者是https或者File ,默认值为http协议 (根据需求定)。
服务器名称或IP(Server Name or IP):HTTP请求发送目标服务器的域名或IP地址,例如www.baidu.com或者127.0.0.1。
端口号(Port Number):所访问服务器中应用所占的端口,默认80端口。
(3)HTTP请求:
1)方法(Method):
发送HTTP请求的请求方式。(可以根据接口文档获得)
请求方式包括:GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
2)路径(Path):
目标接口的URL路径(不包括服务器地址和端口)。
也可以直接写完整路径(上面配置的IP+端口就可以省略了) ,不带参数的api路径。
3)内容编码(Content encoding):
请求数据内容的编码方式,默认值为iso8859编码,但一般content encoding配置为UTF-8,来防止中文乱码。
说明一下Content encoding属性:
Accept-Encoding和Content-Encoding是HTTP中用来对采用哪种编码格式传输正文进行协定的一对头部字段。
工作原理如下:
1、首先浏览器(也就是客户端)发送请求时,通过Accept-Encoding带上自己支持的内容编码格式列表。
2、服务端在接收到请求后,从中挑选出一种用来对响应信息进行编码,并通过Content-Encoding来说明服务端选定的编码信息。
3、浏览器在拿到响应正文后,依据Content-Encoding进行解压。