如何为 sockets.io 场景正确构建 JMeter 测试计划 - 事件 "subscription"
How to structure a JMeter test plan properly for a sockets.io scenario - event "subscription"
场景大纲
测试发送 REST API 请求以激活游戏。
网站收到 socket.io 事件并在浏览器上显示警报。
问题
因为我不知道什么时候发送事件,我是否需要 运行 一个 WebSocket 采样器,或者一个 WebSocket 单读采样器,在一个循环中,直到我得到匹配的消息?
到目前为止,在我的尝试中,我可以连接到事件服务器并获取消息,但它们是空帧或消息与下面的完全不同。
我期待这样的消息,我可以使用浏览器调试器手动验证它。
{
"locationId": 110,
"name": "GAME_STARTED", <---------------------
"payload": {
"id": 146418,
"boxId": 2002,
"userId": 419,
"createdAt": "2022-02-17T09:10:16",
"lastModifiedAt": "2022-02-17T09:10:22.189",
"completedAt": "2022-02-17T09:10:22.07",
"activationMethod": "TAG",
"nfcTagId": "123423423412342134",
"gameCount": 1,
"app": false
}
}
或者,这行得通吗?
thread A:
open socket
while (true):
read socket
if message ~ 'GAME_STARTED':
break
thread B:
send HTTP REST API request # triggers event to be sent
这里是用于连接的参数以及我指定响应模式的位置,这需要通配符或 JSON 表达式。
您可以考虑使用WebSocket Text Frame Filter
如果你添加像上面配置的过滤器,它会删除所有不包含 GAME_STARTED
文本的帧,这样 WebSocket 单读采样器就不会“看到”它们,这样你就可以只有一个没有任何循环或其他逻辑的采样器。
更多信息:
场景大纲
测试发送 REST API 请求以激活游戏。 网站收到 socket.io 事件并在浏览器上显示警报。
问题
因为我不知道什么时候发送事件,我是否需要 运行 一个 WebSocket 采样器,或者一个 WebSocket 单读采样器,在一个循环中,直到我得到匹配的消息? 到目前为止,在我的尝试中,我可以连接到事件服务器并获取消息,但它们是空帧或消息与下面的完全不同。
我期待这样的消息,我可以使用浏览器调试器手动验证它。
{
"locationId": 110,
"name": "GAME_STARTED", <---------------------
"payload": {
"id": 146418,
"boxId": 2002,
"userId": 419,
"createdAt": "2022-02-17T09:10:16",
"lastModifiedAt": "2022-02-17T09:10:22.189",
"completedAt": "2022-02-17T09:10:22.07",
"activationMethod": "TAG",
"nfcTagId": "123423423412342134",
"gameCount": 1,
"app": false
}
}
或者,这行得通吗?
thread A:
open socket
while (true):
read socket
if message ~ 'GAME_STARTED':
break
thread B:
send HTTP REST API request # triggers event to be sent
这里是用于连接的参数以及我指定响应模式的位置,这需要通配符或 JSON 表达式。
您可以考虑使用WebSocket Text Frame Filter
如果你添加像上面配置的过滤器,它会删除所有不包含 GAME_STARTED
文本的帧,这样 WebSocket 单读采样器就不会“看到”它们,这样你就可以只有一个没有任何循环或其他逻辑的采样器。
更多信息: