问答 请教 jmeter 模拟多设备并发请求 mqtt 接口中遇到的问题

Lemon_107 · 2023年07月17日 · 最后由 Lemon_107 回复于 2023年07月18日 · 6404 次阅读

目前遇到的问题是这样的:用 jmeter 模拟 100 个设备并发请求注册接口(mqtt 协议),但是执行完后进程一直没有停止运行,发现是部分连接没有断开,信息订阅采样器的数量也小于信息发布采样器的数量,连接采样器中是有设置超时间的,请问这个是什么原因呢?



共收到 7 条回复 时间 点赞

检查下结果树

这种情况 有很多种原因,比如设置的超时时间太短,GUI 模式运行结果树也有很大影响性能

tangoliver 回复

结果数中有 3 个订阅取样器的响应数据显示是空的呢,不过发现把请求一次设置为调度器请求 60s 也是会出现的,没有断开的连接数量刚好是线程数,这个是为什么呢

在使用 JMeter 模拟 MQTT 协议时,连接没有正确断开的问题可能有以下几个原因:

  1. 超时设置不正确:确认连接采样器中设置的超时时间是否足够。如果超时时间过短,可能会导致连接没有正确断开。

  2. 缺少手动断开连接的步骤:确认脚本中是否包含了手动断开连接的步骤。在每次请求结束后,应该显式地执行 MQTT 断开连接的操作。

  3. 使用共享连接:在 MQTT 协议中,可以选择使用共享连接 (Shared Connection) 或独立连接 (Dedicated Connection)。如果使用了共享连接,可能需要手动调用释放连接的操作,确保连接得以正确关闭。

  4. 未正确处理连接的状态:部分连接未断开的原因可能是在脚本中未正确处理连接的状态。比如,在多线程运行并发请求的情况下,可能需要使用合适的同步机制,确保每个线程都正确地断开连接。

  5. 服务端配置问题:连接没有正确断开也可能是由于 MQTT 服务器端的配置问题导致的。请检查服务器的配置文件,确认连接超时等相关参数的设置是否正确。

综上所述,您可以逐一排查以上几个方面,来定位和解决连接没有断开的问题。

因为有三个你没有订阅成功,所以就卡在这里了,你发布完成后,没订阅到,他就会一直在那里订阅,把订阅取样器设置成每次的,好像是 1num 这个

king 回复

嗯嗯是 3 个订阅没成功收到响应导致的,目前已经是设置每次收到信息采样一次的了呢~

大海 回复

好的谢谢~

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册