在使用Jmeter进行接口的性能测试时 , 由于Jmeter 是JAVA应用 , 对于CPU和内存的消耗比较大 , 所以 , 当需要模拟数以万计的并发用户时 , 使用单台机器模拟所有的并发用户就有些力不从心 , 甚至会引起JAVA内存溢出错误 。为了让jmeter工具提供更大的负载能力 , 这时可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试 。
一、Jmeter分布式执行原理:
1、Jmeter分布式测试时 , 选择其中一台作为控制机(Controller) , 其它机器做为代理机(Agent) 。
2、执行时 , Controller会把脚本发送到每台Agent上 , Agent 拿到脚本后开始执行 , Agent执行时不需要启动Jmeter , 只需要把jmeter-server.bat文件打开 , 它应该是通过命令行模式来执行的 。
3、执行后 , Agent会把结果回传给Controller , Controller会收集所有Agent的信息并汇总 。
二、代理机(Agent)配置:
1、Agent机上需要安装JDK、Jmeter , 并且配置好环境变量 。
2、打开“运行” , 输入"cmd",打开运行面板 , 输入“ipconfig” , 找到IP地址 , 例如是:192.168.8.149
文章插图
3、打开Jmeter/bin/jmeter.properties , 找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,1099是端口号 , 可以随意自定义 。
文章插图
4、打开jmeter-server.bat文件 , 就设置完成了 , 等待控制机(Controller)启动 。
三、控制机(Controller)配置:
1、Controller机上需要安装JDK、Jmeter , 并且配置好环境变量 。
2、打开“运行” , 输入"cmd",打开运行面板 , 输入“ipconfig” , 找到IP地址 , 例如是:192.168.8.174
文章插图
3、打开Jmeter/bin/jmeter.properties , 找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:1099 , 1099是端口号 , 可以随意自定义 。如果有多台代理机 , 这里需要把所有的代理机的IP地址和端口号都加入进来 。
文章插图
【Jmeter分布式部署测试做压力性能测试】
4、打开jmeter-server.bat文件 , 设置完成了 。
四、开始添加线程组和请求来运行查看结果:
1、打开jmeter.bat文件 , 添加线程组 , 编辑线程数 , 这里设置100个线程数 , 循环2次 , 就是一台机器发送100*2=200个请求 。
文章插图
2、添加HTTP请求 , 这里以访问淘宝为例 。
文章插图
3、添加察看结果数和聚合报告 , 点击运行 , 可以选择远程启动或者远程全部启动 , 如果是点击远程启动 , 可以选择任意一台电脑来运行 , 如果是点击远程全部启动就会运行控制机和所有的代理机 。
文章插图
4、这里以点击远程全部启动为例 。运行结束后 , 查看聚合报告 , 每台电脑设置的线程数为200 , 这里一共是两台电脑 , 所以是200*2=400个线程数 。
文章插图
推荐阅读
- 常见的分布式Id生成器剖析
- 什么是Dubbo框架?
- 使用docker部署golang服务
- 附带idea两种热部署设置方法 Tomcat下载安装并部署到IDEA
- 什么是分布式SQL
- 了解四种软件架构:Serverless、微服务、分布式、单体
- Golang的简单介绍及Windows环境下安装、部署
- SSL和TLS部署注意事项
- Mac 本地Kubernetes部署
- Docker Swarm从部署到基本操作