【问题标题】:in JMeter, how to send a 4 byte message to a JMS publisher在 JMeter 中,如何向 JMS 发布者发送 4 字节消息
【发布时间】:2018-12-16 17:06:48
【问题描述】:

不要以为这是专门问这个的。

我必须对使用 ActiveMQ 主题的应用程序运行性能测试。采样器需要将 4 字节的数据发布到主题中,通常格式为(如果您查看十六进制值)0x006403D6。

如果你把它们翻译成小数,它们将是

0x03D6 = 00000011 11010110 ==> 982 ==> 03,D6 ==> 03, 214 ==> 3,214 0x0064 = 00000000 01100100 ==> 100 ==> 00,64 ==> 00, 100 ==> 0,100

所以上面的例子中 4 个字节是 [0,100,3,214]。

为了完成这项工作,我使用了 JMSPublisher。

下面是配置:

因为我必须发送一个字节流,所以我想使用文件中的 ByteMessage。

我在上面尝试了配置文件中的不同内容。但 non 会给我 [0,100,3,214]。

看起来 JMeter 确实将文本、字符转换为字节值。因此,如果我有一个空文件,主题将显示为 0,应用程序会将其视为 [0,0,0,0](应用程序仅考虑前 4 个字节)

如果我有 ????在文本文件中我得到 [63,63,63,63] (作为 ? ==> 00111111 ==> 63 十进制)。 但是如果我必须让第一个字节为 0,我无法通过它吗?因为我找不到代表 0 的字符。

可能有更好的方法来做到这一点。请指教?

【问题讨论】:

    标签: jmeter jms activemq jms-topic


    【解决方案1】:

    查看JMS Sampler JavaDocsetContent() 函数仅接受字符串,因此无法将字节传递给它,因为 JMeter 会将它们视为简单字符串。

    但是,根据JMS Publisher documentation,您应该能够发送您想要的任何内容假设对象是由XStream 序列化的

    Object 消息的实现和工作方式如下:

    • 将包含您的对象及其依赖项的 JAR 放在 jmeter_home/lib/ 文件夹中

    • 使用 XStream 将对象序列化为 XML

    • 要么将结果放在以 .txt 或 .obj 为后缀的文件中,要么将 XML 内容直接放在文本区域中

    请注意,如果消息在文件中,则不会发生属性替换,而如果使用文本区域则会发生。

    另外请注意,您始终可以切换到 JSR223 Sampler 并使用 Groovy 代码中的 ByteMessage 类。

    【讨论】:

    • 谢谢...。我在stackoverflow.com/questions/50359111/… 看到了这个答案。但不确定在上述步骤中我需要做什么。在我上面的例子中,如果我必须将 4 个字节发送到 Java 中的主题,ID 是 javax.jms.MessageProducer..send(javax.jms.BytesMessage)。这是否意味着,我必须将 javax.jms.* jar 放在 jmeter_home/lib/ 文件夹中?如果是这样,我必须使用 XStream 序列化 javax.jms.BytesMessage 并生成一个 xml 并放置在文本区域中?
    • 我尝试使用 XStream 序列化 javax.jms.BytesMessage 并生成一个 xml。输出不是我预期的。它生成了一个<org.apache.activemq.command.ActiveMQBytesMessage>
    • 你需要序列化你的 4 个字节作为 XML 并将这个 XML 粘贴到文本区域
    • 谢谢@dmitri-t。那也没有用。当我转换我的 4 个字节时,它看起来像这样。 <byte-array>AGQD1g==</byte-array> ,当我将它粘贴到文本区域并发布 JMS 时,我的应用程序不喜欢它。它说org.apache.activemq.command.ActiveMQObjectMessage cannot be cast to javax.jms.BytesMessage。所以正如我所说的,我需要发送 javax.jms.BytesMessage,这与初始上下文工厂有关吗? .我在那里使用org.apache.activemq.jndi.ActiveMQInitialContextFactory ....
    • 您有示例代码可以将您的 4 个字节序列化为 XML,我可以使用吗?
    猜你喜欢
    • 1970-01-01
    • 2021-03-06
    • 2020-12-09
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多