Мой перевод с английского ниже. Все замечания по поводу неправильности перевода приветствуются! Переводил пару лет назад.
1. Simple Controller - используется для группирования и установления порядка выполнения для Samplers и других Logic Controllers.
2. Loop Controller - выполнит все, что находится у него как child Count Loop раз.
3. Once Only Controller - исполняет свое содержимое только один раз и пропускает выполнение содержимого при последующих итерациях. Пример: Loop Controller настроен на пятикратное выполнение и содержит Once Only Controller, содержимое Once Only Controller выполнится только один раз.
4. Interleave Controller - если внутри него находятся Generative или Logic Controllers, то выполняется один из них по порядку для каждой итерации.
5. Random Controller - похож на Interleave Controller, только на каждой итерации выполняемая часть берется не по порядку, а в случайной последовательности.
6. Random Order Controller - больше похож на Simple Controller, выполняются все его "дети", только выполнение происходит в произвольном порядке.
7. Throughput Controller - регулирует как часто заданный блок будет выполняться. Может работать в режиме percent execution и в режиме total executions. При percent execution программа вычисляет процент от всех проведенных итераций и определяет выполнять или нет этот блок в следующий раз. При total executions выполнение блока прекращается после достижения количества разрешенных раз.
8. Runtime Controller - определяет как долго его "детям" позволено играть :).
пятница, 10 сентября 2010 г.
Thread Group
понедельник, 2 августа 2010 г.
Задержки между шагами (delays between steps)
Порой необходимо сктриптом эмулировать реальное поведение пользователя (или хотя бы приближенное к реальному). Для этого необходимо расставлять задержки (delay) в jmeter скрипте между логическими шагами. Я использую для этого Test Action (Add >> Sampler >> Test Action). Он очень удобен с той точки зрения, что в него величину паузы можно передавать в виде параметра, а уж этот значение этого параметра можно брать либо из файлика, либо генерировать, кому как удобно.
вторник, 1 июня 2010 г.
Важнейшее преимущество способа записи скрипта "BadBoy" над "Прокси-сервер" способом
Самое главное преимущество "BadBoy" способа - это возможность записи скрипта для https приложений. При помощи прокси-сервера запись запросов с секретным протоколом невозможна. На то и эта защита, что бы никакой посредник между клиентом и сервером не мог вклиниться. Зато "BadBoy" сам и есть клиент и он записывает все запросы и http и https.
четверг, 27 мая 2010 г.
Сохранять ответ от сервера на ошибку. - jmeter.save.saveservice.response_data.on_error
Очень полезная опция jmeter.save.saveservice.response_data.on_error. Используется она для сохранения ответа от сервера в случае ошибки. При проведении нагрузки в non-gui режиме нет смысла сохранять все ответы от сервера, так как это займет очень много места и разобраться в них будет очень сложно.
Для активации, выставляем значение параметра jmeter.save.saveservice.response_data.on_error в значение true. Для того, что бы эта опция действительно приносила пользу, необходимо использовать Assertions, которые и будут выдавать ошибку если ответ не верен.
Для активации, выставляем значение параметра jmeter.save.saveservice.response_data.on_error в значение true. Для того, что бы эта опция действительно приносила пользу, необходимо использовать Assertions, которые и будут выдавать ошибку если ответ не верен.
суббота, 15 мая 2010 г.
jmeter.properties
Мало информации существует об ОЧЕНь полезном файлике jmeter.properties.
Всем необходимо знать о его содержимом. Вот например блок Results file configuration:
#---------------------------------------------------------------------------
# Results file configuration
#---------------------------------------------------------------------------
# This section helps determine how result data will be saved.
# The commented out values are the defaults.
# legitimate values: xml, csv, db. Only xml and csv are currently supported.
#jmeter.save.saveservice.output_format=xml
# true when field should be saved; false otherwise
# assertion_results_failure_message only affects CSV output
#jmeter.save.saveservice.assertion_results_failure_message=false
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
#jmeter.save.saveservice.data_type=true
#jmeter.save.saveservice.label=true
#jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
#jmeter.save.saveservice.response_data=false
# Save ResponseData for failed samples
#jmeter.save.saveservice.response_data.on_error=false
#jmeter.save.saveservice.response_message=true
#jmeter.save.saveservice.successful=true
#jmeter.save.saveservice.thread_name=true
#jmeter.save.saveservice.time=true
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
jmeter.save.saveservice.requestHeaders=true
#jmeter.save.saveservice.encoding=false
#jmeter.save.saveservice.bytes=true
#jmeter.save.saveservice.url=false
#jmeter.save.saveservice.filename=false
#jmeter.save.saveservice.hostname=false
#jmeter.save.saveservice.thread_counts=false
#jmeter.save.saveservice.sample_count=false
Всем необходимо знать о его содержимом. Вот например блок Results file configuration:
#---------------------------------------------------------------------------
# Results file configuration
#---------------------------------------------------------------------------
# This section helps determine how result data will be saved.
# The commented out values are the defaults.
# legitimate values: xml, csv, db. Only xml and csv are currently supported.
#jmeter.save.saveservice.output_format=xml
# true when field should be saved; false otherwise
# assertion_results_failure_message only affects CSV output
#jmeter.save.saveservice.assertion_results_failure_message=false
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
#jmeter.save.saveservice.data_type=true
#jmeter.save.saveservice.label=true
#jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
#jmeter.save.saveservice.response_data=false
# Save ResponseData for failed samples
#jmeter.save.saveservice.response_data.on_error=false
#jmeter.save.saveservice.response_message=true
#jmeter.save.saveservice.successful=true
#jmeter.save.saveservice.thread_name=true
#jmeter.save.saveservice.time=true
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
jmeter.save.saveservice.requestHeaders=true
#jmeter.save.saveservice.encoding=false
#jmeter.save.saveservice.bytes=true
#jmeter.save.saveservice.url=false
#jmeter.save.saveservice.filename=false
#jmeter.save.saveservice.hostname=false
#jmeter.save.saveservice.thread_counts=false
#jmeter.save.saveservice.sample_count=false
Assertions в JMeter
Если развивать тему усложнения скрипта, то необходимо расставлять Assertions после каждого запроса, который открывает новую страницу, либо делает какие-то полезные действия. Наиболее полезный Response Assertion. Принцип действия его интуитивно понятен. Полезность его в том, что если на некий запрос пришла не та страница, то jmeter не выдаст ошибку сам по себе, так как код ответа 200, но дальнейшее исполнение скрипта не имеет смысла. Для этого и используем Assertions.
Подписаться на:
Сообщения (Atom)
