1、取样器介绍
取样器是用来模拟用户操作的,向服务器发送请求以及接收服务器的响应数据。
取样器是在线程组内部的元件,也就是说取样器只能在线程组中添加。
取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元。(取样器通常要进行这三个工作)
2、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 RequestJMS 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
:邮件阅读者取样器
3、AccessLog Sampler
Access Log Sampler 可以收集和分析真实用户操作的数据,并可用于流量分析,更适合get接口的压测。常见的就是我们的nginx的access.log 日志。
先新建个AccessLog sampler取样器,配置协议、服务地址、端口、文件路径就可以进行压测
access_log:⽤来指定⽇志⽂件的存放路径、格式
Nginx ⽇志参数如下:
$remote_addr
客户端地址
127.0.0.1
$remote_user
客户端⽤户名称
$time_local
访问时间和时区
18
/Dec/
2019
:
17
:
00
:
01
+
0800
$request
请求的
URI
和
HTTP
协议
"GET /index.html HTTP/1.1"
$http_host
请求地址,即浏览器中你输⼊的地址(
IP
或域名)
www.baidu.com
192.168
.
100.100
$status HTTP
请求状态
200
$upstream_status upstream
状态
200
$body_bytes_sent
发送给客户端⽂件内容⼤⼩
1547
$http_referer url
跳转来源
https:
//www.baidu.com/
$http_user_agent
⽤户终端浏览器等信息
"Mozilla/4.0 (compatible; MSIE 8.0; Windows
NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
$upstream_addr
后台
upstream
的地址,即真正提供服务的主机地址
10.10
.
10.100
:
8000
$request_time
整个请求的总时间
0.205
$upstream_response_time
请求过程中,
upstream
响应时间
0.002
nginx场景log解析:awk
查找访问频率最⾼的 URL 和次数:
cat access.log | awk -F ‘^A’ ‘{ print $10}’ | sort | uniq -c
查找当前⽇志⽂件 500 错误的访问:
cat access.log | awk -F ‘^A’ ‘{ if( $5 == 500) print $0}’
查找当前⽇志⽂件 500 错误的数量:
cat access.log | awk -F ‘^A’ ‘{ if( $5 == 500) print $0}’ | wc -l
查找某⼀分钟内 500 错误访问的数量:
cat access.log | awk -F ‘^A’ ‘{ if( $5 == 500) print $0}’ | grep ’09:00’ | wc -l
查找耗时超过 1s 的慢请求:
tail -f access.log | awk -F ‘^A’ ‘{ if( $6>1) print $0}’
假如只想查看某些位:
tail -f access.log | awk -F ‘^A’ ‘{ if( $6>1) print $3″|” $4}’
查找 502 错误最多的 URL:
cat access.log | awk -F ‘^A’ ‘{ if($5== 502) print $11}’ | sort | uniq