说明
基于运行架构,也可以分为两种,即(本地化运行或称单机运行)、远程运行,不论是GUI模式还是非GUI模式,都支持本地运行与远程运行。
本地运行:只运行一台JMeter机器,所有的请求从一台机器发出;
远程运行:一台JMeter控制机(Master)控制远程的多台机器(Slave)来产生负载;
负载机:向被测服务器发起负载请求的机器,与其他支持远程运行的测试工具一样,负载机受控制机管理时首先启动一个客户端Agent程序,控制机才可以接管负载机;
控制机:控制机也是一台负载机,只不过是多台负载机中被选中作为管理机的那台机器,所以控制机也可以参与脚本的运行,同时担负着管理和指挥远程的负载机运行的任务,并且收集远程的负载机的测试结果;
远程运行的逻辑是:
远程机首先启动Agent程序(运行jmeter-server.bat);
控制机连接上远程负载机(修改配置文件,会自动探测并连接);
控制机发送指令(脚本及启动命令)启动线程(参数化文件或依赖包需要手工拷贝到远程负载机);
负载机运行脚本,回传状态(包括测试结果);
控制机收集结果并显示;
配置
实验都是在一个机器上
报错1:
[root@vm bin]# ./jmeter-server
Server failed to start: java.rmi.RemoteException: Cannot start. localhost is a loopback address.
An error occurred: Cannot start. localhost is a loopback address.
https://blog.youkuaiyun.com/lcm_up/article/details/17594551
https://www.jianshu.com/p/cbe2c3a76dd5?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
vi system.properties
添加java.rmi.server.hostname=...
报错2:
[root@vm bin]# ./jmeter-server
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (没有那个文件或目录)
An error occurred: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (没有那个文件或目录)
https://blog.youkuaiyun.com/qq_32113189/article/details/80680399
vi jmeter.properties server.rmi.ssl.disable=true
vi user.properties server.rmi.ssl.disable=true
启动成功 默认端口1099
报错3:
重命名 拷贝一个, ./jmeter-server 启动
端口冲突
vi jmeter.properties server_port=1090 修改
运行
jmeter -n -t slave.jmx -R ...:1098, ...:1099 -l test.jtl