Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Инструменты инфраструктурной поддержки для Agile проекта на Java

Блог компании Creative Media
Ни для кого не секрет, что для слаженной работы команды, особенно в проектах управляемых по методологии Agile, важен эффективный обмен информацией между участниками. Для того, чтобы информационные потоки не разрушались под влиянием человеческого фактора, стандартные процедуры по управлению информацией автоматизируются. В данной статье рассмотрен пример технической инфраструктуры, использующейся сотрудниками компании ООО «Креатив Медиа» при разработке Web-проектов на платформе Java, например, в проекте социальной сети Campus.ru.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Просмотры15K
Комментарии 31

Простой нагрузочный тест с Apache JMeter

Тестирование IT-систем*
По моим наблюдениям, разработчики довольно редко делают нагрузочное тестирование сайтов и веб-приложений. И бывает так, что выставят проект в Интернет, а тут вдруг посетители начнут ходить (хабраэффект, к примеру, случился), и сайт в самый подходящий момент ложится или начинает не по-детски тормозить.

Почему бы не избежать этих неприятностей, прогнав нагрузочный тест?

Наверное, кого-то останавливает неверное представление о том, что нагрузочное тестирование — это очень сложное дело, требующее специальных знаний. Однако не боги горшки обжигают. Если выбор — тестировать не слишком профессионально, или не тестировать вовсе, я бы выбрал первое. Тем более, что организовать примитивный тест производительности очень даже просто. Можно воспользоваться онлайн-средствами (см., например, Нагрузочное тестирование по-быстренькому), а можно замутить все своими руками, это ненамного сложнее.

Под катом рассказываю, как с нуля организовать незамысловатый нагрузочный тест сайта при помощи Apache JMeter.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Просмотры259K
Комментарии 14

Отладка тест-плана JMeter

Тестирование IT-систем*
В предыдущем посте про JMeter я описывал создание примитивного нагрузочного теста. При разработке более сложных сценариев не обойтись без отладки. К сожалению, в JMeter эта техника не совсем очевидна. Ниже на несложном примере покажу несколько приемов отладки тест-плана. Заодно продемонстрирую использование таких элементов, как HTTP Request Defaults, Regular Expression Extractor, If Controller и некоторых других.

final test plan

Тестировать будем механизм поиска на сайте. Пускай сценарий берет слово или фразу из файла, задает вопрос поисковику, получает ответ в виде одной или нескольких страниц, случайным образом выбирает одну из страниц, так же случайно выбирает одну из ссылок и идет по ней. Итого три запроса, за исключением особых случаев (когда найдено мало или не найдено ничего).
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Просмотры44K
Комментарии 7

Сравнение нагрузки — PyCurl vs HTTPClientFactory+Deferred

Python*
В процессе разработки одного проекта на Python+Twisted (распределителя СМС запросов) пришлось переписать вызов URL различных сервисов с разных серверов c блокирующего вызова через PyCurl на неблокирующий (client.HTTPClientFactory + deferred). Чтобы иметь перед глазами реальные данные, решил дать нагрузку и посмотреть на результаты

Читать дальше →
Всего голосов 33: ↑23 и ↓10+13
Просмотры1.8K
Комментарии 19

Рецепт нагрузочного тестирования на JMeter

Тестирование IT-систем*

Стоит ли вообще браться за JMeter


Если с JMeter-ом вы не знакомы, то, например, по-быстренькому с ним у вас точно не выйдет.
Если вы все же решили взяться и выделить пару дней, то могу предложить свой рецепт по приготовлению нагрузочного теста на JMeter.

Составление сценария


В моем случае было необходимо протестировать сервис, и понять как долго он еще протянет без оптимизации кода или добавления серверов.
В идеале нужно загрузить в JMeter сценарий по которому как бы работает пользователь, после чего прогнать сценарий в несколько потоков, наблюдая за скорость обработки запросов.
Главная сложность в том, как этот сценарий получить и собственно этим рецептом я и хочу поделиться.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Просмотры33K
Комментарии 10

Slash и backslash: вехи на пути

Тестирование IT-систем*
Из песочницы

Немного истории


Slash

Возникновение слеша относят к временам Римской империи. На ранних стадиях современности, во Фрактуре [1], которая была широко распространена по всей Европе в средневековье, слеш (/) использовался вместо запятой, в то время как двойной слеш (//) использовался вместо тире. Двойной слеш, в конечном счете, превратился в символ похожий на знак равенства (=), а позже был еще больше упрощен до тире или дефиса [2].
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Просмотры19K
Комментарии 18

Быстрое создание нагрузочных тестов на JMeter для web-сайтов

Тестирование IT-систем*
Из песочницы
imageДля любого программного приложения, предназначенного для массового обслуживания пользователей, необходимо проводить нагрузочное тестирование на предмет его надежности и отказоустойчивости. А так как любой web-сайт — это по своей сути система массового обслуживания, то проверка его на отказоустойчивость всегда является неотъемлемой частью разработки. Существуют различные решения для проведения нагрузочного тестирования веб-приложений. Я не буду сейчас описывать их подробно, про некоторые из них есть упоминания здесь.

В этой статье я хочу поделиться своим опытом использования такого средства, как Apache JMeter. После того как мною были перепробовано с десяток различных подобных инструментом, в итоге я остановился именно на JMeter, так как его возможности с лихвой охватывали мои цели и задачи. И при этом данное программное средство весьма быстрое и легковесное.

Для тех кто ни разу не использовал JMeter, рекомендую для начала почитать базовые обзоры, например, Простой нагрузочный тест с Apache JMeter. Когда я первый раз запустил данную программу, первая мысль была разобраться во всем методом «тыка», но как выяснилось это вообще нереально, и метод «тыка» неприменим к JMeter. Поэтому если хотите его использовать, то сразу открывайте мануал, поверьте, вам придется заглядывать туда очень часто, пока полностью не разберетесь, что и как. Я же здесь сейчас опишу самое очевидное и важное, а именно: как собственно создавать нагрузочные тесты. Если бы я в свое время сразу нашел подобную статью, то сэкономил бы без малого день на изучении этой софтины.
Читать дальше →
Всего голосов 74: ↑71 и ↓3+68
Просмотры134K
Комментарии 35

Введение в JMeter

Тестирование IT-систем*
Статья подготовлена сотрудниками отдела тестирования в компании, где я работаю.
На хабре уже не первый раз пишут про JMeter, но статьи имеют довольно узкую направленность, либо сложны для понимания. Поэтому, эта статья будет интересная именно начинающим.

Введение


Как-то я начал осваивать новый инструмент — JМeter — и не смог найти какого-то полноценного руководства как руководства к действию. Постепенно, разобравшись по некоторым довольно полезным статьям и блогам, пользовательской документации, я начал что-то понимать. И решил, что, возможно, я не один ищу то, с чего можно начать работать. Освоить некоторые принципы построения и логику самого инструмента. Так что вот — статья о том, как начать.
Так что в этой статье мы рассмотрим пример создания скрипта для 3 пользователей, которые хотят:
1. залогиниться;
2. добавить в какой-нибудь альбом новую фотографию;
3. поменять аватарку.
Как таковой — это обычный бизнес процесс для какой-нибудь социальной сети.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Просмотры202K
Комментарии 10

Работа с Java VisualVM при проведении нагрузочного тестирования

Блог компании LuxoftТестирование IT-систем*
При разработке любого крупного WEB-приложения рано или поздно встает вопрос о проведении нагрузочного тестирования. Такой вопрос возник и в нашем проекте. О том, как мы его решили вы сможете узнать из этой статьи.

Собственно, а что мы будем делать


Задача была поставлена следующая:

Необходимо, чтобы приложение выдерживало нагрузку минимум 1500 одновременных пользователей, которые будут работать по следующему сценарию:
1. Открыть страницу приложения
2. Логин в систему
3. Выгрузка большого списка записей из базы
4. Выход из системы
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Просмотры41K
Комментарии 10

Кодируем на лету в base64 и стреляем в MongoDB из JMeter с помощью BeanShell

Тестирование IT-систем*Java*
Из песочницы
Я работаю в нагрузочном тестировании относительно недолго, и одним из моих основных инструментов является Apache Jmeter. Тем не менее, большинство моих коллег не использовали Beanshell в JMeter, и в этой статье я хочу показать пару способов как он может упростить и сократить время подготовку к самим тестам. А покажу это на примере конвертации текста в base64-кодировку и простых стрельб в MongoDB.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Просмотры4.2K
Комментарии 8

Тест производительности: удивительно и просто

Высокая производительность*Тестирование IT-систем*Программирование*
Так сложилось, что последние полгода я активно занимался тестами производительности и мне кажется, что в этой области IT царит абсолютное непонимание происходящего. В наше время, когда рост вычислительных мощностей снизился (vertical scalability), а объем задач растет с прежней скоростью, проблема производительности становится всё острее. Но прежде, чем броситься на борьбу с производительностью, необходимо получить количественную характеристику.

Краткое содержание статьи:

Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Просмотры29K
Комментарии 5

Нагрузочный тест c помощью Go

Программирование*Go*
Добрый день, Хабрахабр.
Вы, вероятно, знакомы с JMeter. Если в кратце — очень удобный инструмент для проведения нагрузочного тестирования, имеет огромный функционал и много-много полезных фишек. Но статья не о нем.

С чего началось

В нашем проекте есть довольно нагруженный узел, JMeter помогал долгое время. Проффилирование и оптимизации дали свой профит, но все уперлось в маленькую проблему. JMeter не мог создать очень большой трафик, а если более точно, то после 10 секунд нужного нам режима, происходил OutOfMemory и тестирование прекращалось, в некоторых случаях проблемы не было, но скорость отправки запросов заметно уменьшалась, при этом загрузка CPU — 400%, решалось перезапуском программы. Пользоваться было крайне не удобно.
Итак, мы имеем проблему, и ее нужно решить, первое, что пришло в голову — сделать свой мини-тест, отвечающий минимальным требованиям. Давно было интересно попробовать Go на вкус. Так родилось приложение go-meter. При написании возникало очень много вопросов, ответов на которые либо не было, либо они не объясняли проблему, поэтому я решил поделиться опытом и примером рабочего кода, если Вам интересно, прошу подкат.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Просмотры12K
Комментарии 30

JMeter как относительно удобное и практичное средство для тестирования API

API*Тестирование веб-сервисов*
В статье пойдет речь о тестировании в сжатые сроки с использованием инструмента JMeter, а также о том, как успешно завершить работу при вынужденной замене специалистов на проекте.

image

Как тестировщик, я люблю, когда всё по порядку, но жизнь переполнена грязными хаками. Я люблю автоматизировать, подвязав Selenium к Python, но когда встречаюсь с проблемой ограниченности ресурсов, бросаюсь за тот инструмент, который позволяет сделать «всё то же самое, но быстрее». В этом посте я расскажу, что JMeter — прекрасный инструмент как для нагрузочного, так и для функционального тестирования.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Просмотры37K
Комментарии 4

Автоматизированное тестирование сервисов, использующих протокол MQ с помощью JMeter

Тестирование IT-систем*Тестирование веб-сервисов*
Из песочницы
Крупные распределенные информационные системы зачастую состоят из более мелких модулей (подсистем) и разрабатываются группами программистов с использованием разных платформ и подходов. Часто, обмен данными в таких системах происходит в асинхронном режиме и предпочтительно использование промежуточного программного обеспечения, ориентированного на обработку сообщений (англ. Message-Oriented Middleware, MOM).

Для модульного и интеграционного тестирования таких систем удобно использовать старый добрый Apache JMeter.

Для примера выделим небольшой стандартный модуль такой системы. Допустим, есть некий адаптер, который читает XML сообщение из очереди входящих сообщений, выполняет преобразование структуры XML сообщения и публикует преобразованное сообщение в очередь исходящих сообщений. В качестве MOM, в данном случае, используется Websphere MQ 7.5.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Просмотры13K
Комментарии 1

JMeter: забудьте про BeanShell Sampler

Тестирование IT-систем*
С помощью стандартных элементов тест-плана в Jmeter можно сделать многое, но далеко не всё. Для расширения функциональности и реализации более сложной логики принято использовать BeanShell Sampler — как-то во всём мире так исторически сложилось. И во всём мире от этого периодически страдают, но продолжают есть кактус.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Просмотры26K
Комментарии 2

HP StormRunner Load. Практическое руководство. Часть I

Блог компании Hewlett Packard EnterpriseТестирование IT-систем*Тестирование веб-сервисов*
Tutorial
image

Привет Хабр!



Сегодня мы начинаем серию статей, посвященных HP StormRunner Load.

Этот пост — первая часть руководства по HP StormRunner Load.

HP StormRunner Load является решением на основе SaaS для организаций и, возможно, частных лиц, занимающихся разработкой программного обеспечения, которым необходимо создавать и запускать нагрузочные тесты для своих веб-приложений. С помощью этого практического руководства вы изучите особенности и возможности StormRunner Load, научитесь создавать образцы скриптов и развертывать их на облачных генераторах нагрузки. Вы также узнаете, как анализировать данные из этих тестов и оптимизировать сеть, процессы развертывания и инфраструктуру.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Просмотры7.7K
Комментарии 2

HP StormRunner Load. Практическое руководство. Часть II

Блог компании Hewlett Packard EnterpriseТестирование IT-систем*Тестирование веб-сервисов*
Tutorial
Продолжаем серию статей, посвященных HP StormRunner Load.
Первую часть вы можете почитать здесь

УПРАЖНЕНИЕ 2. Создание скрипта HP TruClient


РОЛЬ: Инженер производительности
В этом упражнении мы рассмотрим нагрузочный тест с использованием HP TruClient – агента записи, подключаемого к браузеру Firefox.

Что представляет собой HP TruClient?


HP TruClient – это передовой механизм записи, который подключается к браузеру Firefox (существует также версия TruClient для Internet Explorer, версия для Chrome находится в стадии разработки), чтобы записывать ваши действия в ходе навигации по браузеру. TruClient создает скрипт этих действий, запуск которого может быть воспроизведен несколькими виртуальными пользователями. Число таких пользователей затем может быть увеличено, чтобы создать требуемую нагрузку на сервер.
Скрипты HP TruClient отличаются от некоторых других типов скриптов, поскольку они более реалистично отражают действия пользователя браузера. Скрипт на основе API (Application Programming Interface) точно воспроизводит нагрузку на сервер, но не содержит всех тех задач, которые могут быть возложены на сервер с точки зрения человека, использующего браузер.
Преимущество скриптов TruClient заключается в том, что их гораздо проще создавать и поддерживать. Браузеры (и TruClient) автоматически выполняют корреляцию данных конкретной сессии, в то время как в скриптах HTTP/HTML она должны быть тщательно запрограммирована. Оба типа записей формируют необходимую нагрузку, однако HP TruClient создает более простую имитацию реальных пользователей и их полного взаимодействия с браузером.
Единственный недостаток, характерный для скриптов HP TruClient, связан с масштабируемостью. При воспроизведении записи API на сервере требуется очень небольшое количество ресурсов (процессора и памяти). Это означает, что на данном аппаратном обеспечении можно запустить больше таких виртуальных пользователей, чем виртуальных пользователей TruClient. Тем не менее, учитывая низкую стоимость облачных генераторов нагрузки, использование скриптов TruClient может оказаться вполне выгодным.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Просмотры5.1K
Комментарии 4

HP StormRunner Load. Практическое руководство. Часть III

Блог компании Hewlett Packard EnterpriseТестирование IT-систем*Тестирование веб-сервисов*
Привет Хабр! Сегодня предлагаем вашему вниманию третью часть цикла статей, посвящённого HP StormRunner Load. Предыдущие части: I и II.



В этой части поговорим про анализ результатов.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Просмотры4K
Комментарии 0

Приручаем JMeter

Java*
imageСегодня я хочу рассказать о замечательном инструменте, название которого вынесено в заголовок статьи. Разумеется, моей целью не является написание подробного руководства по Apache JMeter. В своей статье я хочу лишь зафиксировать ряд, на мой взгляд, не очевидных моментов, с которыми мне пришлось столкнуться в своей повседневной работе. Я надеюсь, что моя статья будет полезна (сразу предупреждаю, картинок будет много). 
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Просмотры103K
Комментарии 3

Создание эмулятора JMS-приложения при помощи JMeter

Тестирование IT-систем*
Из песочницы
На Хабре уже была публикация, посвященная нагрузочному тестированию АС, взаимодействующих по JMS при помощи JMeter. В ней описано применение JMeter как источника нагрузки, внешней системы, инициирующей бизнес-процесс в нашей (тестируемой) системе. Но что делать, если процесс инициируется внутри нашей системы, она отправляет запросы во внешнюю систему и ожидает ответа (то есть нам необходима заглушка внешней системы)?

Найти ответ на этот вопрос нам пришлось во время одного из проектов по нагрузочному тестированию.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Просмотры7K
Комментарии 0