Перейти к содержимому

Фотография

Создание условия в JMeter


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 25

#1 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 11 апреля 2016 - 11:10

Ребят, вновь нужна  помощь 

Делаю нагрузочное для сервера (с помощью Fiddler отлавливаю запросы уходящие на сервер, копирую их в JMeter.)

В запросе есть элемент вида <a:Code>NoCompleted</a:Code>. Иногда "NoCompleted" меняется на  "Completed". 

Мне нужно написать условие, что-то вроде: если <a:Code> NoCompleted   то запрос должен прождать некоторое время, чтобы <a:Code> стал Completed.
Подскажите пожалуйста, как вообще в JMETER создавать условия, какой элемент выбрать, как прописать условие? 
Получается тут условие и цикл, как это все организовать? Помогите пожааалуйста 


  • 0

#2 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 11 апреля 2016 - 11:41

jmeter if controller

jmeter loop controller

 

темы прекрасно гуглятся, даже русскоязычные ответы есть, даже отсылки на этот форум.

Вот неплохой обзор по логическим контроллерам: http://www.thetestin...lers-in-jmeter/


  • 0

#3 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 11 апреля 2016 - 12:06

jmeter if controller

jmeter loop controller

 

темы прекрасно гуглятся, даже русскоязычные ответы есть, даже отсылки на этот форум.

Вот неплохой обзор по логическим контроллерам: http://www.thetestin...lers-in-jmeter/

решила использовать While Controller
записала условие:   while("${cod_result}"=="NoCompleted") {действие}
а как записать {действие} ?
(чтобы действие выполнялось до тех пор пока Code не станет Completed
 


  • 0

#4 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 11 апреля 2016 - 12:25

ЕМНИП while controller как и прочие if, random, swich, simpe образует отдельную "ветку" которая и есть тело цикла. Скриншот к сожалению показать не могу, нет у меня на рабочей машине jmeter/

 

Не забудьте добавить небольшую паузу в цикл.


  • 0

#5 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 11 апреля 2016 - 12:39

ЕМНИП while controller как и прочие if, random, swich, simpe образует отдельную "ветку" которая и есть тело цикла. Скриншот к сожалению показать не могу, нет у меня на рабочей машине jmeter/

 

Не забудьте добавить небольшую паузу в цикл.

к сожалению, я вас не понимаю(

как в While Controller обратиться к  HTTP Request( 
 

Прикрепленные файлы


  • 0

#6 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 11 апреля 2016 - 12:48

В этой строке пишется только условие, 

"${cod_result}"=="NoCompleted"

Древовидная структура с циклами и условиями выглядеть должна как-то так:

 

http://jmeter.512774...-td5577907.html

 

попробуйте перенести ваше "действие" на while controller

 

И while controller должен стоять не где-то, а там, где он должен быть логически, по сценарию.


  • 0

#7 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 11 апреля 2016 - 12:59

 

ЕМНИП while controller как и прочие if, random, swich, simpe образует отдельную "ветку" которая и есть тело цикла. Скриншот к сожалению показать не могу, нет у меня на рабочей машине jmeter/

 

Не забудьте добавить небольшую паузу в цикл.

к сожалению, я вас не понимаю(

как в While Controller обратиться к  HTTP Request( 
 

 

У вас http request и while контроллер находятся на одном уровне, а должен Http request быть вложен в контроллер. Если я не понятно написал, посмотрите скрин Слона.


  • 0

#8 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 11 апреля 2016 - 13:39

 

 

ЕМНИП while controller как и прочие if, random, swich, simpe образует отдельную "ветку" которая и есть тело цикла. Скриншот к сожалению показать не могу, нет у меня на рабочей машине jmeter/

 

Не забудьте добавить небольшую паузу в цикл.

к сожалению, я вас не понимаю(

как в While Controller обратиться к  HTTP Request( 
 

 

У вас http request и while контроллер находятся на одном уровне, а должен Http request быть вложен в контроллер. Если я не понятно написал, посмотрите скрин Слона.

 

да, я сейчас поняла) изменила. спасибо :)
буду разбираться дальше(


  • 0

#9 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 11 апреля 2016 - 13:39

В этой строке пишется только условие, 

"${cod_result}"=="NoCompleted"

Древовидная структура с циклами и условиями выглядеть должна как-то так:

 

http://jmeter.512774...-td5577907.html

 

попробуйте перенести ваше "действие" на while controller

 

И while controller должен стоять не где-то, а там, где он должен быть логически, по сценарию.

спасибо! 
Буду пробовать по всякому-разному)


  • 0

#10 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 11 апреля 2016 - 18:31

 

 

ЕМНИП while controller как и прочие if, random, swich, simpe образует отдельную "ветку" которая и есть тело цикла. Скриншот к сожалению показать не могу, нет у меня на рабочей машине jmeter/

 

Не забудьте добавить небольшую паузу в цикл.

к сожалению, я вас не понимаю(

как в While Controller обратиться к  HTTP Request( 
 

 

У вас http request и while контроллер находятся на одном уровне, а должен Http request быть вложен в контроллер. Если я не понятно написал, посмотрите скрин Слона.

 

скажите, пожалуйста, а внутри HTTP Request нельзя создать условие? 


  • 0

#11 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 11 апреля 2016 - 20:14

Нет. А цель какая?


  • 0

#12 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 11 апреля 2016 - 21:35

Нет. А цель какая?

у меня в одном HTTP Request есть как успешные ответы  (<a:Code>Completed</a:Code>), так и не успешные (<a:Code>NoCompleted</a:Code>)
Не успешные в том смысле, что у них истекло некое время на выполнение операции. И им нужно увеличить время.
вот не знаю как это провернуть. получается же, что нужно условие внутри HPPT Request 

p.s. пробовала таймеры, но это не то

и вот так делала (в While контроллере условие выхода из цикла - выходим когда, Code стал Completed. Дествие2 прописала два раза, потому что в первом регулярным выражением отлавливаю этот Code

 

Прикрепленные файлы


  • 0

#13 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 12 апреля 2016 - 05:59

1) контроллер if здесь не нужен, цикл while с предусловием, если оно не выполнено, то тело цикла не будет исполнено ни разу.

2) в условии while у вас "=" вместо "==" или "!="

3) цикл исполняется пока условие верно.

 

Насколько я понимаю, ответ вам дается быстро, в нем приходит статус некоего процесса и вам надо дождаться пока он станет "Completed"?

Добавьте задержку в while контроллер, иначе он будет устраивать DoS атаку на ваш сервер.


  • 0

#14 fesd

fesd

    Опытный участник

  • Members
  • PipPipPipPip
  • 262 сообщений

Отправлено 12 апреля 2016 - 09:33

 

2) в условии while у вас "=" вместо "==" или "!="

 

 

Все равно не будет работать. В while контроллере это можно сделать так ${__javaScript("${VAR2}"=="abcd")}


  • 2

#15 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 12 апреля 2016 - 09:38

а не работает в итоге что? Что происходит и чего вы ожидаете?


  • 0

#16 fesd

fesd

    Опытный участник

  • Members
  • PipPipPipPip
  • 262 сообщений

Отправлено 12 апреля 2016 - 09:49

Если вопрос ко мне, то у меня все работает =) Я говорю что в while контроллере условие задается отличным от if контроллера способом. В документации есть эта инфа.


  • 0

#17 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 12 апреля 2016 - 10:20

Оу! Пардон муа, с топикстартером попутал :)

Это вы хорошо говорите. До чтения документации мы бы еще не скоро добрались :)


  • 0

#18 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 12 апреля 2016 - 15:49

1Добавьте задержку в while контроллер, иначе он будет устраивать DoS атаку на ваш сервер.

что за задержка? 

у меня while циклит. перепробовала и так и сяк, ни в какую. 


  • 0

#19 lelechka_29

lelechka_29

    Новый участник

  • Members
  • Pip
  • 43 сообщений
  • ФИО:Шайдуллина Эльяна


Отправлено 12 апреля 2016 - 15:51

 

 

2) в условии while у вас "=" вместо "==" или "!="

 

 

Все равно не будет работать. В while контроллере это можно сделать так ${__javaScript("${VAR2}"=="abcd")}

 

вы меня напугали своим ${__javaScript("${VAR2}"=="abcd")}    ))
что это?:(
простите за возможно глупые вопросы - я новичок в этом  деле. поймите и простите

 


  • 0

#20 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 12 апреля 2016 - 19:21

 

 

 

2) в условии while у вас "=" вместо "==" или "!="

 

 

Все равно не будет работать. В while контроллере это можно сделать так ${__javaScript("${VAR2}"=="abcd")}

 

вы меня напугали своим ${__javaScript("${VAR2}"=="abcd")}    ))
что это?:(
простите за возможно глупые вопросы - я новичок в этом  деле. поймите и простите

Это всего-лишь кусочек кода на джаваскрипте, If controler по умолчанию считает заданное ему условие кусочком javascript (у него это там даже написано), а while controller надо это явно указать, то есть, у вас это будет ${__javaScript("${cod_result}"=="NoCompleted")}

 

 

1Добавьте задержку в while контроллер, иначе он будет устраивать DoS атаку на ваш сервер.

что за задержка? 

у меня while циклит. перепробовала и так и сяк, ни в какую. 

 

constant timer c каким нибудь не слишком большим значением, например в 20-25% от ожидаемого времени перехода в статус Completed, иначе ваш запрос будет долбится в цикле на максимальной возможной скорости.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных