1.同步定时器
模拟用户组的数量:每次释放的线程数量。当设置为0时,等同于线程组中设置的用户数量,当设置为20时,即当用户达到20时同时释放,当设置的数量大于线程数时,设置无效(数量不可设置为大于线程组中的线程数)
超时时间以毫秒为单位:当设置为0时,即当用户数量达到了设置的数量时则释放,否则一直等待,当设置为1000时,则当时间达到1000时,就释放已经集合的线程,不再等待
同步定时器(Synchronizing Timer)的超时时间设置要求: 超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)
2.HTTP请求默认值
将同一线程组下所有HTTP请求的协议和服务器域名做一个统一的管理
如果HTTP请求中自己填写的协议和服务器的域名,当发送请求时使用本身的
3.用户参数,将后面接口用到的相同的接口的值进行参数化,方便以后修改
调用: ${schoolId} ${classId}
4.jmeter 的分布式运行方法
master
1.修改文件jmeter.propertoes
第一个位置:remote_hosts=master,slave,slave(逗号分割)
第二个位置端口号:
server_port=1099
server.rmi.localport=1099(这个不该启动jmeter.server 的时候端口号不会变)
第三个位置:
server.rmi.ssl.disable=true(false改成true)
slave
1.如果端口占用修改端口
server_port=1099
server.rmi.localport=1099(这个不该启动jmeter.server 的时候端口号不会变)
2.server.rmi.ssl.disable=true(false改成true)
启动分布式之前必须要先启动jmeter.server
然后在jmeter中点击
运行-远程启动所有就起来的了
注意:
1.当出现这个问题的时候
Connection refused to host: 192.168.8.36; nested exception is:
java.net.ConnectException: Operation timed out (Connection timed out)
解决:
检查
2.当出现Engine is busy - please try later
解决:
1.在停止jmeter测试的同时,使用master中的' Remote Stop all '选项,这会杀死远程机进程上正在运行的线程。
2.远程机的jmeter重新启动“jmeter-server.bat”,并重新开始测试。
之前用虚拟机所以配置了虚拟网卡,有wifi和物理网线同时都有情况下,Jemeter远程测试会报“Engine is busy – please try later”错.禁用所有的虚拟网卡
5.报告的生成
第一种通过命令行直接生成报告
1.cd 到bin目录下
2.执行
./jmeter -n -t 脚本路径 -l result.html -e -o 存放路径
3.去对应文件夹去查就行
第二种 从GUI方式生成报告
以上2中方式无论哪种方式,可能会提示文件已存在,直接删除文件夹,然后重新创建,就可以了