不要以为这个是专门问的。
我必须对使用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。
我在配置文件中尝试了以上内容。但非会给我[0,100,3,214]。
看起来JMeter确实将文本,字符转换为字节值。因此,如果我有一个空文件,则该主题将变为0,应用程序会将其视为[0,0,0,0](应用程序仅考虑前4个字节)
如果我有?在文本文件中,我得到[63,63,63,63](因为?==> 00111111 ==> 63以十进制表示)。 但是,如果我必须将第一个字节设置为0,我将无法通过?由于没有字符,我无法代表0。
可能存在更好的方法。请指教吗?
答案 0 :(得分:1)
查看JMS Sampler JavaDoc时,migrate.exe --conn="Server=.;Database=my_db;Trusted_Connection=True;Encrypt=True;Connection Timeout=30;" --provider=SqlServer --assembly="MyMigrations.dll" --tag="localhost" --task=migrate --output --outputFilename="src\migrated.sql"
函数仅接受String,因此无法将字节传递给此字符串,因为JMeter会将它们视为简单字符串。
不过,根据JMS Publisher documentation,您应该可以发送所需的任何内容,前提是该对象已由XStream进行了序列化
对象消息已实现,其工作方式如下:
将包含您的对象及其依赖项的JAR放在jmeter_home / lib /文件夹中
使用XStream将对象序列化为XML
要么将结果放入带有.txt或.obj后缀的文件中,要么直接将XML内容放入“文本区域”中
请注意,如果消息在文件中,则使用文本区域时将不会替换属性。
另外请注意,您始终可以切换到JSR223 Sampler,并使用ByteMessage代码中的Groovy类。