使用JMeter模拟接收类似于okhttp3的websocket广播

问题描述 投票:0回答:1

我正在开发 Android 应用程序,我们使用 okhttp3 打开与后端的 websocket 连接。有 2 个主要的 websocket:

  1. 用于向后端请求信息的请求-响应机制。
  2. 订阅机制,用于接收后端的广播或通知。

问题是我无法在 JMeter 和 Postman 中模拟订阅流程。 Android中的流程是

  1. 通过REST API使用用户名密码登录系统,服务器返回token
  2. 创建新的 OKHttp Websocket 客户端
  3. 向后端发送WebSocket请求,告诉他们我要订阅哪条消息。
  4. 等待后台消息。

然后我创建测试计划如下:

  1. [CSV 数据集配置用户名] 从.csv 文件获取用户名密码
  2. [HTTP登录请求]调用REST API登录
  3. [WebSocket 打开信息] 打开 WebSocket 连接
  4. [WsSubscribeReq] 向后端发送消息,告知我要订阅的消息代码(与Android中使用的消息格式相同)。
  5. [WebSocket Single Read Broadcast] 循环等待传入消息。

我在运行 JMeter 的同时运行我的 Android 应用程序,Android 收到了广播消息,但 JMeter 没有收到任何消息。

我怎样才能让它发挥作用?

websocket jmeter postman okhttp
1个回答
0
投票

以目前的形式,这个问题无法得到全面的回答,所以我只能给你一个通用的提示:如果你发送相同的请求,你应该得到相同的响应。

  1. 使用 sniffer 工具比较源自 Android 应用程序和 JMeter 的请求。
  2. 修改 JMeter 配置,使其发送与 Android 应用程序完全相同的请求
  3. 您应该看到相同的行为

注意所有内容,URL 查询字符串,标头,可以包含非打印字符

的有效负载

还值得通过将下一行添加到 log4j2.xml 文件来为插件启用 JMeter 调试日志记录: <Logger name="eu.luminis" level="debug" />

并检查服务器端日志中是否有任何可疑条目。

© www.soinside.com 2019 - 2024. All rights reserved.