Перейти к содержимому

Фотография

Как автоматизировать заполнение формы?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 raccoon

raccoon

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 19 мая 2005 - 14:19

Есть задача автоматизировать проверку заполнения формы (GUI). Форма очень большая, поэтому руками каждый раз забивать её не хочется. Попробовала сделать это с помощью Rational Robot, но возникла одна проблема: я не знаю, как заставить Робота заполнять её произвольным образом. То есть с полями для ввода текста всё ясно, а вот что делать с чекбоксами и радиобаттонами? В скрипте прописываются их координаты, а вылавливать координаты всех чекбоксов и радиобаттонов, чтобы потом выбирать из них, мне не хочется. Есть ли какое-то решение моей проблемы (не обязательно с использованием Робота)?

Простите, если вопрос глупый - я совсем недавно занимаюсь тестированием.
  • 0

#2 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 19 мая 2005 - 15:54

Если Robot умеет работать с той средой, в которой создано тестируемое приложение, т.е. умеет распознавать объекты этой среды, то и checkboxes и radiobuttons должны иметь атрибут Name (или что-то подобное). Убедитесь, что Robot распознает эти объекты (возможно вам понадобится соответствующий enabler).
  • 0
Дмитрий Шевченко

HP Software

#3 van

van

    Опытный участник

  • Members
  • PipPipPipPip
  • 475 сообщений
  • ФИО:Ваулин Артем Николаевич
  • Город:Россия, Санкт - Петербург

Отправлено 20 мая 2005 - 06:04

raccoon, я не совсем понял, в чем заключается Ваша проблема: либо в ПРОИЗВОЛЬНОМ заполнении элементов управления, либо же с распознованием чекбоксов и радиобаттонов в RR.

Если Вас интересует произвольное (рандомное) заполнение элементов управления, то RR - не самое лучшее решение проблемы. Наверное, с его помощью можно реализовать данный механизм, но я не пробовал. Посмотрите лучше http://www.stpmag.co...stp-2005-02.pdf статья "Model-Based Testing: Not for Dummies"

Если же проблемы с распознованием контролов, то необходимо почитать доки RR и посмотреть поддерживает ли он контролы Вашей среды разработки.
  • 0
Ваулин Артем
КОРУС Консалтинг
Руководитель отдела тестирования

Мой дневник

#4 PavelB

PavelB

    Постоянный участник

  • Members
  • PipPipPip
  • 169 сообщений
  • Город:Санкт-Петербург

Отправлено 20 мая 2005 - 06:56

Выход такой:
1. Взять тул, который распознает эти элементы формы. Если это будет Rational Robot - отлично.
2. Заполнять их случайным образом, генерируя целое случайное число от одного до N, где N - число элементов контрола. Не знаю, как это делается в RR, но в WR есть функция rand() - выдающая случайное число от 0 до 1 и функция srand (), инициализирующая работу генератора (если её не использовать - будет одна и та же последовательность чисел всё время).
Ну и для вас искомая случайная величина: int (N*rand())
Выбирая объект с таким порядковым номером, Вы и будете получать случайное заполнение форм
  • 0

#5 raccoon

raccoon

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 20 мая 2005 - 10:21

Выход такой:
1. Взять тул, который распознает эти элементы формы. Если это будет Rational Robot - отлично.
2. Заполнять их случайным образом, генерируя целое случайное число от одного до N, где N - число элементов контрола. Не знаю, как это делается в RR, но в WR есть функция rand() - выдающая случайное число от 0 до 1 и функция srand (), инициализирующая работу генератора (если её не использовать - будет одна и та же последовательность чисел всё время).
Ну и для вас искомая случайная величина: int (N*rand())
Выбирая объект с таким порядковым номером, Вы и будете получать случайное заполнение форм

Просмотр сообщения

1. Есть.
2. Ваш совет, конечно, хорош, но я не знаю, как его применить. Как я уже писала, щелчок мыши по чекбоксу или радиобаттону записывается по координате. Для наглядности приведу строку скрипта:
GenericObject Click, "Type=GroupBox;Name=groupBoxMain;\
;Type=Panel;Name=panelMain;\;Type=Control;Name=AutoLoansTypeDetail;\
;Type=TabControl;Name=tabControl1;\;Type=TabPage;Name=tabPage1;\
;Type=Control;Name=GenderRadio", "Coords=9,11"
Мне нужно, чтобы при прогоне теста, чекбоксы и радиобаттоны "прощелкивались" случайным образом. Можно ли это сделать, не указывая координаты щелчка?
  • 0

#6 raccoon

raccoon

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 20 мая 2005 - 10:32

raccoon, я не совсем понял, в чем заключается Ваша проблема: либо в ПРОИЗВОЛЬНОМ заполнении элементов управления, либо же с распознованием чекбоксов и радиобаттонов в RR.

Если Вас интересует произвольное (рандомное) заполнение элементов управления, то RR - не самое лучшее решение проблемы. Наверное, с его помощью можно реализовать данный механизм, но я не пробовал. Посмотрите лучше http://www.stpmag.co...stp-2005-02.pdf статья "Model-Based Testing: Not for Dummies"

Если же проблемы с распознованием контролов, то необходимо почитать доки RR и посмотреть поддерживает ли он контролы Вашей среды разработки.

Просмотр сообщения


Проблема именно с рандомным заполнением.
За статью большое спасибо.
  • 0

#7 PavelB

PavelB

    Постоянный участник

  • Members
  • PipPipPip
  • 169 сообщений
  • Город:Санкт-Петербург

Отправлено 20 мая 2005 - 11:05

В книжке И. Винниченко, "Автоматизация процессов тестирования" пишут, что для CheckBox и RadioButton применяется следеющие методы:
RadioButton/CheckBox Click, recMethod$
Пример: RadioButton Click, "Name=nam;Index=i"
Сам я RR не пользуюсь, поэтому насколько это верно сказать не могу.
  • 0

#8 Nadezhda

Nadezhda

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • Город:Харьков

Отправлено 20 мая 2005 - 12:26

В команде, которую вы написали, координаты не являются необходимыми (насколько я знаю из опыта). Кроме того, это координаты внутри самого элемента, а не внутри окна (формы). Можно третьим параметром поставить "", чтобы координаты не смущали. Попробуйте, я думаю, должно сработать.
А чтобы сделать выбор чекбокса случайным, вам нужно, как говорили выше, генерировать случайное число и в зависимости от него кликать на тот или иной чекбокс. Или кликать/не кликать на один и тот же чекбокс. Тут уже смотрите, как вам нужно. Для RR аналогичные функции rnd (генерация) и randomize (инициализация).
  • 0

#9 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 20 мая 2005 - 13:36

Проблема именно с рандомным заполнением.

Судя по фрагменту кода, который вы привели, у вас помимо рандомизации есть куда более серьезная проблема - объекты не распознаются, поэтому генерируется GenericObject Click вместо RadioButton/CheckBox Click. Еще раз советую сначала убедиться, что Robot поддерживает вашу среду разработки и у вас установлен соответствующий enabler, если таковой требуется.
  • 0
Дмитрий Шевченко

HP Software


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных