|
|
|||||||||||||||||||||||||||||
|
Реализация условного цикла в Rational Performance TesterИсточник: IBM
Сложность автоматизации растет день ото дня вместе с изменяющимися требованиями. Поэтому необходимо более разумно разрабатывать инфраструктуру автоматизации. Управление решениями является одной из ключевых концепций при создании сложной автоматизации. В IBM Rational Performance Tester можно определить часть теста в виде условного цикла, выполняющегося указанное число раз. Продолжительность цикла можно установить по счетчику , по времени или бесконечной . Но Rational Performance Tester не позволяет динамически устанавливать значение переменной цикла. У новичка в Rational Performance Tester может не быть примера кода, который можно было бы использовать в качестве отправной точки. Поэтому цель данной статьи - обучить вас реализации условного цикла. Мы рассмотрим полный пример сценария автоматизации для условного цикла. Однако это не единственный способ реализации. Создание условного цикла в Rational Performance Tester Логика (управляющая часть) цикла размещена в специальном коде (Java-класс), отвечающем за ограничение числа итераций цикла. Начнем с нового теста производительности. Каждое действие сопровождают снимки экрана. Откройте новый тест в Rational Performance Tester Примечание.
Рисунок 1. Создание нового теста
Рисунок 2. Указание имени теста
Рисунок 3. Выбор протокола и функциональных возможностей теста Добавление в тест бесконечного цикла
При этом добавится элемент loop. Совет. Рисунок 4. Добавление цикла из контекстного меню Add
Рисунок 5. Изменение продолжительности цикла по умолчанию Добавление элемента custom code (специализированный код) для управления циклом
Этот Java-код будет управлять итерациями цикла, основываясь на определенных граничных условиях. В нашем демонстрационном сценарии тестирования мы будем использовать еще один класс, расположенный в сценарии вне цикла, для получения случайного значения числа итераций. Рисунок 6. Добавление специализированного кода в элемент Loop Примечание.
В двух этих примерах используется два названия элементов custom code, предназначенных для двух разных сценариев автоматизации. Первый - для сценария поиска, второй - для сценария создания данных. Проще говоря, это сделано для выполнения рекомендаций и правил именования в Java.
Этот класс предоставляет в код управления циклом случайное значение для ограничения бесконечных итераций цикла предопределенным значением. В реальных сценариях это значение можно заменить любым другим, которое вы решите сделать условием выхода из цикла. Вам придется изменить соответствующим образом код управления циклом. Ниже приведены названия классов в данном примере: customcode.returnRandomValue customcode.controlMyLoop
Краткая справка:
Теперь ваш тест должен выглядеть примерно так, как показано на рисунке 7. Рисунок 7. Экран проекта теста Написание специализированного кода Листинг 1. customcode.returnRandomValue (для случайного числа выполнений цикла)
В данном коде для имитации динамического значения используется генератор случайных чисел, генерирующий целое число в диапазоне от 1 до 10. Мы собираемся передавать его в элемент custom code (customcode.controlMyLoop) внутри цикла для управления числом итераций. Полный код приведен в файле returnRandomValue.java (см. раздел Загрузка). Примечание.
Обычно при разработке сценариев я использую много таких операторов для проверки динамических значений. Это полезно при отладке кода и функциональности. Однако я не использую их при выполнении продолжительных циклов. Листинг 2. customcode.controlMyLoop
Полный код приведен в файле controlMyLoop.java (см. раздел Загрузка). На снимке экрана, представленном на рисунке 8, показано, как возвращаемое из returnRandomValue значение передается в controlMyLoop в качестве аргумента (args[0]) в разделе Test Element Details для customcode.controlMyLoop. Рисунок 8. Случайное значение из returnRandomValue Код проверяет число итераций для внутреннего цикла. Внутренний цикл прерывается при превышении числа итераций проверяемого значения (в данном случае это результат Если число итераций меньше проверяемого значения, код выводит это число. Примечание. Например, во фрагменте псевдокода, представленном в листинге 3, ссылочная переменная myloop будет указывать на LOOP2. Следовательно, этот объект можно использовать для получения числа итераций, а также для прерывания или продолжения цикла.
После завершения предыдущих шагов приступим к выполнению сценария. Мы должны увидеть, что цикл прерывается после определенного числа итераций. На рисунке 9 показано, что случайное число, сгенерированное кодом Итак, цель - прервать цикл при определенном условии - достигнута. Однако проверку выполнения условия для числа, показанную здесь, можно заменить любыми другими сравнениями. Например, можно использовать значение из HTTP-запроса (вместо выводимого в данном случае числа из элемента custom code) и прерывать цикл на основе специальной логики. Рисунок 9. Журнал выполнения теста Как продолжить выполнение цикла по условию Дополнительной возможностью циклов является операция continue. Она полезна, когда нужно пропустить выполнение итерации при определенных условиях. Например, ее можно использовать при выполнения тела цикла только для четных значений до максимального значения. В листинге 4 я модифицировал предыдущий код, чтобы включить это условие. Соответствующий код приведен в листинге 4.
После этих изменений журнал теста будет выглядеть так, как показано на рисунке 10. Рисунок 10. Журнал теста после изменения Можно заметить, что возвращаемое из Я надеюсь, что данная статья будет полезна тем, кто использует для автоматизации тестирования Rational Performance Tester. После прочтения статьи вы сможете создавать условные циклы, даже если являетесь новичком в Rational Performance Tester. Хотя существуют и другие способы достичь тех же результатов, в данной статье продемонстрирован способ, успешно применяемый в наших проектах.
|
|