我有一个jmeter测试,其中有常数定时器与WebSocket请求连接,但是当我用jmeter启动测试时,使用命令行,jmeter不处理定时器
<eu.luminis.jmeter.wssampler.SingleWriteWebSocketSampler enabled="true" guiclass="eu.luminis.jmeter.wssampler.SingleWriteWebSocketSamplerGui" testclass="eu.luminis.jmeter.wssampler.SingleWriteWebSocketSampler" testname="WebSocket Single Write Sampler">
<boolProp name="TLS">false</boolProp>
<stringProp name="server" />
<stringProp name="port">80</stringProp>
<stringProp name="path" />
<boolProp name="binaryPayload">true</boolProp>
<stringProp name="requestData">00 00 00 00 20 18 00 01 00 ff 00 ff 00 ff 10 08 00 00 00 00</stringProp>
<boolProp name="createNewConnection">false</boolProp>
<boolProp name="optional">false</boolProp>
</eu.luminis.jmeter.wssampler.SingleWriteWebSocketSampler>
<hashTree>
<ConstantTimer enabled="true" guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer">
<stringProp name="ConstantTimer.delay">60000.0</stringProp>
</ConstantTimer>
<hashTree />
<ConstantTimer enabled="true" guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer">
<stringProp name="ConstantTimer.delay">60008.427676</stringProp>
</ConstantTimer>
<hashTree />
</hashTree>
但是当我把常量计时器放在WebSocket采样器上面时(这将影响每一个websocket采样器,而不仅仅是这个),jmeter会照顾计时器
结果如下所示
summary + 1 in 00:00:31 = 0.0/s Avg: 3259 Min: 3259 Max: 3259 Err: 0 (0.00%) Active: 1 Started: 1 Finished: 0
summary + 11445 in 00:00:07 = 1618.1/s Avg: 0 Min: 0 Max: 567 Err: 10953 (95.70%) Active: 0 Started: 1 Finished: 1
summary = 11446 in 00:00:38 = 304.2/s Avg: 0 Min: 0 Max: 3259 Err: 10953 (95.69%)
但是我有几个计时器,一个是60秒(就像上面的那个)
1条答案
按热度按时间enxuqcxy1#
JMeter计时器遵循JMeter scoping rules,因此如果您希望Constant Timer仅应用于一个特定的采样器,则需要将其作为采样器的子
此外,查看常量定时器源代码,您似乎需要提供Long值,因此相应地将这些
60000.0
和60008.427676
更改为60000
和60008
。每60秒创建1个请求的测试计划示例:
您还可以考虑使用流控制操作采样器来引入暂停,作为常量计时器的替代方法