1、分布式压测:多台机器向一个目标服务器进行压测。(单机器性能有限)
2、jmeter分布式压测原理:主机,肉鸡必须在同一个网段。
1.Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2. 执行时,master会把脚本发送到每台slave上,slave拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
3. 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

2、要求
主机和从机处于一个局域网内,master主机中jmeter.properties中修改文件,这里的主机也当作一个从机
remote_hosts=127.0.0.1:1888,9.9.15.192:1888
server_port=1888
server.rmi.localport = 1888
slave从机中修改:
remote_hosts=127.0.0.1
server_port=1888
server.rmi.localport=1888
主机从机同时启动jmeter-server.bat,主机启动jmeter.bat,启动jmeter服务,点击运行

查看结果树,从机的信息会汇总到主机中查看,这里是没有详细信息:

补充:阿里云开发接口
1、阿里云部署jdk环境
1、阿里云Centos服务器安装jdk环境,参考腾讯实验室:https://cloud.tencent.com/developer/labs/lab/10035
2、上传spring-boot文件到usr/local/app目录下,运行该文件:java -jar gs-spring-boot-0.1.0.jar
3、访问接口地址ip:8080/users,(注意阿里云需要到安全组打开TCP/8080端口)
4、上传apache-jmeter-4.0.tgz至服务器目录/usr/local/jmeter,解压tar zxvf apache-jmeter-4.0.tgz
2、使用本地jmeter编写测试脚本(服务器三接口要开启,ip地址是外网或者内网ip),保存文件上传至/usr/local/jmeter/temp目录。

3、切换到服务器中jmeter的bin目录下,执行测试脚本,./jmeter -n -t /usr/local/jmeter/temp/user_info_api.jmx -l /usr/local/jmeter/temp/result.jtl
常用测试脚本命令
jmeter -n -t linux_users_api.jmx -l result.jtl -e -o /usr/local/softwate/jmeter/temp/ResultReport
jmeter -n -t /Users/jack/Desktop/linux_users_api.jmx -l result.jtl -e -o /Users/jack/Desktop/person/jmeter/temp
4、xftp下载结果报告result.jtl,在jmeter中新建一个summary report,浏览打开报告

3、jmeter压测优化优化(-l 禁用已有的测试报告)
GUI模式:jmeter -n -t test.jmx -l result.jtlListener, 如果使用-l参数,它们都可以被删除或禁用。(禁用观察树)CSV输出而不是XMLCSV Read方式读取。GUI模式向服务器施压 jmtere压测结果转换为Html报表(-l,生成对应报告地址,同时也是防止报错(禁用监听器))
jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl -e -o /usr/local/software/jmeter/temp/result
1、做8万次,查看报告
得到一个html报告,下载到本地后打开,首先表格里面可以看到
其中详细数据意义:
lable:sampler采样器名称
Average:平均响应时间
Min:最小响应时间
Max:最大响应时间
90th pct: 90%的用户响应时间不会超过这个值(关注这个就可以了)
2ms,3ms,4,5,2,6,8,3,9
95th pct: 95%的用户响应时间不会超过这个值
99th pct: 99%的用户响应时间不会超过这个值 (存在极端值)
throughtput:Request per Second吞吐量 qps
received:每秒从服务器接收的数据量
send:每秒发送的数据量
报表里面可以看到:
*
Response Times Over Time:响应时间变化趋势
*Response Time Percentiles Over Time (successful responses):最大,最小,平均,用户响应时间分布
*Active Threads Over Time:并发用户数趋势
*Bytes Throughput Over Time:每秒接收和请求字节数变化,蓝色表示发送,黄色表示接受
*Latencies Over Time:平均响应延时趋势
*Connect Time Over Time:连接耗时趋势
Hits Per Second (excluding embedded resources):每秒点击次数
*Codes Per Second (excluding embedded resources):每秒状态码数量Transactions Per Second:即TPS,每秒事务数Response Time Vs Request:响应时间和请求数对比Latency Vs Request:延迟时间和请求数对比
*
Response Time Percentiles:响应时间百分比
*Response Time Overview:响应时间概述
*Time Vs Threads:活跃线程数和响应时间
*Response Time Distribution:响应时间分布图