Pull to refresh

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

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

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

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

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

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

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

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

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

final test plan

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

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

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

Читать дальше →
Total votes 33: ↑23 and ↓10 +13
Views 1.9K
Comments 19

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

IT systems testing *

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


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

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


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

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

IT systems testing *
Sandbox

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


Slash

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

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

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

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

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

Введение в JMeter

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

Введение


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

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

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

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


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

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

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

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

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

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

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

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Views 33K
Comments 5

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

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

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

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

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

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

image

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

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

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

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

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

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

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

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

Hewlett Packard Enterprise corporate blog IT systems testing *Web services testing *
Tutorial
image

Привет Хабр!



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

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

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

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

Hewlett Packard Enterprise corporate blog IT systems testing *Web services testing *
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 может оказаться вполне выгодным.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 5.3K
Comments 4

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

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



В этой части поговорим про анализ результатов.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 4.1K
Comments 0

Приручаем JMeter

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

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

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

Найти ответ на этот вопрос нам пришлось во время одного из проектов по нагрузочному тестированию.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 7.8K
Comments 0