(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Использование 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. Объявление тестовой переменной

Для определения тестовой переменной необходимо сначала ее объявить. Чтобы объявить переменную, выполните следующие действия:

  • Щелкните правой кнопкой мыши на контейнере Test Variables.
  • Нажмите кнопку Add.
  • Нажмите Variable Declaration и введите имя переменной.


Рисунок 1. Объявление переменной
Рисунок 1. Объявление переменной

Шаг 2. Настройка области действия тестовой переменной

После объявления тестовой переменной нужно установить область ее действия. Область действия тестовой переменной определяет, будет она видна другим тестам или нет. Можно выбрать любой из следующих вариантов области видимости:

  • This test only (только данный тест).
  • All tests for this user (все тесты для данного пользователя).

Если видимость тестовой переменной установлена в This test only, это означает, что она является локальной переменной и на нее можно ссылаться только в рамках теста, для которого она была объявлена. Тестовая переменная хранится в области данных и невидима для других тестов. К ней можно обратиться только с помощью пользовательского кода.

Если видимость тестовой переменной установлена в All tests for this user, то она является пользовательской (глобальной) переменной. Ее значение может быть сохранено между тестами.

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

В данном примере область действия тестовой переменной установлена в All test for this user, так как переменная будет использоваться совместно с другими тестами.


Рисунок 2. Установка области действия переменной
Рисунок 2. Установка области действия переменной

Шаг 3. Создание элемента SAP Get

В нашем примере необходимо создать элемент SAP Get, поскольку ответ будет встроен в объект SAP GUI (экран). Элемент SAP Get извлекает строку экрана, которая будет использоваться в качестве ссылки.

Чтобы создать элемент SAP Get, выполните следующие действия (см. снимок экрана на рисунке 3):

  1. Открыв тест, разверните транзакцию.
  2. Нажмите тестовый элемент (экран), из которого хотите извлечь строку, и экран автоматически отобразится в окне SAP Protocol Data.
  3. Выберите строку экрана.
  4. Щелкните правой кнопкой мыши на строке и выберите Create element.
  5. Выберите SAP Get на следующем экране.
  6. Нажмите кнопку Finish, чтобы создать элемент.


Рисунок 3. Создание элементов SAP-теста
Рисунок 3. Создание элементов SAP-теста

Шаг 4. Создание ссылки-поля

В данном конкретном примере необходимо создать ссылку- поле , а не просто ссылку, потому что в качестве аргумента в пользовательский код должна быть передана вся строка, чтобы извлечь из нее номера заказа.

Для создания ссылки-поля выполните следующие действия (см. также рисунок 4):

  1. Выберите элемент SAP Get, который создали на шаге 3.
  2. Щелкните правой кнопкой мыши на элементе SAP Get в окне подробных данных тестового элемента.
  3. Выберите Create Field Reference и введите имя ссылки. В данном примере мы оставляем имя по умолчанию, но вообще настоятельно рекомендуется использовать осмысленные имена ссылок. Это упростит их идентификацию в дальнейшем.


Рисунок 4. Создание ссылки-поля
Рисунок 4. Создание ссылки-поля

Шаг 5. Передача ссылки-поля в пользовательский код

Учитывая, что тест Delete order (VA02) не может использовать ответ теста Create order (VA01) в его нынешнем виде, для извлечения номера заказа из ссылки-поля, созданной на шаге 4, используется пользовательский код. Ссылка-поле передается в качестве аргумента в пользовательский код.

Чтобы передать аргумент в пользовательский код (см. рисунок 5):

  1. Выберите пользовательский код щелчком мыши. Свойства пользовательского кода отображаются в области Test Element Details.
  2. Нажмите кнопку Add в разделе аргументов: отобразится другой экран.
  3. Выберите ссылку и нажмите кнопку Select. Ссылка появятся в разделе аргументов.
  4. Сохраните тест.


Рисунок 5. Передача ссылки-поля в пользовательский код
Рисунок 5. Передача ссылки-поля в пользовательский код

Пользовательский код, используемый в данном примере

Первый блок пользовательского кода извлекает номер заказа из ссылки-поля, присваивает его переменной orderNumber и возвращает переменную orderNumber , чтобы ее значение можно было использовать в тесте. Второй блок пользовательского кода записывает значение orderNumber в файл (см. листинг 1). Эта часть не является необходимой, но она служит подтверждением того, что код работает правильно.

Листинг 1. Пример пользовательского кода

package test;

import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
import java.io.*;
import java.util.StringTokenizer;

public class Extracting_OrderNumber implements
        com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {

    private static Object mutex = new Object();
    /**
     * Экземпляры будут созданы при помощи конструктора без аргументов.
     */
    public Extracting_OrderNumber() {
    }

    public String exec(ITestExecutionServices tes, String[] args) {
        
        StringTokenizer userVarTokens = new StringTokenizer(args[0], " "); 
            //$NON-NLS-1$
        String orderNumber = "";
        String tempStr = "";
        while (userVarTokens.hasMoreTokens()) {
            tempStr = userVarTokens.nextToken(); //$NON-NLS-1$
            //tes.getTestLogManager().reportMessage(tempStr);
            try {
                long i = Long.parseLong(tempStr);
                orderNumber = tempStr;
            // возвратить orderNumber; //новый оператор добавлен 5/06/09.
                
            }
            catch (NumberFormatException ne) {
            }
        } //Добавляем orderNumber в файл
        try {
            synchronized (mutex) {
            FileWriter outFile = 
                new FileWriter("C:\\SAP_OrderNumberI4_99U.csv", true);
            outFile.write(orderNumber + "\r\n");
            outFile.close();
            }
        } catch (IOException e) {
            tes.getTestLogManager().reportMessage(
               "Unable to write to C:\\SAP_OrderNumberI4_99U.csv");
        }
        return orderNumber; //change from return null, 
            to return orderNumber on 5/06/09
       }            

    }

Шаг 6. Присваивание данных из пользовательского кода тестовой переменной

На этом последнем шаге тестовой переменной orderNumber в тестовом модуле Create order (VA01) присваивается возвращаемое пользовательским кодом значение. Значение, хранящееся в переменной orderNumber , будет использоваться в качестве входных данных для запроса в тестовом модуле Delete order (VA02).

Чтобы установить тестовую переменную в тестовом модуле Create order (VA01):

  1. Щелкните правой кнопкой мыши на тестовом элементе и нажмите кнопку Insert (как показано на рисунке 6). При желании можете нажать кнопку Add. Убедитесь, что оператор set variable размещен сразу после пользовательского кода. Можно с помощью кнопок Up и Down переместить пользовательский код в соответствующее место.
  2. Выберите Variable Assignment.
  3. Выберите тестовую переменную (в данном случае orderNumber ).
  4. Нажмите кнопку ОК.


Рисунок 6. Присваивание пользовательского кода тестовой переменной
Рисунок 6. Присваивание пользовательского кода тестовой переменной

На рисунке 7 показан готовый тест, демонстрирующий все шаги по созданию и заданию тестовой переменной в тесте.


Рисунок 7. Тест, демонстрирующий шаги с 1 по 5
Рисунок 7. Тест, демонстрирующий шаги с 1 по 5

Следующие два шага демонстрируют, как ссылаться на тестовые переменные в тестовых модулях.

Шаг 7. Объявление тестовой переменной для второго теста

Во втором тестовом модуле (Delete order) объявите переменную с тем же именем, что и в первом тестовом модуле (Create order).

Шаг 8. Замена данных теста тестовой переменной

В этом примере данные второго теста (orderNumber) заменяются переменной, объявленной на шаге 7.


Рисунок 8. Замена данных теста тестовой переменной
Рисунок 8. Замена данных теста тестовой переменной

Шаг 9. Использование тестовых модулей в тестовом сценарии

Этот шаг демонстрирует сценарий, смоделированный с использованием тестовых модулей. Эта рабочая нагрузка эмулирует работу пользователя, который создает заказы в системе SAP и удаляет их.


Рисунок 9. Модельный сценарий теста SAP, использующий тестовые модули SAP
Рисунок 9. Модельный сценарий теста SAP, использующий тестовые модули 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.


Рисунок 10. Тестовые модули HTTP, связанные посредством тестовых переменных
Рисунок 10. Тестовые модули HTTP, связанные посредством тестовых переменных

На рисунке 11 показан сценарий, который объединяет три тестовых модуля, полученных из разных записей HTTP-тестов. Первый (Login) и третий (Logout) тестовые модули получены из одной записи, а второй тестовый модуль - из другой записи. Связи между этими тестовыми модулями были созданы вручную.


Рисунок 11. Пример связывания тестовых модулей из разных тестов
Рисунок 11. Пример связывания тестовых модулей из разных тестов

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 18.10.2011 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM RATIONAL Clearcase Floating User License + Sw Subscription & Support 12 Months
Rational ClearCase Multisite Floating User License
Rational ClearQuest Floating User License
IBM RATIONAL Clearcase Floating User From Rational Clearcase Lt Floating User Trade Up License + Sw Subscription & Support 12 Months
IBM RATIONAL Quality Manager Quality Professional Authorized User Single Install License + Sw Subscription & Support 12 Months
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
СУБД Oracle "с нуля"
Мастерская программиста
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100