博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jmeter分布式测试
阅读量:5895 次
发布时间:2019-06-19

本文共 1354 字,大约阅读时间需要 4 分钟。

关于jmeter的介绍和元件作用,之前的博客介绍过,很多其他同行的博客也够详细的,这里不做介绍,对jmeter不甚了解的可以参考之前的博客:

jmeter官方文档:

jmeter源码:

 

一、为什么要使用分布式测试

按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。

有时候为了尽量模拟业务场景,需要模拟大量的并发请求,这个时候单台压力机就显得有心无力。针对这个情况,jmeter的解决方案是支持分布式压测,即将大量的模拟并发分配给

多台压力机,来满足这种大流量的并发请求场景。

 

二、分布式压测的原理

1、分布式测试中,选择一台作为管理机(Contorller),其他的机器作为测试执行的代理机(Agent);

2、执行测试时,由Contorller通过命令行将测试脚本发给Agent,然后Agent执行测试(不需要启动GUI),同时将测试结果发送给Contorller;

3、测试完成,可以在Contorller上的监听器里面看到Agent发来的测试结果,结果为多个Agent测试结果汇总而成;

 

三、分布式设置步骤

1、修改Contorller配置

打开Contorller机下jmeter安装文件下的bin目录:jmeter.properties文件,搜索remote_hosts=127.0.0.1,将Agent机的IP和端口写在后面,比如:

 remote_hosts=127.0.0.1,127.0.0.2:80,127.0.0.3:80 

其中127.0.0.2和127.0.0.3为Agent机的IP,每个Agent机之间用英文半角逗号隔开,修改保存。

2、启动jemter

启动jmeter后,设置线程组、配置元件、取样器、监听器等原件,点击“运行-远程启动”:

可以选择远程启动一个Agent机,或者选择远程全部启动,这样,就可以进行分布式测试了。

PS:上面的例子中,127.0.0.2和127.0.0.3为举例说明,具体实践请修改为对应的Agent机IP以及端口。

 

四、注意事项

1、保持Contorller和Agent机器的JDK、jmeter以及插件等配置版本一致;

2、如果测试数据有用到CSV或者其他方式进行参数化,需要将data pools在每台Agent上复制一份,且读取路径必须保持一致;

3、确保Contorller和Agent机器在同一个子网里面;

4、检查防火墙是否被关闭,端口是否被占用(防火墙会影响脚本执行和测试结构收集,端口占用会导致Agent机报错);

5、分布式测试中,通过远程启动代理服务器,默认查看结果树中的响应数据为空,只有错误信息会被报回;

6、如果并发较高,建议将Contorller机设置为只启动测试脚本和收集汇总测试结果,在配置文件里去掉Contorller机的IP;

7、分布式测试中,如果1S启动100个模拟请求,有5个Agent机,那么需要将脚本的线程数设置为20,否则模拟请求数会变成500,和预期结果相差太大

转载于:https://www.cnblogs.com/wbbk/p/8675066.html

你可能感兴趣的文章
WebStorm 2018.3.1 安装与注册 2019.5.31更新
查看>>
validate验证
查看>>
ROADS
查看>>
SpringBoot-Web配置
查看>>
ACdream 1112
查看>>
零基础学PHP需注意的细节问题(Continuous updating)
查看>>
立方体
查看>>
排序算法
查看>>
[Java] HashMap 源码简要分析
查看>>
virtualbox macosx10.9改变分辨率方法
查看>>
VUE 动态菜单管理
查看>>
IE11日期控件显示光标问题
查看>>
Java反射机制集中学习
查看>>
好用的抓取dump的工具-ProcDump
查看>>
阅读《构造之法》2
查看>>
linux生成自验证ssl证书的具体命令和步骤
查看>>
【Big Data - ELK】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
查看>>
Poi解析Excel
查看>>
读我是一只IT小小鸟有感
查看>>
TCP/TP编程 - 一个简单的Linux下C写的socket服务器客户端程序
查看>>