jmeter分布式压测
- Jemter分布式压测是,选择其中一台作为调度机(master),其他机器作为执行机(slave);当然一台机器也可以既做调度机,也做执行机。
- 调度机执行脚本的时候,master将会jmx脚本分发到slave上,slave拿到脚本后以非GUI的形式开始执行。
- slave执行完毕后将结果回传给master,并由master进行结果的汇总。
-
- 总结:slave上JDK和Jmeter版本尽量和master上保持一致。
- https://blog.51cto.com/11009785/2388318?source=dra
- 修改slave(奴隶)上的配置
修改master上的配置
在master上启动服务服务,看结果
- slave的响应结果在master的查看结果数上看不到,但是聚会报告是可以看到的
-
启动远程slave提示:connect time out 检查防火墙,端口,netstat -ano -p tcp | find "135" >nul 2>nul && echo 135端口已开启 || echo 135未开启 查看端口是否开启
一般的压测,需要运维开发等配合,我们接口调试好,开始跑之后,运维给到一些服务器性能数据
- 压测,把测试范围,环境准备好
- 看cpu,服务器
-
)压测范围确定,依据:流量、流程、重要性等
2)压测方案确定
3)性能目标确定,通用公式如下:
预估QPS = 总PV*80%/(3600*h*20%)*x,h根据系统集中运行时间确定,公式根据二八原则确定,x是系数
每天总PV = QPS * 3600 * h,
QPS(TPS)= 并发数/平均响应时间
-
qps预估量:
一般预估是有开发测试运维同学一起评估。采用8/2原则。即80%的请求访问在20%的时间内到达。此时根据系统pv测算出qps值
峰值qps=(总Pv * 80%)/(60*60*24*20%)。 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
然后再将峰值qps/单台能承受的最高qps,就是需要的机器数量。
机器数= 总峰值pqs/压测单台机子极限qps - 问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持?
答:139 / 58 = 3 -
4)资源配置,可据此做预估
压力机: 8u20M可支撑400并发
部署环境:Tomcat服务器单节点支持150的并发,若响应时间要求不高,支撑并发数可>150
共享带宽 80 可支撑 1000qps
- FileWriter file=new FileWriter("./cardId.txt",true);
BufferedWriter out = new BufferedWriter(file);
out.write(vars.get("mobile"));//提取出来的msg
out.write(",");//换列
out.write(vars.get("open_id"));//提取出来的card_id
out.write(",");//换列
out.write(vars.get("brand_member_card_id"));
out.write(System.getProperty("line.separator"));//换行
out.close();
file.close(); - https://www.cnblogs.com/zenghongfei/p/15148781.html 写的比较好的
-
- FileWriter file=new FileWriter("./cardId.txt",true);