1、JMeter简介
JMeter可用来模拟用户负载来完成性能测试工作
2、JMeter结构图
X1-X5:是负载模拟的一个过程,使用这些组件来完成负载的模拟
Y1:包含的是负载模拟部分,负责模拟用户请求
Y2:结果验证部分,负责验证结果正确性
Z:负载结果的收集,监听器不仅可以放在线程组之内,也可以放在线程组之外。
JMeter基本原理:
是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。
- 如果取样器中有参数化的需求,可以通过X2中的配置元件或者前置处理器来完成。
- 如果有关联需求,可以通过后置处理器来完成。
- 如果想要设置运行场景,如模拟多少用户,运行多长时间,可以设置线程组。
- 如果想要模拟并发场景,可以利用定时器来设置。
- 如果想要控制业务的执行逻辑,如登陆操作只运行一次,可以使用控制器来完成。
3、JMeter支持远程运行:
架构图:
- 控制机:运用多台JMeter负载机进行性能测试时,被选中作为管理机的那台机器即是控制机。JMeter控制机也可以参与脚本的运行;同时它也担负着管理远程负载机指挥远程负载机运行的任务,并且收集远程负载机的测试结果。
- 负载机:向被测试应用服务器发起负载的机器,控制机同时也是一台负载机。若负载机想要被控制机控制,负载机上需要运行一个客户端程序(Agent:jmeter-server.bat)。启动后,控制机便可以把运行的脚本隐蔽娣发送到远程的负载机。但是如果运行的测试脚本有参数文档及依赖的jar包时,控制机并不能把他们发送到远程的负载机,这种情况需要手动拷贝,不过在使用JMeter做性能测试自动化时,不能这样操作,需要使用工具来实现自动拷贝。
- 远程运行逻辑:
远程负载机首先启动Agent程序,待控制机连接;
控制机连接上远程负载机;
控制机发送指令(脚本及启动命令)启动线程;
负载机运行脚本,回传状态(包括测试结果);
控制机收集结果并显示;
4、JMeter环境介绍
JMeter工具目录介绍
- Bin:放置了各项配置文件(比如日志设置、JVM设置等)、启动文件(JMeter启动快捷方式,报告生成快捷方式,Heap Dump快捷方式等)、启动jar包、示例脚本等。
- Docs:放置了JMeter API离线文档,Web方式。
- Extras:JMeter辅助功能,提供与Ant、Jenkins集成的可能性,我们可以利用Ant与Jenkins来构建性能测试自动化构架。Ant可以利用xsl脚本把XML格式的测试结果以HTML方式展示。
- Lib:JMeter组件以jar包的形式放置在lib/ext目录下,需要扩展的JMeter组件的jar包放在此目录即可。JMeter支持运行Junit测试类,其测试包放在lib/junit目录下。
- licenses:JMeter licenses相关声明信息放在此文件夹,全部是文本文件。对测试没有任何实际意义。
- printable_docs:JMeter的离线帮助文件放置目录,是我们学习JMeter的绝好向导。
- LICENSE:License说明文件。
- NOTICE:版权声明。
- README:JMeter简明介绍。