2016-05-27 3 views
1

Я только что начал играть с Jmeter для своих тестов производительности/нагрузки, и у вас есть основной вопрос, несмотря на чтение официальной документации. Было бы полезно, если бы кто-то подтвердил мое понимание тем Threads и Rampup.jmeter threads and rampup understanding

Пример 1:

Threads: 4 
RampupTime: 0.1 
No of requests (test cases): 1000 

Как происходит выше распределение нить?

Пример 2:

Threads: 4 
RampupTime: 1 
No of requests (test cases): 1000 

Как происходит выше распределение нить?

Мое понимание в этом случае Jmeter займет 1 секунду, чтобы развернуть 4 потока. И тесты, которые запускаются через секунду (скажем, из тестового примера 10) 4 одновременных потока будут бить 4 разных теста? (то есть в параллельной партии 4) Это правильно?

Пожалуйста, помогите. Я немного смущен корреляцией между указанными тремя параметрами. Любая иллюстрация была бы высоко оценена. Благодарю.

+0

Я не уверен, можно ли указать RampupTime менее 1 секунды, потому что если вы посмотрите на реализацию https://jmeter.apache.org/api/org/apache/jmeter/threads/ThreadGroup.html#setRampUp(int) rampup принимает значение int, поэтому настройка его на 0,1 будет равна установке значения 0 –

ответ

3

Так что для первого вопроса нет там нет времени rampup на меньшее, чем 1.

Почему?

потому что rampupTime является ИНТ anyting меньше, чем один считается 0.

http://svn.apache.org/viewvc/jmeter/branches/doc-v2_3_1/src/core/org/apache/jmeter/threads/ThreadGroup.java?revision=1196285&view=markup#l227

public void setRampUp(int rampUp) { 
        setProperty(new IntegerProperty(RAMP_TIME, rampUp)); 
       } 

Что касается второго вопроса каждые 250 миллисекунд есть поток порождал и через одну секунду вы будете иметь 4 нити работает ,

http://svn.apache.org/viewvc/jmeter/branches/doc-v2_3_1/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java?revision=1196285&view=markup#l399

int rampUp = group.getRampUp(); 
          float perThreadDelay = ((float) (rampUp * 1000)/(float) numThreads); 

Возвращаясь к вашему пониманию concurrrent партии. Нет, это не так, каждый поток будет выполняться независимо, например, если по какой-то неизвестной причине один из потоков будет виден, остальные три будут работать. Дело не в том, что они будут ждать завершения первого потока, чтобы запустить вторую партию запроса.

+0

Отлично. Спасибо за объяснение. Правильно ли я говорю, что в моем втором примере через 1 секунду Jmeter гарантирует, что всегда есть 4 активных потока, разделяющих и захватывающих тестовые примеры. – user1189332

+0

Да будет 4 активных потока, проходящих параллельно через последовательность тестов –