我有一个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 + 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秒(就像上面的计时器一样)
答案 0 :(得分:0)
JMeter计时器遵循JMeter scoping rules,因此,如果您要将常量计时器仅应用于一个特定的采样器-您需要使其成为采样器的子
还要研究Constant Timer source,似乎您需要提供一个Long值,因此将这些60000.0
和60008.427676
更改为60000
和{{1} }。
示例测试计划每60秒创建1个请求:
60008
您还可以考虑使用Flow Control Action采样器来引入暂停,以代替常量计时器