Для установки Uluru

advertisement
Uluru
Оглавление
1. Введение .................................................................................................................................................. 3
2. Системные требования ........................................................................................................................... 3
3. Установка.................................................................................................................................................. 3
4. Запуск........................................................................................................................................................ 5
4.1. Команда................................................................................................................................................. 5
4.2. Отчет запуска ........................................................................................................................................ 5
5. Конфигурация запуска............................................................................................................................. 5
4.1 Файл конфигурации............................................................................................................................... 5
5.2. Таблица параметров файла конфигурации........................................................................................ 6
5.3. Пример. Содержание файла конфигурации ...................................................................................... 7
1. Путь к Jmeter .................................................................................................................................... 7
2. Список тестов для запуска .............................................................................................................. 7
4. Целевые сервера для нагрузочного тестирования....................................................................... 8
5. Время запуска тестов и кол-во пользователей для сценария, другие опции запуска ............. 8
6. Индивидуальные опции запуска групп тестов или тестов ........................................................... 9
7. Генерация тестовых данных ........................................................................................................... 9
8. Снятие статистики Sar-ом и проверка запуска гласс-фиша ........................................................10
9. Рассылка отчета на email..............................................................................................................11
1. Введение
Данная программа автоматизирует запуск сценариев нагрузочного тестирования,
осуществляет сбор статистики утилизации ресурсов на удаленных серверах во время
запуска, строит отчет о запуске.
Cистема написана с использованием Born again shell (bash) и Java. Тестовые сценарии
разработаны с использованием продукта Apache Jmeter.
Система поставляется с комплектом тестов для шины BIS, «Личного кабинета» и «Синих
страниц». База тестов может легко расширяться, так как используются тесты, созданные с
помощью утилиты Jmeter.
2. Системные требования


Операционная система Linux.
Аппаратные требования зависят от нагрузки, которую должна воспроизводить
система. К примеру - для эмуляции 500 пользователей «Личного Кабинета»
работающих одновременно (запуска тестового сценария в 500 потоков) требуется
o оперативная память от 1.5Гб
o процессор Intel Core(TM)2 Quad CPU Q9400 @ 2.66GHz
3. Установка
Uluru поставляется в виде архива Uluru.tar. Для корректной работы «Uluru», на хосте
необходимо предварительно установить JRE 1.6 и Jmeter 2.3.. Процесс установки Java
Runtime Environment в данной инструкции не описывается.
Для установки Uluru:



Распакуйте файл Uluru.tar в директорию, в которую вы хотите установить Uluru
(далее – [ULURU_HOME] )
в файл [ULURU_HOME]/conf/trusted_hosts добавьте список серверов окружения, на
которых развернуты компоненты тестируемой системы.
Для завершения установки запустите скрипт
[ULURU_HOME]/bin/sanity.sh
Этот скрипт автоматически установит утилиты, необходимые для работы Uluru и
доверительные отношения с хостами из списка trusted_hosts (Login: login, Password:
password)
Список утилит:
 openssh-clients – ssh утилита. Нужна для удаленного доступа к серверам (проверка
работы глассфиша и сбора статистики SAR-а). На серверах из списка trusted hosts
должен быть установлен ssh.
 which – определяет полный путь к файлу.
 sed – текстовый процессор.
 sendmail – для оправки отчета на почту
 expect – для автоматической установки доверительных
отношений с сервером, без диалога с пользователем.
 sar - для снятия статистики утилизации системных
ресурсов сервера.
Структура директории Uluru:
/[ULURU_HOME]
/bin/
- bash скрипты программы
/doc/
- описание тестов в файле tests.xls и текущий документ readme.
/conf/
- конфигурационные файлы для запуска тестов
/scripts/
- скрипты Jmetera (*.jmx).
/AIS/*.jmx
- тесты на Account Information Service
/AMS/*.jmx
- тесты на Account Management Service
/SC/*.jmx
- тесты на SelfCare (личный кабинет)
/preScripts/
- скрипты (*.sh) , запускаемые перед тестом (если установлен флаг
EXECUTE_PRE_SCRIPTS=YES). Название bash cкрипта должно
совпадать
с названием теста.
/AIS/
/AMS/
/addDevice/*.sh
/createBSSAccount/*.sh
/removeDevice/*.sh
/updateAccountType/*.sh
/SwitchDeviceProfile/*.sh
/postScripts/
- скрипты, запускаемые после теста, если установлен флаг
EXECUTE_POST_SCRIPTS=YES. Аналогично preScripts.
4. Запуск
4.1. Команда
Запуск тестов на исполнение производится командой
/Uluru/bin/Uluru.sh <props_file>
где:
<props_file> - имя конфигурационного файла, в котором описан набор тестов и условия
запуска. Указывается короткое имя файла, который должен находиться в каталоге
[ULURU_HOME]/conf/
4.2. Отчет запуска
В результате запуска, система формирует отчет в каталоге, имя которого определяется
в конфигурационном файле.
Структура директории отчета:
Uluru.report – итоговый отчет по всем запущенным тестам с финальными данными
/имя_теста_ID/
/имя_теста_ID/
/имя_теста_ID/
…
/имя_теста_ID/
Для каждого теста после запуска записывается в поддиректорию:




Summariser_Test.log – отчет, содержащий временной ряд показателей
производительности теста. Генерируется JMeter-ом
автоматически.
Jmeter.log
- системный лог работы Jmetera.
Sar.report.%host% - отчет SAR-a по утилизации ресурсов на хосте %host%
Errors.log
- список входных данных, при которых в нагрузочном
тесте произошли ошибки.
5. Конфигурация запуска
4.1 Файл конфигурации
Для конфигурации запуска нагрузочных тестов требуется создать файл, который будет
содержать параметры запуска:
1) Список тестов для запуска, упорядоченных в группы
2) Время запуска нагрузочных тестов
3)
4)
5)
6)
7)
Кол-во потоков (пользователей) нагрузочных тестов
Сервер, на который будут нацелены нагрузочные тесты
Путь к директории Jmeter
Путь к директории тестовых данных
Файлы генерации данных (файл описания пулов данных и файл описания запросов
к данным пулам данных)
8) Путь к директории отчета
9) Список серверов, на которых в процессе запуска тестов требуется собирать
статистику предоставляемую утилитой SAR.
10) Список серверов, на которых запускать глассфиш перед тестом, в случае, если он
не был запущен.
5.2. Таблица параметров файла конфигурации
Параметр
Описание
JMETER_PATH
Путь к JMETER/bin
BM_GROUPS
список групп тестов, которые будут запущены в данной
конфигурации по очереди
%TEST_GROUP_NAME%
Список тестов, которые будут отнесены к текущей группе и
запущены по очереди, если данная группа включена в список
BM_GROUPS.
TARGET_SERVER
Сервер, по которому будет «стрелять» нагрузочные тесты
BM_RUN_TIME
Время работы теста в секундах
RESULT_DIR
Директория отчета о запуске
BM_THREADS_NUM
кол-во потоков для нагрузочного теста (кол-во
пользователей)
BM_RAMPUP_TIME
время в секундах, в течении которых все потоки нагрузочного
теста будут запущены
PAUSE_BETWEEN_RUNS
время в секундах на паузу между запусками тестов
JMETER_SAMPLE_VARIABLES
переменные теста, которые буду записаны в файл errors.log в
случае, если нагрузочный тест пройдет с ошибкой при данных
переменных.
JMETER_CL_SUFFIX
параметр, добавляемый к концу строки запуска JMeter-а
GENERATE_NEW_INPUT_DATA
нужно ли генерировать тестовые данные (YES или NO)
INPUT_DATA_FOR_TEST_DIR
Директорий-источник тестовых данных
DB_CONFIG_FILE
SQL_INPUT_CONFIG_FILE
Название файла в директории %ULURU_HOME%/conf
содержащего описание параметров подключения к БД.
Формат файла.
MY_DB1=(DESCRIPTION=...) login1 password1
MY_DB2=(DESCRIPTION=...) login2 password2
Название файла в директории %ULURU_HOME%/conf
содержащего описание запросов к БД из DB_CONFIG_FILE-а и
файлов, в которые данные запросов будут сохранены.
EXECUTE_PRE_SCRIPTS
Нужно ли выполнять специально подготовленный *.sh скрипт
в папке %ULURU_HOME%/preScripts/ перед тестом. (YES или
NO). Название скрипта совпадает с названием теста.
EXECUTE_POST_SCRIPTS
Нужно ли выполнять специально подготовленный *.sh скрипт
в папке %ULURU_HOME%/postScripts/ после теста. (YES или
NO). Название скрипта совпадает с названием теста.
HOSTS_TO_CHECK_GLASSFISH
Cписок хостов, на которых автоматически проверять статус
запуска гласс-фиша перед исполнением теста и при
необходимости - стартовать его.
SAR_HOSTS
Cписок хостов, на которых мониторить утилизацию ресурсов
SAR-ом в течении исполнения теста.
В конце теста в папке отчета теста сохраняется файл
sar.report.%host_name% с данными утилизации,
полученными SAR-ом на удаленном хосте.
SAR_OPTIONS
Опции SAR-а
MAIL_TO
Список адресов для получения финального отчета.
из файла /RESULT_DIR/Uluru.report
SAR_REPORT_FILTER
Фильтр для отбора статистки SAR-ом (какие именно столбцы
для нас актуальны в отчете)
JMETER_CONSOLE_OUTPUT
Запуская Jmeter, нужно ли выводить в консоль инфомацию.
YES или NO.
5.3. Пример. Содержание файла конфигурации
1. Путь к Jmeter
******************** path to jmeter****************************
#путь к JMeter-y
JMETER_PATH=/mnt/JumpStart/perf/jmeter/bin
2. Список тестов для запуска
******************** tests to run options *******************************
#опция группы тестов, формируем очередь запусков
BM_GROUPS=AIS AMS YOUR_GROUP
#указываем список тестов, принадлежащих определенной группе, в данном случае AIS,
#формируем очередь запусков
AIS=checkAndSuggestLogin getAccounts getBallance getBssAccount getCard getDeviceInfo
#указываем список тестов, принадлежащих определенной группе, в данном случае AMS,
#формируем очередь запусков
AMS=AMS_modifyDevices AMS_createAccount AMS_createBSSAccount AMS_updateAccount#пример
определения группы YOUR_GROUP
YOUR_GROUP=your_test1 your_test2 ... your_testN
3. Целевые сервера для нагрузочного тестирования
******************** target server run options **************************
# разрешение конфликтов при совместимости параметров
# 1-ый приоритет название теста
: TARGET_SERVER.testname=...
# 2-ой приоритет название группы теста : TARGET_SERVER.group_name=...
# по умолчанию берем общий
: TARGET_SERVER=...
# сервер, по которому будет стрелять нагрузочный сценарий (если для группы теста или
#самого теста не определен ниже другой сервер)
TARGET_SERVER=Moranbah.testik.com
# сервер, по которому будет стрелять нагрузочный сценарий, для группы тестов AMS (если
# для теста из группы не определен ниже другой сервер)
TARGET_SERVER.AMS=Moranbah.testik.com
# сервер, по которому будет стрелять нагрузочный сценарий, для группы тестов SC (если
# для теста из группы не определен ниже другой сервер)
TARGET_SERVER.SC=acc-my1.testik.com
# сервер, по которому будет стрелять нагрузочный сценарий, для теста getBallance
TARGET_SERVER.getBallance=sydney.testik.com
4. Время запуска тестов и кол-во пользователей для сценария, другие опции запуска
******************* duration and threads run options *******************
# время работы нагрузочного теста
BM_RUN_TIME=1200
# папка для отчета по запуску
RESULT_DIR=/users/perf/results/kir_results
# кол-во потоков для нагрузочного теста (кол-во пользователей)
BM_THREADS_NUM=5
# время в секундах, в течении которых все потоки нагрузочного теста будут запущены
BM_RAMPUP_TIME=10
# время в секундах на паузу между запусками тестов
PAUSE_BETWEEN_RUNS=10
# переменные теста, которые буду записаны в файл errors.log в случае, если ассерт не
# пройдет.
JMETER_SAMPLE_VARIABLES=message,code,UID,Login,Phone,ScratchCardNumber,IP,email
# параметр, добавляемый к концу строки запуска JMetera
JMETER_CL_SUFFIX= -Х
5. Индивидуальные опции запуска групп тестов или тестов
********************************* Benchmark specific props***********************
# в пункте 5 были описаны общие параметры, которые будут применятся ко всем тестам
# без исключения в случае, если они не переопределены индивидуально для группы
# тестов или конкретного теста из группе.
# приоритеты установки параметра
# 1-ый приоритет - название теста
: ANY_PARAM.testname=...
# 2-ой приоритет - название группы теста : ANY_PARAM.group_name=...
# по умолчанию берем общий
: ANY_PARAM=...
# для группы тестов AIS кол-во потоков определено как 5
BM_THREADS_NUM.AIS=5
# для теста getRegions ставим индивидуальную настройку 7
BM_THREADS_NUM.getRegions=7
# для теста searchAccount_phone ставим индивидуальную настройку 9
BM_THREADS_NUM.searchAccount_phone=9
# для теста searchAccount_phone ставим индивидуальную настройку 9
BM_THREADS_NUM.AMS_createAccount=100
# для группы тестов
JMETER_SAMPLE_VARIABLES.SC=Sc_sample_variables
# переопределяем параметр для группы тестов SwitchDeviceProfile
JMETER_CL_SUFFIX.SwitchDeviceProfile= -JOutputDataDir=/users/perf/Uluru/perfInputData/
# переопределяем параметр для группы тестов AMS
JMETER_CL_SUFFIX.AMS= -JSSObase=prog122
6. Генерация тестовых данных
*************************** Generate DATA properties *************************
# тестовые данные представляют собой результаты SQL запросов в БД (указанных в
# DB_CONFIG_FILE), сохраненные в файл. Конфигурирование производится через файл
# DB_CONFIG_FILE и SQL_INPUT_CONFIG_FILE
# нужно ли генерировать тестовые данные
GENERATE_NEW_INPUT_DATA=NO
# куда генерировать тестовые данные
INPUT_DATA_FOR_TEST_DIR=/users/perf/inputData/perfInputData
# параметры подключения к БД, содержит списки коннекш пулов
# по формату
# MY_DB1=(DESCRIPTION=...) login1 password1
# MY_DB2=(DESCRIPTION=...) login2 password2
# ссылки на коннешн пулы используются в следующем файле
DB_CONFIG_FILE=db.conf
# тестовые данные представляют собой результаты SQL запросов в БД (указанных в
# DB_CONFIG_FILE), сохраненные в файл.
# параметры запросов в базы данных и куда их сохранять
# пример содержания SQL_INPUT_CONFIG_FILE файла
# MY_DB1
"select user_id from customer"
_OUTPUT_DIR_/users.csv
# MY_DB2
"select order_id from order_line"
_OUTPUT_DIR_/id_order.csv
SQL_INPUT_CONFIG_FILE=sqlInputData.conf
7. Выполнение специальных скриптов перед или после теста
***************************** Execute pre-postscript options *********************
# некоторые тесты могут требовать иногда выполнить определенные скрипты перед или
# после запуска. как правило - это тесты на AMS. Cкрипты хранятся в папке
# /Uluru/preScripts/ и /Uluru/postScripts/
# YES или NO - включаем или выключаем их исполнение фреймворкром.
EXECUTE_PRE_SCRIPTS=YES
EXECUTE_POST_SCRIPTS=NO
8. Снятие статистики Sar-ом и проверка запуска гласс-фиша
*********************** Check glassfish, SAR,etc ******************************
# список хостов, на которых автоматически проверять статус запуска гласс-фиша перед
# исполнением теста и при необходимости - стартовать его.
HOSTS_TO_CHECK_GLASSFISH=Moranbah.testik.com
# список хостов, на которых мониторить утилизацию ресурсов SAR-ом в течении
# исполнения теста.
# в конце теста в папке отчета теста сохраняется файл sar.report.%host_name% с данными
# утилизации, полученными саром на удаленном хосте.
# таким образом мы можем мониторить состояние хоста, который "обстреливаем"
# нагрузочными тестами
SAR_HOSTS=Moranbah.testik.com sydney.testik.com
# опции SAR-а при запуске на удаленном хосте
SAR_OPTIONS=-uw
# какие именно колонки данных SAR-а оставляем в отчете
SAR_REPORT_FILTER=Average\|CPU\|cswch/s
# в Non-Gui режиме разрешить ли Jmeter печатать информацию в консоль
JMETER_CONSOLE_OUTPUT=YES
9. Рассылка отчета на email
***********************MAILTO ******************************
#список рассылки итогово отчета Uluru.report из директория RESULT_DIR
MAIL_TO=kkonoplev@yotateam.com vasya.pupkin@mm.com
Download