1、Jmeter的基本原理
Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行中通过断言来验证结果正确性,通过监听器来记录测试结果。
2、Jmeter分布式运行
(1)分布式执行原理
Jmeter分布式测试时,会选择一台调度机(master),其它机器为执行机(slave)。执行时,master会把脚本发送到每台slave上,slave拿到脚本后就开始执行,slave执行时不需要启动GUI。执行完成后,slave会把结果传回给master,master会收集所有slave的信息并汇总。
(2)执行机(slave)配置
A.slave机器上需要安装Jmeter。
B.添加环境变量:JMRMER_HOME=执行机Jmeter安装路径
C.在slave上自定义端口号,定义方法如下:
进入slave的Jmeter的bin目录下,找到Jmeter.properties文件,打开文件修改两个配置项,修改端口号为:1099
server_port=1099
server.rmi.locaport=1099
D.启动slave上的Jmeter上的Jmeter-server.bat,可以查看到端口号已经修改成功。
(3)调度机(master)配置
A.在master上添加远程slave:进入Jmeter的bin目录下,找到Jmeter.properties文件,将负载机的IP地址和端口号添加到remote_hosts后面,如果多台负载机用逗号隔开。
remote_hosts=192.168.1.13:1099,192.168.1.14:1099,192.168.1.15:1099
B.重新启动Jmeter,选择运行-远程运行,可以查看到slave的IP地址和端口号。
C.如果调度机远程全部执行,master上设置了1个并发,三台slave,那么就有3个并发。
***注意:
如果连接失败请检查:
A.是否关闭了防火墙
B.是否禁用了所有的虚拟网卡
确保Jmeter-server.bat显示的IP地址就是控制机配置文件(Jmeter.properties)中的remote_hosts的地址。
C.保证master和slave的JDK,Jmeter以及插件等配置版本一致
D.数据、图片等文件,master和slave地址一致
3、Jmeter常见组件
Jmeter的组件有线程组、取样器、前置处理器、后置处理器、定时器、配置元件、断言、监听器、逻辑控制器。
(1)线程组
常用的线程组包括单线程、阶梯线程(jp@gc - Stepping Thread Group)和浪涌线程jp@gc - Ultimate Thread Group
(2)取样器
常用的取用器包括http取样器、FTP取样器、JDBC请求、Bean Shell取样器等
(3)定时器
1)固定定时器
让每个线程都停顿指定的时间,不会计入单个的sampler的响应时间,但会计入事物控制器的时间。
2)同步定时器
同步定时器的意思是集合点,就是等到设定的用户数量后再执行某个操作。在分布式运行中不建议使用。
Number od Simulated Users to Group by:需要集合的人数
Timeout in miliseconds:集合人数的最长时间,单位是毫秒。输入0表示没有超时时间,一直等下去,直达集合到指定人数。
(4)断言
常用的断言方式为响应断言,断言响应返回数据是否包含对应字段。
(5)监听器
监听器包括对服务器各种指标监控和请求监控
(6)csv参数化(配置元件)
Jmeter 常用的参数化方式_雷鸣的击的博客-CSDN博客
(7)正则表达式(后置处理器)
(8)控制器
包括if控制器、switch controller(开关控制器)、事物控制器、吞吐量控制器、for each控制器
(9)JSON提取器(后置处理器)