|
|
|||||||||||||||||||||||||||||
|
Создание в Rational Performance Tester расширенного теста загрузки файлаИсточник: IBM
Об этой статьеМногие Web-приложения имеют функциональность загрузки, позволяющую пересылать или хранить файлы в виде двоичных данных. Хотя в IBM Rational Performance Tester имеются функции для управления двоичными данными в записях тестов, иногда необходим более глубокий уровень настройки. Примеры статьи демонстрируют использование в Rational Performance Tester функции замены основного файла и создание более сложных тестов, использующих несколько файлов и несколько платформ. Статья предназначена для пользователей Rational Performance Tester с уровнем квалификации от среднего до продвинутого. Запись операции загрузкиОперации загрузки записываются обычным способом. В приведенном ниже примере показаны действия для Web-приложения, использующего протокол HTTP, но те же подходы применяются и для других сетевых протоколов.
Рисунок 1. Настройки создания нового теста
Запустится указанный в программе записи браузер (Windows > Preferences > RPT HTTP Recording), который используется для выполнения операции Upload (загрузка). Совет. Рисунок 2. Панель инструментов Recorder Test Annotation
После завершения программы записи и закрытия браузера будет автоматически сгенерирован тест. Rational Performance Tester автоматически определит двоичные данные, связанные с переменной MimeFileContent (см. рисунок 3). Рисунок 3. Генерирование теста
Замена основного файлаВ большинстве сценариев тестирования различные одновременно работающие пользователи многократно выполняют одни и те же операции. Это относится и к операциям загрузки. Сценарий тестирования будет более реалистичным, если пользователи будут загружать разные файлы, а не только тот, который использовался при записи. В Rational Performance Tester это можно сделать за несколько шагов при помощи встроенных функций:
Рисунок 4. Пример пула
Рисунок 5. Пример пула 2, мастер New Datapool
Пул приведен на рисунке 6. Рисунок 6. Пример пула 3
Рисунок 7. Пример пула 4, задание типа unManagedFile для переменной Path
Рисунок 8. Замена данных 1
Рисунок 9. Select Data Source
Рисунок 10. Замена данных 2
Рисунок 11. Замена данных 3, выбор пула и столбца
Настройки, показанные на рисунке 12, означают произвольный выбор файла при выполнении каждой итерации. При достижении последней строки пула выполнение начнется повторно с первой строки. Рисунок 12. Настройки пула для режима доступа
Рисунок 13. Замена данных 4
При правильном выполнении предыдущих шагов вы увидите замены в представлении Test Data (см. рисунок 14). Рисунок 14. Замена данных 5
Теперь можно выполнить тест с несколькими пользователями. Каждый из них на каждой итерации будет выбирать из пула произвольный файл и менять двоичные данные в HTTP-запросе загрузки. Такая настройка должна работать в большинстве случаев, хотя иногда может потребоваться замена и других переменных. Например, можно задать имя файла в другой переменной или может потребоваться также указать расширение файла. Некоторые из этих сценариев будут рассмотрены в следующем разделе. Расширенные тестыВ данном разделе рассматриваются два примера расширенных тестов, дополняющих описанный выше базовый сценарий. Выполнение теста на различных платформахОдним из требований замены файла является указание в пуле полного пути к файлу. Это означает, что файл должен находиться в конкретном месте агента тестирования. Например, если создан сценарий для агента Microsoft Windows, его можно выполнить на любой Windows-машине, просто скопировав папку пула в то же самое место на машине тестирования. Однако он не будет работать на платформе Linux. Если в среде тестирования присутствуют агенты как под Windows, так и под Linux, можно после всех изменений данных создать копию теста и отредактировать ее для использования в Linux.
Рисунок 15. Замена данных, Linux
Рисунок 16. Добавление специального кода
Листинг 1. Изменение метода exec специального кода test.GetOspublic String exec(ITestExecutionServices tes, String[] args) { String os = System.getProperty("os.name"); if (!os.startsWith("Windows")){ return "Linux"; }else{ return "Windows"; } } Вставьте все операции и страницы после специального кода в условии If и укажите следующие параметры условия и управления тестом (см. рисунок 17).
Рисунок 17. Параметры условия If
Примечание. Теперь можно создать программу тестирования, содержащую обе версии теста загрузки. Во время исполнения в зависимости от операционной системы агента, на котором выполняется сценарий, будет запущена соответствующая версия, а другая будет пропущена. Рисунок 18. Шаблон Upload Schedule
Согласование других параметровПростая функция замены файла достаточна для большинства случаев, но иногда необходимо согласовать другие параметры, чтобы запрос загрузки работал правильно. Это может быть:
В следующем примере будут настроены параметры содержимого файла, а также сгенерировано произвольное имя файла, содержащее расширение, соответствующее типу файла, указанному в пуле. На рисунке 8 показан параметр HTTP-запроса file, который представляет имя файла. В нем задается имя файла, загружаемого в процессе записи (Desert.jpg). В пуле основного файла (см. рисунок 6) есть разные типы файлов (.bmp, .doc, .zip и т.д.). Если не коррелировать это значение во время исполнения (когда Rational Performance Tester меняет содержимое файла), файл будет загружен с именем, заданным в процессе записи. Во избежание этого нужно заменить данный параметр при помощи специального кода, который сгенерирует произвольное имя файла и добавит расширение, передаваемое в HTTP-запросе. Существует много способов сгенерировать произвольное имя. Простейший из них - добавить к имени файла метку времени (которая является переменной Rational Performance Tester). Чтобы получить более реалистичные имена файлов, в следующем примере будут использованы четыре пула слов (Words), из которых будет выбираться произвольное число слов для создания имени файла. Кроме того, будет добавлено расширение на основании файла, выбранного из пула.
Результат должен быть похож на пул Words, показанный на рисунке 19. Рисунок 19. Пул Words
Листинг 2. Метод exec специального кодаpublic String exec(ITestExecutionServices tes, String[] args) { Random randomGenerator = new Random(); int random = randomGenerator.nextInt(100) + 1; String filename=args[0]; if (random>25)filename=filename+" "+args[1]; if (random>50)filename=filename+" "+args[2]; if (random>75)filename=filename+" "+args[3]; String extension=args[4].substring(args[4].lastIndexOf(".")+1,args[4].length()); filename=filename+"."+extension;
В итоге панель Arguments для специального кода должна быть похожа на рисунок 20. Рисунок 20. Генерирование специального кода Filename
Ваш запрос должен походить на рисунок 21. Рисунок 21. Замена имени файла при помощи специального кода
Замена нескольких имен файловЕсли имя файла встречается в запросе несколько раз, просто повторите предыдущий шаг для всех экземпляров. В качестве альтернативы можно использовать функцию Find в Rational Performance Tester. Выполните следующие действия:
Рисунок 22. Замена нескольких экземпляров имени файла - 1
Рисунок 23. Замена нескольких экземпляров имени файла - 2
Рисунок 24. Замена нескольких экземпляров имени файла - 3
|
|