• Главная
  • О сайте
  • Архив

Normal testing

From the programmer's worst friend

Feeds:
Записи
Комментарии
« Сколько времени обычный пользователь проводит на сайте знакомств
Как управлять с одной клавиатуры двумя компьютерами через LAN »

CSSH — используем несколько компьютеров для performance testing

13.05.2008 Автор: Alexei Lupan

Незаметно научился делать нагрузочное тестирование. Udaleator уже может предлагать мне работу, только я еще не соглашусь, потому что еще и полсобаки в перформансе не съел. И если он подсунет мне вторую половину этой собаки, я могу подавиться.

Итак, в нагрузочном тестировании главное ухитриться и запустить с нескольких компьютеров скрипты, подобные феноменальному JMeter. Цель скриптов — нежно или грубо грузить тестируемый сервер запросами по определённым сценариям.

Предполагается

  1. Наличие JMeter, или Siege, или ApacheBenchmark, или любую другую подобную утилиту, тестировщик уже освоил.
  2. что выбранная для применения утилита установлена на всех тех компьютерах, которые будут «мочить» сервер
  3. что тестировщик умеет лично перебегать между компутерами (или теребить коллег) и поочередно запускать с них JMeter-атаки.
  4. что на всех задействованных в этом тестировании компьютерах созданы профили с идентичными логином и паролем. Например, testuser/testpass. Кто этого не сделает, тому все равно придется это сделать, а причину я объясню чуть позже.

Теперь сюрприз: что существенно облегчит перебежки тестировщика между компутерами?

Правильно, существенно облегчит перебежки тестировщика между компутерами утилита Cluster SSH. А также любая Ubuntu Gutsy Gibbon или Hardy Heron.

Cluster SSH — программа с графическим интерфесом, позволяющая открыть несколько соединений по SSH и выполнять одновременно во всех них команды.

Установка (на добро)

Открываем терминал:

sudo apt-get install clusterssh
Y, разумеется, Y!

Пока ставится, открываем еще одно терминальное окно (позже будет удобно), и пишем команду, которая создает файл с конфигурацией cssh — starting the utility will be much faster with a configuration file (as this prevents searching for required files):

sudo cssh -u > /home/user/.csshrc

В справке путь указан как $HOME. Если у вас домашняя директорая иная, нежели /home/user/, пишите иное.

Запускаем в этом же (втором) терминалике Midnight Commander с правами root (да не убий Убунту):

sudo mc

В левой панели ищем /home/user/.csshrc и открываем его. Внимательно смотрим содержимое. Внимательно закрываем содержимое, бо нефиг его трогать. Повторять до просветления.

В правой панели переходим в ‘etc/’. Там рожаем файл clusters:

>clusters

Открываем этот файл на исполнение, и вписываем в него IP компьютеров, на которых располагается наше оружие (JMeter, например):

host1 = user@192.168.1.32
host2 = marin@192.168.1.36
host3 = boss@192.168.1.200

stressit = host1 host2
stressitall = host1 host2 host3

Не спеша прочитав, слушаем внимательно.

host1

Количество вписываемых хостов, с которых будем запускать JMeter, неограничено. В этом примере прописано три компьютера. Если надо, пишем сто компьютеров. Или тысячу.

user@192.168.1.36

‘user’ — это имя пользователя на удаленной машине, которых мы заранее завели перформанс-теста ради. Если юзера там зовут ‘Petea’ — пишем в нашем файле ‘Petea’.

‘192.168.1.36’ — это IP. Как круто это знать. IP вам выдаст администратор вашей сети, под пытками с применением пива и пиццы. В общем, как договоритесь.

При первом подключении к удаленным компьютерам CSSH выдаст предупреждение и вопрос, мол, ‘вы точно хотите подключиться к еще неизвестному мне компутера?’ Придется сказать Yes. Зато потом утилита уже будет знать, что мы ломимся к удаленному компу под указанным нами пользователем, и будем спрашивать только пароль входа.

stressit

‘stressit’ — это произвольное сочетание букв, это тэг, который будет распознавать CSSH. Тэг говорит утилите — мы хотим запустить наши руки в компы, которые у тебя прописаны под host1 и host2. Имя тэга зависит только от ваших сексуальных предпочтений. Как хотите, так его и назовите. Я назвал его ‘stressit’, и ничуть не сожалею об этом.

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

‘stressitall’ — это пример другого тэга, который говорит: мы убиваем сервер, сразу абсолютно все наши компы. Почему все? Потому, что для этого тэга я указал абсолютно все наличные в файле ‘host’ — и host1, и host2, и host3. Было бы 100 хостов — пришлось бы прописать их всех. Но сейчас у меня под рукой только три копмьютера, поэтому такая запись в файле ‘clusters’.

Кстати, мы же создали на всех компах тестовых юзеров-пустышек? Значит, наш файл ‘clusters’ выглядит так:

host1 = user@192.168.1.36
host2 = user@192.168.1.37
host3 = user@192.168.1.200

stressit = host1 host2
stressitall = host1 host2 host3

‘MC’ можно закрыть.

Запускаем cssh

В терминал:

sudo cssh stressit

С правами root мы открываем cssh и повелеваем ей запустить именно те хосты, которые прописаны в файле ‘clusters’ под тэгом ‘stressit’.

В терминале для каждого хоста пишут угрозы типа — WARNING: unknown host = (see -i switch, or ignore_host_errors in .csshrc) — ignoring. Их можно игнорировать. Лезть в конфиг-файл и говорить Yes для опции ignore_host_errors не рекомендуется. Пробуйте, если не верите.

При первом подключении к удаленному компьютеру в консоли cssh должен появиться вопрос, мол, вы стукаетесь на такой-то компьютер. Он неизвестен. Вы уверены, что надо к нему подключиться?

Надо полностью написать слово «yes».

Ответ cssh — Warning, permanently added такой-то IP to the list of known hosts, и при последующих запусках этого вопроса не будет. Будет сразу приглашение ввести пароль для доступа. Что нам и нужно.

Теперь предлагаю поэкспериментировать с утилитой. Можно всякие ее немногочисленные опции подергать. Закрыть и снова запустить.

Можно добавить еще один (или сто) хост по рецепту user@server. Но в принципе — нечего тут дергать, если мы уже все прописали в файле ‘clusters’.

Если ковыряние завершено, запускаем утилиту по-серьезному. Откроем два компутера которые у нас под тэгом stressit записаны.

В терминал:

sudo cssh stressit

Видим:

Окна я сам расположил равномерно.

Прошу заметить, что в основном окне есть поле ввода. В нем мигает курсор, и позже мы будем туда вписывать кое-чего, но, прикол, в этом поле ничего из того, что вводится, не отображается… Да и не надо.

Тем не менее, через это поле будем посылать команды во все открытые сеансы (на все компьютеры).

Прошу знать

  • если команду нужно выполнить только для одного сервера, обратитесь к нужному окну терминала.
  • Чтобы исключить сеанс из перечня массового выполнения команд, нужно снять соответствующий флажок в меню ‘Hosts’ в основном окне утилиты.
  • Чтобы исключить все сеансы сразу, используйте команду ‘Toggle active state’ — в основном окне. Применив ее — не жалуемся, сеансы действительно отключаются.
  • Для упорядочивания окон на экране применяем команду ‘Retile’.
  • Справка по программе есть и в меню Help — Documentation, и в консоли — man cssh, и на sourceforge.net.

Все запущено, в основном окне в поле ввода мигает курсор. Сходу пишем пароль для доступа к удаленным юзерам. Он, по правилам юникс, не отображается. Пишем пароль, жмем «Enter» — хо-хо мы получили доступ!

Для разгона впишем команду ‘ls’. Вот теперь отлично видно все, что пишем — это отображается сразу во всех открытых консолях.

Рулез!

Если дома не ждет горячий ужин, то знакомимся еще и с ChainSSH — a shell script to simplify ssh logins via multiple sshgateways/firewallgateaways — вдруг пригодится.

Ваша оценка:

Поделиться ссылкой:

  • Tweet
  • по электронной почте
  • Печать

Понравилось это:

Нравится Загрузка...

Похожее

Опубликовано в Debian, Автоматизация, Откровения, Постановка мозгов, Радости, Performance Testing | Отмечено JMeter | 1 комментарий

Один ответ

  1. на 29.12.2010 в 16:56 Алексей Лупан

    http://blog.milamberspace.net/index.php/jmeter-pages/jmeter-test-de-charges-dun-site-web-mode-demploi/jmeteriser-son-scenario-fonctionnel

    http://andrei-zhukov.livejournal.com/1015.html

    НравитсяНравится



Обсуждение закрыто.

  • Aut bene

    Спiвпрацювальник по підготувальні тестувальників.

    Автор [глоссария] терминологии тестирования (english).

    Неоднократный докладчик [SQA Days], [QA Fest] и других конференций по тестированию ПО.

    Неспешный езжун на «[Волга ГАЗ-21]» 1965 года выпуска.

    Игрун чего-то похожего на тяжелый блюз [на классической гитаре].

    И так [далее].

  • Присоединиться к ещё 1 338 подписчикам

  • Follow Normal testing on WordPress.com
  • Залежи

  • Темы

    • Без рубрики (6)
    • Документация (18)
      • Тест-план (2)
    • Изображения (148)
      • Видео (48)
      • Комиксы (20)
      • Скриншоты (48)
      • Фотографии (46)
    • Инструменты (53)
      • Debian (13)
      • Макросы (1)
      • Трекеры (15)
        • Баг-трекер (8)
        • Тест-трекер (5)
      • LibreOffice (4)
    • Книги (19)
    • Конференции (137)
      • Подкасты (12)
      • Презентации (50)
        • Слайдкасты (10)
      • Семинары (18)
    • Обзоры (1)
    • Постановка мозгов (245)
      • Банальное (168)
        • Не смешно (47)
        • Неприятно (14)
        • Печали (15)
        • Радости (57)
        • Смешно (35)
      • В гостях у психиатра (45)
        • Поросенок v2.0 (3)
        • Странности (12)
        • Удивительные баги (17)
      • Level 80 (2)
    • Соображения (206)
      • Балабольник (10)
      • Гипотезы (11)
      • Озарения (55)
      • Откровения (88)
    • Статьи (23)
      • Интервью (6)
      • Опросы (1)
      • Переводы (11)
    • Управляторское (56)
      • Agile (13)
      • Программисты (23)
      • Рекрутинг (8)
    • Учеба в бою (83)
      • Тренировка (13)
      • Фишки (28)
      • Читерство (9)
    • Testing like… (79)
      • Acceptance testing (5)
      • Business Driven Testing (2)
      • Context-driven testing (2)
      • Defect-based Test Design Technique (1)
      • Автоматизация (37)
        • Performance Testing (5)
      • Рецессионное тестирование (1)
      • Юзероиммитатор (15)
      • Exploratory testing (9)
      • тест-дизайн (8)
      • State Transition testing (1)
      • Unit testing (1)
      • Usability testing (2)
    • To Do (12)
      • Анонсы (7)
  • Тэги

    Calc Excel James Bach Jira Mantis SQA Days SQA Days 7 SQA Days 8 SQA Days 10 Александр Александров Александр Орлов Алексей Баранцев Наталья Руколь Хватит тупить Юля Нечаева
  • Самое читаемое

    • Тестируем поля логин/пароль
    • Группирование данных в Excel
    • Priority & Severity на пальцах обезъянок
    • Как в Excel отображать символ валюты перед цифрами
    • План тестирования должен быть внятным, четким, небольшим
    • Что такое перформанс-тестирование
    • Разница между ошибкой (багом) и дефектом (тоже багом)
    • Ссылки в Confluence. Mazafaka
    • Основные положения тестирования
    • Резюме тестировщика должно быть
  • Комментарии

    • Alexei Lupan к записи Сетап для преподавания в сети
    • Дмитрий к записи Сетап для преподавания в сети
    • Сетап для преподавания в сети | Normal testing к записи Оценка времени на тестирование: неочевидные надводные камни
    • Мария к записи Выделить вкладку страницы в фокусе в Firefox
    • Alexei Lupan к записи Савин, Фолкнер и Нгуен…
    • Тимур Исхаков к записи Савин, Фолкнер и Нгуен…
    • Alexei Lupan к записи Кагбэ собеседования в паблике
  • Блоги о тестировании

    • 1) Блоги тестировщиков на software-testing.ru
    • Про тестинг
    • Selenium IDE — rulezzz!
  • Профессиональное

    • Удобный софт
    • Управление тестированием
    • IT Crowd wikiquotes
    • Testing History

На платформе WordPress.com.

WPThemes.


Отмена
loading Отмена
Сообщение не было отправлено — проверьте адреса электронной почты!
Проверка по электронной почте не удалась, попробуйте еще раз
К сожалению, ваш блог не может делиться ссылками на записи по электронной почте.
Политика конфиденциальности и использования файлов сookie: Этот сайт использует файлы cookie. Продолжая пользоваться сайтом, вы соглашаетесь с их использованием.
Дополнительную информацию, в том числе об управлении файлами cookie, можно найти здесь: Политика использования файлов cookie
%d такие блоггеры, как: