СМ-Консалт
 

Использование подключаемого пользователем фрагмента кода для произвольного доступа к банку данных

Статьи Тестирование программного обеспечения

Примечание: В этой статье рассматривается IBM® Rational® Performance Tester Version 6.1.2.002

Надежная проверка это нечто большее, чем просто повторение выполнения одного и того же действия. Для имитации реальной работы пользователей специалисты по тестированию могут наилучшим образом использовать преимущества банков данных в IBM Rational Performance Tester. Это шаг вперёд по сравнению с использованием статичных записанных тестов, так как это позволяет тестам выбирать разные значения переменных для каждого выполнения. Например, всякий раз, когда приложение требует от пользователя, ввести критерии поиска, например название фильма, название или его часть могут быть выбраны из банка данных.

Банки данных Rational Performance Tester в настоящее время имеют только последовательный доступ. Ниже в примере поиска фильма, поиск одного и того же названия фильма обрабатывается в одинаковом порядке каждый раз, когда вы запускаете тест. Вы можете улучшить надежность вашей проверки, внося элемент случайности в выбор названий для поиска.

Текстовый файл банка данных

В среде тестирования i5/OS команда автоматизации IBM конвертирует скрипты Mercury LoadRunner для работы с Rational Performance Tester с 2004. Для внесения случайности в выбор переменных для тестирования в i5/OS, мы создали пакет подключаемого кода Rational Performance Tester для произвольного доступа к элементам банка данных. Данная реализация вообще не использует функцию банка данных Rational Performance Tester. Вместо этого, класс Rational Performance Tester DataPool считывает текстовые файлы, которые содержат элементы банка данных для использования.

Файл банка данных, который рандомизирует выбор элементов является простым текстовым файлом, содержащим лишь один элемент в строке. Простой способ реализовать это для Rational Performance Tester — создать папку банка данных для текстовых файлов в тестовом проекте. Эти текстовые файлы включены в файл экспорта, так как они входят в состав проекта Rational Performance Tester. При конвертировании скриптов Mercury LoadRunner вы можете использовать файлы данных LoadRunner в данной реализации.

Класс RPTDataPool

Имя файла для текстовых данных passes поступает в разработчик. Весь файл считывается в объект Java™ Vector при первой попытке доступе. Для того чтобы в случайном порядке извлечь элемент из банка данных, используйте метод getaDataPoolItem . (см. Листинг 1.)

Соображения

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

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


Листинг 1. Метод getaDataPoolItem
                

import .io.*;
import .util.Vector;

public class RPTDataPool {
        private boolean DataPoolIsLoaded = false;
        private String DataPoolFileName;
        private Vector DataPool;
        private int DataPoolCount = 0;
        
        public RPTDataPool ( String fileName )  {
                DataPoolFileName = fileName;
                DataPool = new Vector ();
                DataPoolCount = fillVector ( DataPoolFileName, DataPool);
                DataPoolIsLoaded = true;
        }
        
        public String getaDataPoolItem (  )  {
                
                if ( !DataPoolIsLoaded ) {
                        //System.out.println ( «loading:» + DataPoolFileName);
                        DataPoolCount = fillVector ( DataPoolFileName, DataPool);
                        DataPoolIsLoaded = true;
                }
                return  (String) DataPool.elementAt ( (int (Math.floor (Math.random () *  (DataPoolCount))));
}
        
        private int fillVector ( String fileName, Vector FileLines)  {
                
                // take the Datapool file and read it into a Vector
                // do this only once per test
                int fileLineCounter = 0;
                    BufferedReader brInReader = null;        // read from the file
                    // try to setup a buffered reader and open the file
                    try  { brInReader = new BufferedReader (new FileReader (fileName)); }
                    catch (Exception error)
                    {
                            //System.out.println ( «Error Opening DataPool File: „ + error);
                            return 0;
                    }
                // read the file and place the lines in an array    
                // get the first line of the file
                String sInLine = ReadLine (brInReader);
                // read through the file 
                while  (sInLine != null)
                {
                          //System.out.println („Storing '“+ sInLine+“'»); 
                          FileLines.addElement (sInLine);
                          // read the next line
                          sInLine = ReadLine (brInReader);
                          fileLineCounter++;
                }
                    // At this point, the FileLines Vector has all the lines 
                    from the file and fileLineCounter 
                // indicates the max index value for the array
                return fileLineCounter;
        }

          // ReadLine
          //        This method will read a line from a given file and return the string value
          // ********************************************************************************
          private String ReadLine (BufferedReader brReader)
          {
                    String sReadLine =  «„;
                    try  {  sReadLine = brReader.readLine ();        }
                    catch  (IOException error) 
                    {  //System.out.println („DataPool.test Read Error: „ + error);   }

                return sReadLine;
          } // end of Read
}

Реализация объектов банка данных при проверке

Для создания экземпляров объектов банка данных создайте класс, характерный для тестового проекта Rational Performance Tester. Здесь качестве примера используется MovieSearchDataPools), проект MovieSearch (поиск фильма) требует три различных банка данных. (см. Листинг 2.)


Листинг 2. Пример MovieSearchDataPools
                
        
public class MovieSearchDataPools {
        
        static RPTDataPool Titles =  
        new RPTDataPool ( «C:\\Workloads\\ MovieSearch\\ Datapools\\MovieTitles.txt“ );
        static RPTDataPool Directors =  
        new RPTDataPool ( «C:\\Workloads\\ MovieSearch\\ Datapools\\MovieDirectors.txt“ );
        static RPTDataPool Actors = 
        new RPTDataPool ( «C:\\Workloads\\ MovieSearch\\ Datapools\\MovieActors.txt“ );
        
}

Получение информации из банка данных с помощью custom code

Для того, чтобы извлечь какой-то элемент используйте метод getaDataPoolItem в программном модуле подключаемого кода. Используйте пример Movie Search, для того, чтобы найти произвольное название фильма, как показано в листинге 3.


Листинг 3: Использование метода getaDataPoolItem
                

package test;

import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;

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

        /**
         * Instances of this will be created using the no-arg constructor.
         */
        public GenerateRandomTitle () {
        }

        /**
         * For description of ICustomCode2 and ITestExecutionServices interfaces, 
         see doc located at
         * <INSTALL_DIR>/rpt_prod/eclipse/plugins/
         com.ibm.rational.test.lt.kernel_<PROD_VERSION>/pubdoc
         */
        public String exec (ITestExecutionServices tes, String[] args) {
                
                return MovieSearchDataPools.Titles.getaDataPoolItem ();
        }


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

25.02.2008

Добавить комментарий (анонимные комментарии не публикуются!!!)

ФИО: 
E-mail: 
Тема: 
Комментарий: 
Оценка:   
 
 
 
 
 
Код подтверждения:
Доставка продуктов в торговые сети
   

Новости СМ-Консалт

Мастер-класс для тренеров и руководителей "Работа в аудитории". 1 ступень уже в марте

Обновлено расписание тренингов до марта 2017 года

Бесплатный вебинар 14 декабря в 14 00 по Мск - «Секреты управления ИТ-командой: 10 важных практик, которые сделают команду эффективной»

Новые статьи в библиотеке

Примеры отраслевых решений на основе BIPULSE

Практика реализации модуля интеграции для Rational Software Architect, позволяющего преобразовывать низкоуровневое представление процесса из IBM Rational ClearQuest в UML

Что удивляет в русских менеджерах иностранцев

Разработка ПО с использованием лучших мировых практик и инструментов на Иркутском авиационном заводе

Презентация доклада для IT Global Meetup Санкт-Петербург: "Почему Agile так популярен? Взгляд циника и психолога"

Отчет, презентация и видео доклада для Октябрьской встречи Петербургского клуба менеджеров проектов в IT - SPM Meetup #36

Заказчики и истории успеха

Наши тренинги, семинары, курсы

Дружите с нами на FaceBook

Доставка продуктов в торговые сети
Проверить настройки
Компания
Сделано в СМ-Консалт
Услуги 
Компетенция
  • CMC-TotalTest (скоро)
    уникальная разработка автоматизации функционального тестирования. Альтернатива HP UFT, IBM RFT и Microsoft!
  • CMC-Bisquiter
    автоматизированное тестирование АБС "Бисквит"
  • CMC-Formater
    тестирование печатных и экранных форм
  • CMC-TerminalTest
    тестирование терминальных приложений
  • ProjectTracker
    интеграция ALM и MS Project
  • GanttChart
    модуль управления проектами для IBM Rational ClearQuest и TeamConcert
    Все разработки СМ-Консалт >
  • ИТ-консалтинг
  • Автоматизированное тестирование
  • Ручное тестирование
  • Аутсорсинг тестирования
  • Оптимизация бизнес-процессов
  • Внедрение методологии и инструментов ALM
  • Обучение и коучинг
  • Разработка ПО
  • Интеграция
ООО СМ-Консалт (СМК), 2004-2016.
Карта сайта