JMeter记录篇4——JMeter运行原理
JMeter运行原理
JMeter通过线程组来驱动多个线程(类似LoadRunner中的虚拟用户)运行测试脚本对被测试服务器发起负载,每一个负载机上都可以运行多个线程组,JMeter运行场景不仅可以在GUI方式完成,还可通过命令行的方式运行,命令行的运行方式对于负载机的资源消耗会更小。
JMeter远程运行架构图:
控制机:运用多台JMeter负载机进行性能测试时,被选中作为管理机的既控制机。JMeter中控制机也可以参与脚本的运行,同时它也担负着管理远程负载机指挥远程负载机运行的任务,并且收集远程负载机的测试结果。
负载机:向被测试应用服务器发起负载的机器,控制机同时也是一台负载机。JMeter中负载机受控制机管理。负载机受控制机管理首先要启动一个客户端程序(Agent: jmeter-server.bat)这样控制机才可以接管负载机。控制机会把运行的脚本隐蔽的发送到远程负载机,但是如果运行的测试脚本有参数文件及依赖的jar包时,控制机并不能把它们发送到远程负载机,这种情况就需要手动拷贝了,当然在利用JMeter做性能自动化时可不能这样,可以用工具来实现自动拷贝。
远程运行逻辑:
远程负载机首先启动Agent程序,待控制机连接;
控制机连接上远程负载机
控制机发送指令(脚本及启动命令)启动线程
负载机运行脚本,回传状态(包括测试结果)
控制机收集结果并显示。
此文章参见《全栈性能测试修炼宝典》与官方文档《分布式测试》