JMeter分布式测试问题:登录重复执行+Test Fragment文件未找到
分布式测试配置问题
配置步骤
- 部署1台Master机器和2台Slave机器,已成功建立连接
- 在Master机器上复制了脚本及Test Data文件夹
- 在2台Slave机器上仅复制了Test Data文件夹
- 从Master机器执行分布式测试,场景设置为1线程,登录模块设置为1线程且仅执行一次,预期是登录仅执行一次,场景以2线程分别在Slave1和Slave2运行
遇到的问题
- 问题1:尽管登录模块设置为1线程且仅执行一次,实际登录执行了两次
- 问题2:两台Slave机器均提示
Login Test Fragment.jmx not found
相关截图




问题2的原因及解决办法
Slave机器找不到Login Test Fragment.jmx,是因为仅在Master节点存放了脚本文件,Slave节点缺少这个测试片段依赖。分布式测试时,所有Slave节点都需要能访问到场景依赖的全部脚本文件。
解决方式:把Login Test Fragment.jmx复制到两台Slave机器的JMeter脚本目录;或者在Master端启用远程测试的文件自动分发功能,让Master同步依赖脚本到所有Slave节点。
问题1的原因及解决办法
登录执行两次是因为分布式测试中,每个Slave节点会独立执行你设置的场景结构。你设置的“登录仅执行一次”是单节点层面的配置,2个Slave节点各自执行一次,所以总共两次。
要实现全局仅执行一次登录,需调整方案:
- 先在Master单独执行登录脚本,将登录后的会话信息(如Cookie、Token)存入共享存储(比如共享文件、Redis)
- 让两台Slave在执行主场景前,从共享存储读取会话信息,直接复用该会话开展后续操作
- 或者将登录模块从分布式场景中剥离,单独执行一次后,再让Slave基于登录后的上下文运行主业务场景
内容的提问来源于stack exchange,提问作者Chinni
相关产品推荐
相关产品推荐

