Использование IBM Rational Performance Tester для обмена данными между модульными тестами. Часть 2 (исходники, документация)Источник: IBM
Это вторая часть серии из двух статей, посвященной созданию модульных тестов производительности при помощи предоставляемой IBM Rational Performance Tester функциональности разделения тестов с последующим динамическим обменом данными между тестами с использованием тестовых переменных. Эта часть представляет собой пошаговое руководство по применению этих функциональных возможностей для обмена данными между тестами во время выполнения без использования пользовательского пула данных. Введение Это руководство представляет собой пошаговую инструкцию по применению функциональности тестовых переменных, предоставляемой Rational Performance Tester, для обмена данными между тестами во время выполнения без использования пользовательского пула данных. Обязательно прочтите первую статью серии, посвященную использованию предоставляемой Rational Performance Tester функциональности разделения тестов и тестовых переменных для обмена данными между модульными тестами. Процесс связывания тестовых модулей Этот пример демонстрирует, как комбинируются и используются в реальном пользовательском сценарии четыре тестовых модуля SAP. В состав этих тестовых модулей входят тесты Login, Create order (VA01), Delete order (VA02) и Logout. Они были получены при помощи предоставляемой Rational Performance Tester функциональности разделения тестов. Для обмена данными между тестовыми модулями Create order и Delete order используется функциональность тестовых переменных. Шаг 1. Объявление тестовой переменной Для определения тестовой переменной необходимо сначала ее объявить. Чтобы объявить переменную, выполните следующие действия:
Шаг 2. Настройка области действия тестовой переменной После объявления тестовой переменной нужно установить область ее действия. Область действия тестовой переменной определяет, будет она видна другим тестам или нет. Можно выбрать любой из следующих вариантов области видимости:
Если видимость тестовой переменной установлена в This test only, это означает, что она является локальной переменной и на нее можно ссылаться только в рамках теста, для которого она была объявлена. Тестовая переменная хранится в области данных и невидима для других тестов. К ней можно обратиться только с помощью пользовательского кода. Если видимость тестовой переменной установлена в All tests for this user, то она является пользовательской (глобальной) переменной. Ее значение может быть сохранено между тестами. В качестве значения тестовой переменной можно присвоить текстовую строку или значение из другого источника данных. Можно также обрабатывать ошибки во время выполнения теста, когда переменная не инициализирована. В данном примере область действия тестовой переменной установлена в All test for this user, так как переменная будет использоваться совместно с другими тестами.
Шаг 3. Создание элемента SAP Get В нашем примере необходимо создать элемент SAP Get, поскольку ответ будет встроен в объект SAP GUI (экран). Элемент SAP Get извлекает строку экрана, которая будет использоваться в качестве ссылки. Чтобы создать элемент SAP Get, выполните следующие действия (см. снимок экрана на рисунке 3):
В данном конкретном примере необходимо создать ссылку- поле , а не просто ссылку, потому что в качестве аргумента в пользовательский код должна быть передана вся строка, чтобы извлечь из нее номера заказа. Для создания ссылки-поля выполните следующие действия (см. также рисунок 4):
Шаг 5. Передача ссылки-поля в пользовательский код Учитывая, что тест Delete order (VA02) не может использовать ответ теста Create order (VA01) в его нынешнем виде, для извлечения номера заказа из ссылки-поля, созданной на шаге 4, используется пользовательский код. Ссылка-поле передается в качестве аргумента в пользовательский код. Чтобы передать аргумент в пользовательский код (см. рисунок 5):
Пользовательский код, используемый в данном примере Первый блок пользовательского кода извлекает номер заказа из ссылки-поля, присваивает его переменной orderNumber и возвращает переменную orderNumber , чтобы ее значение можно было использовать в тесте. Второй блок пользовательского кода записывает значение orderNumber в файл (см. листинг 1). Эта часть не является необходимой, но она служит подтверждением того, что код работает правильно. Листинг 1. Пример пользовательского кода
Шаг 6. Присваивание данных из пользовательского кода тестовой переменной На этом последнем шаге тестовой переменной orderNumber в тестовом модуле Create order (VA01) присваивается возвращаемое пользовательским кодом значение. Значение, хранящееся в переменной orderNumber , будет использоваться в качестве входных данных для запроса в тестовом модуле Delete order (VA02). Чтобы установить тестовую переменную в тестовом модуле Create order (VA01):
На рисунке 7 показан готовый тест, демонстрирующий все шаги по созданию и заданию тестовой переменной в тесте.
Следующие два шага демонстрируют, как ссылаться на тестовые переменные в тестовых модулях. Шаг 7. Объявление тестовой переменной для второго теста Во втором тестовом модуле (Delete order) объявите переменную с тем же именем, что и в первом тестовом модуле (Create order). Шаг 8. Замена данных теста тестовой переменной В этом примере данные второго теста (orderNumber) заменяются переменной, объявленной на шаге 7.
Шаг 9. Использование тестовых модулей в тестовом сценарии Этот шаг демонстрирует сценарий, смоделированный с использованием тестовых модулей. Эта рабочая нагрузка эмулирует работу пользователя, который создает заказы в системе SAP и удаляет их.
При повторном использовании тестовых модулей в сценарии важно сохранять общую структуру теста. Например, структура SAP-теста должна включать модули Login, несколько других задач и модуль Logout. Кроме того, перед запуском теста важно проверить тестовые модули, чтобы убедиться, что тестовые переменные определены и заданы в модулях соответствующим образом. В SAP-тестах тестовые модули Login и Logout не должны быть связаны с другими тестовыми модулями. Причина состоит в том, что для навигации по системе SAP часто используются транзакции, и SAP-тесты уже сегментированы по транзакциям. Выполнение будет осуществляться последовательно от транзакции к транзакции. Тем не менее необходимо убедиться, что первый тест заканчивается соответствующим экраном, который будет точкой входа для следующего теста. Вот почему при записи теста важно в конце каждой транзакции возвращаться к экрану SAP Easy Access. Модели пользовательского сценария в данном сценарии можно расширить за счет добавления новых тестовых модулей или сократить, удалив один из модулей. Применение этих шагов для HTTP-сценария Действия, описанные в предыдущем разделе, можно использовать и для HTTP-сценария, с небольшими отличиями. Шаги 3 и 4 являются специфическими для тестов графического пользовательского интерфейса SAP. Обратитесь к онлайновой справке Rational Performance Tester Help, чтобы узнать подробнее о создании ссылок и связывании данных в HTTP-тестах. При объединении модулей сплит-тестов из разных HTTP-тестов крайне важно следить за тем, чтобы между тестовыми модулями были установлены связи. Rational Performance Tester посредством тестовых переменных автоматически создает связи между тестовыми модулями, полученными из одной и той же записи в режиме HTTP, и сохраняет их в контейнере тестовых переменных Variables Created by Split Test, как показано на рисунке 10. Однако тестовые модули, созданные из разных записей тестов, при их использовании с другими тестовыми модулями необходимо связывать вручную (см. рисунок 11). Чтобы вручную связать тестовые модули, созданные из различных записей, необходимо убедиться, что переменные создаются и получают значения в тестовых модулях, которые выполняются до и после данного конкретного тестового модуля. На рисунке 10 показан сценарий, который объединяет три тестовых модуля, полученных из одной и той же записи HTTP-теста. Связи между тестовыми модулями были созданы автоматически процессом разделения теста, встроенным в Rational Performance Tester. Обратите внимание на тестовые переменные, объявляемые и задаваемые тестовым модулем Login, которые затем используются вторым тестовым модулем. Кроме того, второй тестовый модуль также объявляет и задает тестовые переменные, которые затем используются в тестовом модуле Logout.
На рисунке 11 показан сценарий, который объединяет три тестовых модуля, полученных из разных записей HTTP-тестов. Первый (Login) и третий (Logout) тестовые модули получены из одной записи, а второй тестовый модуль - из другой записи. Связи между этими тестовыми модулями были созданы вручную.
В данном руководстве показано, как можно связать тестовые модули из различных записей теста посредством тестовых переменных и объединить модули при построении пользовательского сценария. |