SilkPerformer

Материал из Циклопедии
Перейти к навигации Перейти к поиску

SilkPerformer — платный инструмент для автоматизированного нагрузочного тестирования веб-систем различного уровня сложности. Инструмент создан компанией Borland, которая в настоящее время приобретена британской компанией Micro Focus.
SilkPerformer является мощным и в то же время сложным(про это дальше) в использовании инструментом нагрузки и стресс-тестирования корпоративного класса. Визуальный сценарий и возможность тестирования нескольких прикладных сред с тысячами одновременных виртуальных пользователей позволяет тщательно проверить корпоративные приложения на надежность, производительность и масштабируемость, прежде чем они будут развернуты, независимо от их размера и сложности. Мощный анализ первопричин и инструменты управления отчетностью помогают изолировать проблемы и быстро принимать решения, тем самым минимизируя цикл испытаний и ускоряя выход на рынок.

Ключевые преимущества[править]

Значительно снижены затраты на дефекты в многоуровневых корпоративных приложениях путём тестирования функциональности, совместимости и производительности удаленных компонентов в начале цикла разработки, еще до построения клиентских приложений. Можно быстро генерировать нагрузочные скрипты для веб-служб, .NET, EJB и Java RMI объектов. Кроме того, есть возможность использовать модульное тестирование в средах Java и .NET.
Технология TrueLog для HTML, XML, SQL, Oracle Forms, Citrix, TCP/IP, UDP и данных на основе протокола обеспечивает полный визуальный анализ первопричин с точки зрения конечных пользователей. TrueLogs визуально воссоздаёт данные, которые пользователи получают в течение нагрузочных тестов. Для HTML-страниц включаются все внедренные объекты. Это позволяет визуально анализировать поведение приложения, как ведут себя ошибки в ходе испытаний. Кроме того, присутствует подробная статистика времени отклика как отдельных запросов, так и целых транзакций.

Ключевые недостатки[править]

  • Простой язык. СЛИШКОМ простой язык. Там, даже, нету Replace функции у строкового типа. Там вообще практически ничего нету. Все нужно имплементировать собственноручно. В том числе и таймер/stopwatch.
  • Собственная имплементация Xpath, лишь частично совместимая с общепринятой
  • Собственная имплементация регулярных выражений. Очень и очень бедная[1]
  • Отсутствие брейкпоинтов. Да-да, «современная» IDE не имеющая брейкпоинтов как таковых. Вам прийдется все логировать через print() и смотреть логи. Каждый раз. И заново проигрывать весь написанный тест, даже, если ваш тест проходит 20 минут.
  • СверхСовременная среда разработки, в которой невозможно было поменять шрифт и его размер до 17.5 версии IDE. В то время как «точка с запятой» и «двоеточие» на первый беглый взгляд практически неотличимы.
  • Абсолютно неинформативные ошибки (Конечно же, в этом плане запросто сможет потягатся IDE макросов в майкрсофт офисе, здесь немного лушче. НЕМНОГО.)
  • Невозможность вызвать функцию возвращающую некоторое значение как параметр другой функции. То есть DoSomeAction(StrLen(«hello»)); может обернутся абсолютно неинформативной ошибкой, которая, даже не будет показыватся. Вместо неё будет пустрая строка в логе, пока не кликнешь по ней. Тогда ошибка будет показыватся, но более информативной она не станет. Поэтому нужно сначала результат StrLen («hello») присвоить в переменную. Причём, что интересно, так не всегда. Иногда это делать можно, а иногда нет. Точная причина такого поведения неизвестна даже самим разработчикам.
  • Невозможность инициализировать локальную переменную (то есть вы сначала объявляете локальную переменную, а потом внутри метода уже присваиваете значение)
  • Ряд типов данных невозможно объявить локальными в принципе.
  • Вызываемая функция должна быть объявлена ДО функции которая вызывает. Напоминаю: этот язык и сама утилита существуют с 2006 года. СОВРЕМЕННЫЙ ЯЗЫК, а болячки те же, что и у паскаля созданного в 1970 году.
  • Невозможность имплементировать собственный клас/тип данных.
  • В новых версиях(в 2017 году) они добавили поддержку других браузеров (Не только IE). Это было сделано с помощью бесплатного Selenium. Напоминаю, что SilkPerformer платный и совсем не дешевый.
  • Работа с масивом и листом так же нежелательна. Мало того, что она имеет скудный функционал, так еще и иногда этот скудный функционал вообще не работает (например, выдает левую ячейку, вместо запрашиваемой)
  • Рекордер тестов, как и в любом серьезном продукте, бесполезен.
  • Невозможно делать Drag-And-Drop действие во время тестов. Единственный шанс — имплементировать вручную его с помощью JS. А поскольку это всё делается в браузере на движке IE, то вы не сможете имплементировать это используя Xpath Selector (JS в IE его не поддерживает). Вам прийдется это делать с помощью CSS селектора, что в свою очередь повлечет за собой соответствующие этому селектору недостатки, а также невозможность придерживатся одного типа селекторов в рамках одного проекта.

Цикл проведения теста[править]

  1. Настройка основных параметров, таких как имя проекта и тип приложения в процессе тестирования.
  2. Создание тестового сценария с помощью Recorder SilkPerformer, который производит захват и запись трафика через обычный браузер и генерирует тестовый сценарий.
  3. Настройка тестового скрипта для обработки информации о сессии, параметризованных входных данных и выполнении функций проверки входных и выходных данных.
  4. Определение рабочей модели нагрузки
  5. Запуск нагрузочного теста
  6. Анализ результатов теста на стороне клиента с помощью Performance Explorer и анализ серверных логов с помощью Server Analysis
  7. Быстрое и лёгкое создание детальнейшей отчётности по тесту, включая все необходимые графики

Тестирование с нескольких машин[править]

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

Встраивание в автоматическую сборку проектов средствами Hudson и Jenkins[править]

Вместе с SilkPerformer поставляется инструмент SilkCentral, имеющий web-интерфейс и API для управления удалёнными запусками нагрузочных тестов, сбора и анализа результата в автоматическом режиме.

Встроенный язык BDL[править]

Нагрузочные скрипты в SilkPerformer описаны встроенным языком BDL (Benchmark Description Language). Язык алгоритмический. Про ключевые недостатки языка можно почитать выше.

Примечания[править]

Ссылки[править]

microfocus.com

borland.com