mqtt - 如何创建自定义 JMeter 预处理器以将 json 有效负载转换为 MQTT 二进制数据包
问题描述
我需要一个 JMeter 预处理器,它将 JSON 字符串转换为 MQTT 数据包,即二进制数据。然后将使用 JMeter Web 套接字插件通过 Web 套接字发送二进制数据 - https://github.com/ptrd/jmeter-websocket-samplers
我对 JMeter 比较陌生,希望能对此提供任何帮助。有关项目方案,请参阅我之前的问题:
解决方案
您好心地提供了该文档的链接,该文档说:
请求-响应采样器以及单读和单写采样器同时支持文本和二进制帧。对于二进制帧,以十六进制格式输入有效负载,例如,
0xca 0xfe
或ba be
所以
- 文本数据可以按原样发送(JSON 或多或少是纯文本)
- 二进制(非文本)数据需要先转换为十六进制
所以你需要确定你到底需要什么,因为你当前的需求有点模糊和矛盾。
如果您正在寻找将字符串转换为十六进制的函数 - 您可以使用JSR223 PreProcessor和类似的东西:
def hex(byte[] data) {
def rv = new StringBuilder();
data.each { aByte ->
rv.append('0x').append(String.format("%02x", aByte)).append(' ');
}
return rv.toString();
}
演示:
有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - 为什么以及如何使用它
推荐阅读
- python - TypeError:不理解数据类型“列表”
- javascript - 我必须更改 cookie 的数组索引才能工作
- c# - SharePoint API 请求失败
- python - Autokeras - 获取类名
- excel - VBA - For ...下一个循环
- unity3d - 我怎样才能完美地翻转该图像?
- kotlin - Kotlin - 更改字符串列表中的元素
- linux - 我如何修复 SCP 在 Makefile 内部不起作用
- macos - make: *** 没有指定目标,也没有找到 makefile。在狗狗币中的 ./configure 之后停止?
- python - Pyspark - 操纵数据框以获取状态的时间变化