性能测试分享:Jmeter多机协作原理
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478。 在学习的过程中只有对原理知识有了解,才能对所测试的项目有深入的分析,挖掘,才能发现深层次的问题,所以poptest希望在学习的过程中帮助学员扩展技术知识,开拓技术视野,提升个人技术素养。
jmeter分布式测试,即使用一台机器控制多台机器给目标机器产生压力。总控的机器我们叫master,产生压力的机器叫JmeterServer,待我们测试的系统我们叫Target。如果你使用loadrunner,对照起来就是controller作为控制机,在安装有loadgenerator的机器上运行虚拟用户的机器叫做压力机。Jmeter的Master上可以观测到实际测试结果,Jmeter多机器协作中传递信息是使用RMI(远程接口调用)技术, 在这里我们介绍下rmi技术是什么,poptest老李认为教学一定要让学生“ 知其然知其所以然”,所以在poptest教学中很注重案例教学,以及案例后面的逻辑。
1. RMI的原理:
RMI系统结构,在客户端和服务器端都有几层结构。
方法调用从客户对象经占位程序(Stub)、远程引用层(Remote Reference Layer)和传输层(Transport Layer)向下,传递给主机,然后再次经传输层,向上穿过远程调用层和骨干网(Skeleton),到达服务器对象。占位程序扮演着远程服务器对象的代理的角色,使该对象可被客户激活。
远程引用层处理语义、管理单一或多重对象的通信,决定调用是应发往一个服务器还是多个。传输层管理实际的连接,并且追追踪可以接受方法调用的远程对象。服务器端的骨干网完成对服务器对象实际的方法调用,并获取返回值。返回值向下经远程引用层、服务器端的传输层传递回客户端,再向上经传输层和远程调用层返回。最后,占位程序获得返回值。
2. RMI(远程方法调用)的组成:
•远程服务的接口定义
•远程服务接口的具体实现
•桩(Stub)和框架(Skeleton)文件
•一个运行远程服务的服务器
•一个RMI命名服务,它允许客户端去发现这个远程服务
•类文件的提供者(一个HTTP或者FTP服务器)
•一个需要这个远程服务的客户端程序