Помните, что контент на этой странице не поддерживается активно, и Atlassian не может гарантировать его поддержку. Кроме того, скрипты тестирования производительности, которые вы можете загрузить из общедоступного хранилища Maven из Atlassian (через ссылку на этой странице), больше не поддерживаются.

Эта страница предоставляется только для вашей информации, и ее использование осуществляется на ваш страх и риск. Вместо использования описанных выше сценариев мы рекомендуем наше тестирование производительности JIRA  с помощью Grinder

На этой странице содержатся сценарии и подсказки для тестирования нагрузки на вашей установке JIRA.

Прежде чем пользователи получат доступ к новой установкеJIRA  и ее настройке, полезно понять, как она будет работать под ожидаемой нагрузкой. Скрипты, которые генерируют загрузку запроса (‘request’) (или использования), предоставляются в нашем общедоступном репозитории Maven (ссылка ниже). Используя эти скрипты, вы можете узнать, где, возможно, вам нужно будет заранее улучшить настройку, чтобы устранить узкие места.

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

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

Редко бывает, что эти скрипты будут выполнять репрезентативное тестирование для вас «из коробки». Тем не менее, имеется возможность  построить соответствующий тест нагрузки путем настройки или расширения их сценариев.

Нельзя использовать сценарии тестирования загрузки на производственной установке JIRA!

Хотя мы рекомендуем использовать копию ваших производственных данных для тестирования нагрузки на использование, сценарии тестирования нагрузки ниже будут изменять данные в рамках целевой установки JIRA! Следовательно, эти сценарии не должны использоваться на производственной установке JIRA. Вместо этого используйте копию ваших данных JIRA на тестовой установке JIRA.

Если вы запускаете эти тестовые скрипты в соответствии с вашей производственной установкой JIRA, вы будете нести персональную ответственность за потерю данных и восстановление резервной копии!

Аналогичным образом, при внесении изменений в установку JIRA для устранения узких мест производительности полезно оценить влияние этих изменений в тестовой установке JIRA перед их внедрением в производство.

Предпосылки

Вам понадобится следующее:

 

  • Установка JIRA, настройка и запуск с пользователем администратора. В сценариях предполагается, что комбинация имени пользователя и пароля этого пользователя – «admin» / «admin».
  • Рекомендуется протестировать базу данных качества производства, например, одну из них, указанную на странице Поддерживаемые платформы. Не используйте HSQLDB.
  • Apache JMeter (в настоящее время версия 2.3.4). Если вы собираетесь выполнять тестирование с высокой нагрузкой, используйте вместо этого нашу измененную версию JMeter (для которой требуется Java 1.6).
  • Скрипты тестирования нагрузки и ресурсы, доступные в нашем общедоступном хранилище Maven – выберите версию, которая наиболее точно соответствует вашей версии JIRA, и загрузите файл ZIP или Gzip в этом каталоге. Если есть сомнения, загрузите архив ZIP-архива.

Пользователи сообщили о проблемах с использованием встроенной утилиты распаковки Windows для извлечения этих архивов. Если вы столкнулись с такой же проблемой, воспользуйтесь программой архивирования и извлечения файлов сторонних производителей (например, 7-Zip), чтобы извлечь эти тесты производительности.

Быстро, просто скажите мне, как запускать эти тесты!

Если вы не хотите читать остальную часть этого документа, вот основные моменты:

  • Создайте (Create) настройки testdata:
  • <jmeter location>/bin/jmeter -n -t jmeter-test-setup.jmx -Jadmin.user=<username> -Jadmin.pass=<password>

     

  • Запустите (Run) тест с фиксированной нагрузкой (fixed load test):
  • <jmeter location>/bin/jmeter -n -t jmeter-test-fixedload.jmx

    Остальная часть этого документа – это просто разработка этих двух этапов.

     

    Для получения информации о том, как использовать JMeter, обратитесь к документации JMeter.

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

    Тесты производительности JIRA состоят из двух частей:

    • Тест установки – выполняется сначала и подготавливает установку JIRA для последующего теста с фиксированной нагрузкой (fixed load test)
    • Тест с фиксированной нагрузкой – имитирует ряд пользователей, обращающихся к установке JIRA.

    Тест установки

    Тест установки отвечает за:

    • Создание проектов
    • Создание пользователей
    • Создание и комментирование (и, возможно, решение) задач.

    Выполнение теста установки:

    После извлечения файла zip-теста производительности перейдите в каталог performanceTest. Из этого каталога запустите тест настройки производительности:

    <jmeter location> / bin / jmeter -n -t jmeter-test-setup.jmx -Jadmin.user = <имя_пользователя> -Jadmin.pass = <пароль>

    где <jmeter.location> является базовым каталогом JMeter

     

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

     

    Как видно выше с параметрами admin.user и admin.pass, JMeter поддерживает -Jparameter = значение аргументов команды, чтобы контролировать выполнение. Следующие параметры контролируют выполнение теста установки:

     

    Управление конфигурацией

    Параметр

    По умолчанию

    Обьяснение

    jira.host

    localhost

    Имя хоста или адрес установки JIRA.

    jira.port

    8000

    Сетевой порт, на котором запущена установка JIRA.

    jira.context

    /

    Контекст веб-приложения JIRA

    admin.user

    admin

    Имя пользователя-администратора.

    admin.pass

    admin

    Пароль администратора.

    script.base

    .

    Расположение тестов производительности. Это следует устанавливать только в том случае, если вы запускаете тесты вне пределов каталога сценариев.

    remove.data

    false

    Запуск сценария с этим допуском  приведет к удалению пользователей и проектов, созданных тестом.

     

    Пользовательский контроль

    Параметр

    По умолчанию

    Объяснение

    create.users.enable

    true

    Создайте пользователей в целевой установке JIRA. Используйте false, если у вас уже есть пользователи, созданные в другом месте.

    browseissue.max

    250

    Количество пользователей, которые будут созданы для просмотра установки JIRA (так называемые пользователи browseissue).

    createissue.max

    250

    Количество пользователей, которые будут созданы для создания задач (например, пользователи «createissue»).

    editissue.max

    250

    Количество пользователей, которые будут созданы для редактирования задач (например, пользователи «editissue»).

    search.max

    250

    Количество пользователей, которые будут созданы для поиска задач (например, пользователей «поиска»).

    useraction.max

    250

    Количество пользователей, которые будут созданы для просмотра пользовательской информации (так называемые пользователи useraction).

    browseissue.groupname

    никто

    Группа, в которую будут помещаться пользователи «browseissue». Используйте none для группы.

    createissue.groupname

    JIRA-разработчики

    Группа, в которую будут помещены пользователи «createissue». Используйте none для группы.

    editissue.groupname

    JIRA-разработчики

    Группа, к которой будут добавлены пользователи «editissue». Используйте none для группы.

    search.groupname

    никто

    Группа, в которую будут помещаться пользователи поиска. Используйте none для группы.

    useraction.groupname

    JIRA-разработчики

    Группа, к которой будут добавлены пользователи «useraction». Используйте none для группы.

     

    Контроль проекта

    Параметр

    По умолчанию

    Объяснение

    create.projects.enable

    true

    Создавайте проекты. Используйте false, если вы хотите использовать существующие проекты (в существующих данных).

    project.max

    20

    Количество проектов для создания в системе.

     

    Контроль задач

    Параметр

    По умолчанию

    Объяснение

    create.issues.enable

    true

    Создает задачи в целевой установке JIRA. Используйте false, если вы не хотите, чтобы тест создавал примеры задач.

    issue.max

    3000

    Количество задач, которые необходимо создать.

    issue.comment.enable

    true

    Контролирует, добавляются ли комментарии к задачам.

    issue.comment.max

    10

    Если issue.comment.enable истинно, то количество фактических комментариев, созданных по задаче, выбирается случайным образом между 0 и этим значением.

    issue.close

    true

    Контролирует, хотите ли задачи автоматически закрываться после создания.

    issue.close.percentage

    60

    Если параметр issue.close включен, то это значение определяет процент закрытых задач.

    issue.setupload.threads

    10

    Количество потоков, используемых для создания задач.

    issue.setupload.pause

    50

    Количество времени (в миллисекундах), для которого имитируемый пользователь хочет «бездействовать» между каждым запросом(request) во время создания задачи.

    resource.dir

    ресурсы

    Каталог, содержащий ресурсы данных CSV.

     

    Вывод теста

    После того, как вы выбрали целевые настройки, запустите JMeter, и вы должны получить примерно следующее:

    jmeter -n -t jmeter-test-setup.jmx
    Created the tree successfully using jmeter-test-setup.jmx
    Starting the test @ Mon Oct 26 23:53:28 CDT 2009 (1256619208435)
    Generate Summary Results + 931 in 31.3s = 29.7/s Avg: 26 Min: 13 Max: 3256 Err: 0 (0.00%)
    Generate Summary Results + 2948 in 180.0s = 16.4/s Avg: 31 Min: 8 Max: 1162 Err: 0 (0.00%)
    Generate Summary Results = 3879 in 211.4s = 18.3/s Avg: 29 Min: 8 Max: 3256 Err: 0 (0.00%)
    Generate Summary Results + 5048 in 179.9s = 28.1/s Avg: 44 Min: 7 Max: 936 Err: 0 (0.00%)
    Generate Summary Results = 8927 in 391.4s = 22.8/s Avg: 37 Min: 7 Max: 3256 Err: 0 (0.00%)
    Generate Summary Results + 3114 in 180.1s = 17.3/s Avg: 41 Min: 7 Max: 805 Err: 0 (0.00%)
    Generate Summary Results = 12041 in 571.3s = 21.1/s Avg: 38 Min: 7 Max: 3256 Err: 0 (0.00%)
    Generate Summary Results + 4956 in 179.8s = 27.6/s Avg: 45 Min: 7 Max: 1844 Err: 0 (0.00%)
    Generate Summary Results = 16997 in 751.4s = 22.6/s Avg: 40 Min: 7 Max: 3256 Err: 0 (0.00%)
    Generate Summary Results + 313 in 17.1s = 18.3/s Avg: 37 Min: 7 Max: 165 Err: 0 (0.00%)
    Generate Summary Results = 17310 in 768.5s = 22.5/s Avg: 40 Min: 7 Max: 3256 Err: 0 (0.00%)
    Tidying up … @ Tue Oct 27 00:06:17 CDT 2009 (1256619977181)
    … end of run

    Этот вывод данных будет обновляться каждые 3 минуты, показывая самую последнюю активность, а также резюме для всего теста.

    Журналы результатов

    В дополнение к этим итоговым данным, которые выводятся в командной строке, файлы журналов создаются как для успешных (jmeter-results-setup.jtl), так и для неудачных (jmeter-assertions-setup.jtl) результатов. Эти файлы журнала сохраняются в формате JTL (который основан на XML). Существует несколько парсеров ( синтаксических анализаторов), которые будут генерировать графики из этих файлов журнала. Для получения дополнительной информации см. страницу вики JMeter в журнале Analysis.

    Тест с фиксированной нагрузкой

    После успешного запуска теста установки может выполняться тест с фиксированной нагрузкой. Этот тест будет имитировать ряд пользователей, обращающихся к установке JIRA.

     

    Этот тест имеет ряд параметров для настройки поведения. По умолчанию тест имеет следующее поведение и стратегию:

    • Несколько групп пользователей, все работают одновременно в течение фиксированного времени, каждый из которых имеет небольшую задержку между задачами.

      • Пользователи «Изменить задачу» (Edit Issue) (editissue) просматривают проект, а затем пытаются найти задачу. Они будут комментировать, редактировать или изменять рабочий процесс этой задачи.
      • Пользователи (User Action) (useraction) User Action создают фильтры, просматривают часы и голоса.
      • Пользователи «Обзор задач» (Browse Issue) (browseissue) просматривают проекты и проблемы.
      • Пользователи «RSS» просматривают проект, а затем периодически берут RSS-ленту для этого проекта.
      • Пользователи «Создать задачи» (Create Issues) (createissue) добавляют в экземпляр новые задачи.
      • Пользователи «Поиск задач» (Search Issues) (search) ищут задачи, используя текстовое поле быстрого поиска.

     

    Клиент JMeter не выполняет JavaScript. Производительность JavaScript зависит от нескольких факторов, таких как скорость вашего браузера и рабочей станции. JMeter не измеряет это.

    Выполнение теста с фиксированной нагрузкой:

    <jmeter location>/bin/jmeter -n -t jmeter-test-fixedload.jmx

    Как и в случае теста установки (выше), эта команда будет запускать тест с фиксированной нагрузкой со значениями по умолчанию. Аналогичным образом, можно управлять выполнением JMeter с параметрами -J. Тест с фиксированной нагрузкой имеет следующие доступные параметры:

    Управление конфигурацией

    Параметр

    По умолчанию

    Объяснение

    jira.host

    localhost

    Имя хоста или адрес установки JIRA.

    jira.port

    8000

    Сетевой порт, на котором запущена установка JIRA.

    jira.context

    /

    JIRA контекст webapp.

    admin.user

    admin

    Имя пользователя-администратора.

    admin.pass

    admin

    Пароль администратора.

    script.base

    .

    Расположение тестов производительности. Это должно только быть установлено, если Вы выполняете тесты снаружи каталога скриптов.

    script.runtime

    1800

    Количество времени для запуска (в секундах).

    resource.dir

    resources

    Подкаталог, содержащий файлы CSV ресурсов. Замените это, если вы хотите настроить внутренние данные.

     

    Редактировать задачу

    Параметр

    По умолчанию

    Объяснение

    editissue.threads

    5

    Количество одновременных пользователей «Редактировать задачу» для имитации.

    editissue.pause

    15000

    Пауза между каждым запросом(request) пользователя «Редактировать задачу» (в миллисекундах).

    workflow.matchname

    (Закрыть | Разрешить) (Close | Resolve)

    Регулярное выражение для соответствия процессу рабочего процесса.

    editworkflow.percentage

    20

    Процент запросов(requests) пользователя «Редактировать задачу» (Edit Issue), которые будут пытаться изменить рабочий процесс задачи.

    addcomment.percentage

    60

    Процент запросов (requests) пользователя «Редактировать задачу» (Edit Issue) который попытается добавить комментарий к задаче.

    editissue.percentage

    20

    Процент запросов (requests) пользователя «Редактировать задачу» (Edit Issue), который попытается редактировать задачу.

    editissue.issuestoown

    5

    Количество задач, которые тест пытается назначить пользователю «Редактировать задачу» (Edit Issue).

     

    Действия пользователя

    Параметр

    По умолчанию

    Объяснение

    useraction.threads

    1

    Количество одновременных пользователей «Действия пользователя» (User Action)  для имитации.

    useraction.pause

    40000

    Пауза между каждым пользовательским запросом(request) «Действия пользователя» (User Action) (в миллисекундах).

    createfilter.percentage

    10

    Процент запросов (requests) пользователя «Действия пользователя» (User Action) , который будет пытаться создать фильтр.

    viewwatches.percentage

    10

    Процент запросов(requests) пользователя «Действия пользователя» (User Action), который будет пытаться «просматривать часы».

    viewvotes.percentage

    10

    Процент запросов(requests) пользователя «Действия пользователя» (User Action), который будет пытаться просматривать голоса.

     

    Обзор задач и проектов

    Параметр

    По умолчанию

    Объяснение

    browseissue.threads

    40

    Количество одновременных пользователей «Обзор задачи» (Browse Issue) для имитации.

    browseissue.pause

    3000

    Пауза между каждым запросом (request) пользователя «Обзор задачи» (Browse Issue) (в миллисекундах).

    userprofile.percentage

    10

    Процент запросов пользователя «Обзор задачи» (Browse Issue), который попытается просмотреть профиль пользователя.

    browsedashboard.percentage

    20

    Процент запросов пользователя «Обзор задачи» (Browse Issue), который попытается просмотреть панель управления.

    dashboard.category

    allprojects

    Категория проекта для запросов(requests) гаджета статуса проекта.

     

     

    RSS – новостная  лента

    Параметр

    По умолчанию

    Объяснение

    browserss.threads

    10

    Количество одновременных пользователей RSS для имитации.

    browserss.pause

    60000

    Пауза между каждым запросом (request) пользователя «RSS» (в миллисекундах).

     

    Создать задачи

    Параметр

    По умолчанию

    Объяснение

    issue.create.threads

    10

    Количество одновременных пользователей «Создать задачу» (Create Issues) для имитации.

    issue.create.pause

    15000

    Пауза между каждым запросом(request) пользователя «Создать задачу» (Create Issues) (в миллисекундах).

    issue.comment.max

    2

    Максимальное количество комментариев по задаче. Фактическое число выбирается случайным образом между 0 и этим значением.

     

    Поиск задач

    Параметр

    По умолчанию

    Объяснение

    search.threads

    2

    Количество одновременных пользователей «Поиск» (Search) для имитации.

    search.pause

    15000

    Пауза между каждым запросом (request) пользователя «Поиск» (Search) (в миллисекундах).

     

    Вывод теста

    После того, как вы выбрали целевые настройки, запустите JMeter, и вы получите результат, похожий на следующий:

    jmeter -n -t jmeter-test-fixedload.jmx
    Created the tree successfully using jmeter-test-fixedload.jmx
    Starting the test @ Wed Oct 28 01:13:22 CDT 2009 (1256710402435)
    Waiting for possible shutdown message on port 4445
    Generate Summary Results + 568 in 97.9s = 5.8/s Avg: 62 Min: 1 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 3861 in 179.4s = 21.5/s Avg: 39 Min: 0 Max: 494 Err: 0 (0.00%)
    Generate Summary Results = 4429 in 277.4s = 16.0/s Avg: 42 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 7356 in 180.0s = 40.9/s Avg: 37 Min: 0 Max: 481 Err: 0 (0.00%)
    Generate Summary Results = 11785 in 457.3s = 25.8/s Avg: 39 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 10841 in 180.1s = 60.2/s Avg: 38 Min: 0 Max: 995 Err: 0 (0.00%)
    Generate Summary Results = 22626 in 637.4s = 35.5/s Avg: 39 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 11821 in 180.3s = 65.6/s Avg: 37 Min: 0 Max: 507 Err: 0 (0.00%)
    Generate Summary Results = 34447 in 817.3s = 42.1/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 11904 in 180.9s = 65.8/s Avg: 38 Min: 0 Max: 658 Err: 0 (0.00%)
    Generate Summary Results = 46351 in 997.4s = 46.5/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 11697 in 180.3s = 64.9/s Avg: 38 Min: 0 Max: 488 Err: 0 (0.00%)
    Generate Summary Results = 58048 in 1177.4s= 49.3/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 11731 in 180.0s = 65.2/s Avg: 39 Min: 0 Max: 810 Err: 0 (0.00%)
    Generate Summary Results = 69779 in 1357.4s= 51.4/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 11646 in 180.0s = 64.7/s Avg: 39 Min: 0 Max: 776 Err: 0 (0.00%)
    Generate Summary Results = 81425 in 1537.4s= 53.0/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 11810 in 180.0s = 65.6/s Avg: 39 Min: 0 Max: 798 Err: 0 (0.00%)
    Generate Summary Results = 93235 in 1717.3s= 54.3/s Avg: 38 Min: 0 Max: 1534 Err: 0 (0.00%)
    Generate Summary Results + 5453 in 109.1s = 50.0/s Avg: 42 Min: 0 Max: 858 Err: 0 (0.00%)
    Generate Summary Results = 98688 in 1826.4s= 54.0/s Avg: 39 Min: 0 Max: 1534 Err: 0 (0.00%)
    Tidying up … @ Wed Oct 28 01:43:49 CDT 2009 (1256712229128)
    … end of run

    Этот вывод текста будет обновляться каждые 3 минуты, показывая самую последнюю активность, а также резюме для всего теста.

    Журналы результатов

    Как и ранее, в командной строке будет отображаться вывод, а файлы журнала будут созданы как для успешных (jmeter-results-setup.jtl), так и для неудачных (jmeter-assertions-setup.jtl) результатов. Эти файлы журнала сохраняются в формате JTL (на основе XML). Существует несколько парсеров (синтаксических анализаторов), которые будут генерировать графики из этих файлов журналов. Для получения дополнительной информации см. страницу вики JMeter в анализе журнала.

     

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *