常量计时器不适用于命令行中的jmeter

时间:2019-07-05 13:06:39

标签: xml jmeter jmx

我有一个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秒(就像上面的计时器一样)

1 个答案:

答案 0 :(得分:0)

JMeter计时器遵循JMeter scoping rules,因此,如果您要将常量计时器仅应用于一个特定的采样器-您需要使其成为采样器的

enter image description here

还要研究Constant Timer source,似乎您需要提供一个Long值,因此将这些60000.060008.427676更改为60000和{{1} }。

示例测试计划每60秒创建1个请求:

60008

您还可以考虑使用Flow Control Action采样器来引入暂停,以代替常量计时器