中音阶梯网站谁家建设,网站建设哈尔滨网站优化4,服务器能放多少个网站,共和网站建设公司秒秒开心jmeter命令行运行-分布式测试 上一篇文章我们说到了jmeter命令行运行但是是单节点下的#xff0c; jmeter底层用java开发#xff0c;耗内存、cpu#xff0c;如果项目要求大并发去压测服务端的话#xff0c;jmeter单节点难以完成大并发的请求#xff0c;这时就需要… 秒秒开心 jmeter命令行运行-分布式测试 上一篇文章我们说到了jmeter命令行运行但是是单节点下的 jmeter底层用java开发耗内存、cpu如果项目要求大并发去压测服务端的话jmeter单节点难以完成大并发的请求这时就需要对jmeter进行分布式测试 1先说说分布式测试原理 处理过程 一调度机master启动以后会拷贝本地的jmx文件分发到远程的slave机器上 二slave机器拿到脚本以后启动命令行模式去执行脚本对于每台slave机器拿到的脚本都是一样的所以如果jmx脚本为50个线程跑3分钟那么实际并发就是50*3150个线程并发跑3分钟 三执行时slave会把执行获得的数据结果传给master机器master机器会收集所有slave机器的信息并汇总这样master机器上就存在一份所有slave机器汇总的数据结果。 注意事项 一我们注意到master机器启动后会拷贝jmx文件到slave机器所以我们不需要在每台slave机器上也上传一份jmx只需要在master机器上上传一份jmx脚本即可。 二参数化文件如果使用csv进行参数化那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。 三调度机(master)和执行机(slave)最好分开由于master需要发送信息给slave并且会接收slave回传回来的测试数据所以mater自身会有消耗所以建议单独用一台机器作为master。 四保证每台机器的jmeter版本和插件版本相同避免造成一些意外问题。 五分布式测试总样本数 线程数 * 循环次数 * 执行机总数 样本计数逻辑为执行机slave执行的测试脚本是由调度机master分发的故每台执行机执行的测试脚本都是相同的故而性能测试总样本数 测试脚本样本数 * 执行机总数而测试脚本样本数为线程数 * 循环次数 2说完了原理现在我们来说如何做jmeter分布式测试 在所有需要做分布式的机器上部署java和jmeter要求需要保证每台机器上部署的jmeter版本相同插件版本也相同最好部署在同一路径下(这样如果有csv参数化比较方便)部署jmeter很简单只需从官网下载相应版本然后传到服务器上进行解压缩就可以了这里给出我的云盘地址http://pan.baidu.com/s/1bI3r2I 密码f5ll。 比如我部署在134.64.14.95、134.64.14.96、134.64.14.97、134.64.14.98四台机器上每台机器部署路径为/home/tester 修改slave机器bin目录下的jmeter.properties配置我的3台slave机器为134.64.14.96、134.64.14.97、134.64.14.98修改3台slave机器jmeter/bin目录下的jmeter.properties中server_port端口号为机器未被占用的端口号一般默认为1099此处我修改为7899(可以使用默认端口或者改成其他端口只要未被占用就行)remote_hosts为127.0.0.1不需要修改 修改完成保存我配置的3台机器为 134.64.14.96机器(remote_hosts127.0.0.1、server_port7899) 134.64.14.97机器(remote_hosts127.0.0.1、server_port7899) 134.64.14.98机器(remote_hosts127.0.0.1、server_port7899) 完成slave机器的配置后此时配置master机器我的1台master机器为134.64.14.95注意到由于master机器作为调度机本身会有一定的性能消耗所以我们配置远程执行机的时候并没有把master机器配置进去只配置了3台执行机 修改完成保存我配置的1台机器为 134.64.14.95机器(remote_hosts134.64.14.96:7899,134.64.14.97:7899,134.64.14.98:7899、server_port注释掉不用打开) 完成了所有机器配置后我们需要上传测试脚本测试时只需要上传jmx文件到master机器即134.64.14.95机器的jmeter对应目录即可其他执行机不需要上传jmx文件因为master启动后会拷贝本地jmx到远程执行机上 现在我们来启动分布式测试启动分布式测试分两步一首先启动执行机即slave机器134.64.14.96、134.64.14.97、134.64.14.98每台slave机器都需要执行以下命令来启动jmeter-server 命令为./jmeter-server 二确认3台slave执行机都启动正确完成后在启动master机器134.64.14.95执行如下命令开启分布式测试 命令为./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl 3测试命令说明 ./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl n表示无GUI运行 t表示要运行的jmx文件 l指生成的文件名称 r指远程将所有agent启动 4测试结果说明 注意到上面控制台打印的信息中 summary 5504 in 00:00:02 3590.3/s Avg: 1 Min: 0 Max: 174 Err: 5504 (100.00%) Active: 59 Started: 58 Finished: 0summary 1224043 in 00:00:30 40802.8/s Avg: 0 Min: 0 Max: 188 Err: 1224043 (100.00%) Active: 60 Started: 59 Finished: 0 summary 1229547 in 00:00:32 38989.9/s Avg: 0 Min: 0 Max: 188 Err: 1229547 (100.00%) 解析 summary为请求数目指在多少时间内增加了多少请求数目由此算出后面的3590.3/s、40802.8/s、38989.9/s也就是每秒完成请求数(吞吐量)每隔一段时间打印一行最后一行可以看到请求总数为8213739平均吞吐量为45495.4/s(每秒完成请求数) summary 8213739 in 00:03:01 45495.4/s Avg: 0 Min: 0 Max: 191 Err: 8213739 (100.00%) 另外active60指活跃线程数我们用3台机器并发测试每台运行的脚本都为20个线程3分钟所以在线活跃线程数为20*360个运行时间为3分钟 错误率为可以看出服务器能否承受这么大的并发这里都是100%报错是由于同一ip短时间并发请求百度百度是不允许的所以会被拒绝发生报错 当然我们除了看控制台的信息以外性能测试还需要关注所有测试机器以及被测试机器的服务器指标如cpu、磁盘io、内存消耗等以及服务端和客户端日志信息 对于生成的jtl文件我们可以进行解析生成我们关注的信息如吞吐量、响应时间、点击率、错误率等等 对于jtl文件的如何转换成图表及解析在我的博客jmeter系列博文之-jmeter之jtl测试报告中有详细说明 转载于:https://www.cnblogs.com/AmilyWilly/p/9010181.html