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

Фотография

Скорость "ручного" ввода средствами TC


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

#1 Stally

Stally

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

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

Отправлено 06 марта 2007 - 14:36

Есть ли возможность увеличить скорость, так называемого, ручного ввода значений в текстовые поля? А то ТС всё же медленно вбивает символы..
  • 0

#2 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 06 марта 2007 - 14:54

как вариант, можете присваивать нужные значения непосредственно свойствам объекта (например, для вставки текста в текстовое поле использовать конструкцию типа object.Text = "my text", вместо метода Keys).

Однако думается мне, что такой подход не совсем хорош, так как нарушает "чистоту эксперимента", при котором эмулируются действия пользователя.

Как нечто среднее между этими двумя способами - использование буфера обмена (в буфер помещать необходимый текст, а потом для контрола делать Keys("^c"))
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#3 AlexP

AlexP

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

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

Отправлено 06 марта 2007 - 15:16

как вариант, можете присваивать нужные значения непосредственно свойствам объекта (например, для вставки текста в текстовое поле использовать конструкцию типа object.Text = "my text", вместо метода Keys).

Однако думается мне, что такой подход не совсем хорош, так как нарушает "чистоту эксперимента", при котором эмулируются действия пользователя.

Как нечто среднее между этими двумя способами - использование буфера обмена (в буфер помещать необходимый текст, а потом для контрола делать Keys("^c"))

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


Моё мнение такое: использовать напрямую свойство (в DevExpress'е - метод) нельзя, если цель - тестирование валидации (сюда же отнесу и обработчики событий - это тоже валидация) контрола на ввод данных. Во всех остальных случаях лучше использовать именно свойство, чтобы ускорить выполнение теста. Использование же буфера от свойств ничем по сути не отличается.
  • 0

#4 Bog_dan

Bog_dan

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

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Богданов Александр

Отправлено 06 марта 2007 - 15:56

Попробуйте так, на глаз работает так же быстро как вставка через свойство

       window.Activate ' делаете активным TextBox         
        str_Input = "example"
        For i = 1 to Len(str_Input)
                s = Mid(str_Input, i, 1)
                keyCode = VkKeyScan(s)
                Call Win32API.keybd_event(keyCode,0,0,0)
        next

  • 0

#5 ss12

ss12

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

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

Отправлено 07 марта 2007 - 07:23

Есть ли возможность увеличить скорость, так называемого, ручного ввода значений в текстовые поля? А то ТС всё же медленно вбивает символы..

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

вообще странно.
Если записать обычную процедуру (не Low-Level), то при воспроизведении все действия (в том числе и заполнение полей) происходят очень быстро.
  • 0

#6 Stally

Stally

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

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

Отправлено 07 марта 2007 - 08:38

Мдя.. понятно..
Я просто думал, что есть какая-нибудь опция, которую я опять не увидел.. :crazy:

вообще странно.
Если записать обычную процедуру (не Low-Level), то при воспроизведении все действия (в том числе и заполнение полей) происходят очень быстро.

Например, когда заполняем карточку сорудника из 50 полей и, скажем, на 20 сотрудников - всё настолько печально-медленно происходит (даже с его довольно быстрым вводом), что хочется застрелиться..
  • 0

#7 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 07 марта 2007 - 09:04

Например, когда заполняем карточку сорудника из 50 полей и, скажем, на 20 сотрудников - всё настолько печально-медленно происходит (даже с его довольно быстрым вводом), что хочется застрелиться


ну... отворачивайся :crazy:
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#8 Melmar

Melmar

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

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


Отправлено 07 марта 2007 - 09:07

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

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

Все равно намного быстрей, чем это смог бы сделать любой оператор :crazy:
  • 0

#9 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 07 марта 2007 - 10:20

вообще странно.
Если записать обычную процедуру (не Low-Level), то при воспроизведении все действия (в том числе и заполнение полей) происходят очень быстро.


возможно, тебе не с чем сравнивать
по сравнению с СилкТестом ТестКомплит действительно заполняет поля медленно, я это заметил сразу, как только начал использовать ТК
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#10 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 07 марта 2007 - 10:32

возможно, тебе не с чем сравнивать
по сравнению с СилкТестом ТестКомплит действительно заполняет поля медленно, я это заметил сразу, как только начал использовать ТК

Все зависит от способа заполнения. Если заполнять путем "вбивания текста", то пожалуй медленнее, а если напрямую стучать по свойствам, то не так уж и медленно. Другое дело, что побочные эффекты могут возникнуть, особенно, если на какие-то действия, которые пользователь должен сделать, чтобы поменять некоторое свойство, навешаны дополнительные обработчики. Так, например, чекбокс можно установить в некоторое состояние не делая при этом клик. Соответственно обработчик клика в этом случае не сработает, что повлечет расхождения в поведении приложения.
  • 0

#11 AlexP

AlexP

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

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

Отправлено 07 марта 2007 - 11:41

Все зависит от способа заполнения. Если заполнять путем "вбивания текста", то пожалуй медленнее, а если напрямую стучать по свойствам, то не так уж и медленно. Другое дело, что побочные эффекты могут возникнуть, особенно, если на какие-то действия, которые пользователь должен сделать, чтобы поменять некоторое свойство, навешаны дополнительные обработчики. Так, например, чекбокс можно установить в некоторое состояние не делая при этом клик. Соответственно обработчик клика в этом случае не сработает, что повлечет расхождения в поведении приложения.

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


Читай моё сообщение выше ;)
  • 0

#12 Bog_dan

Bog_dan

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

  • Members
  • Pip
  • 39 сообщений
  • ФИО:Богданов Александр

Отправлено 07 марта 2007 - 11:43

если я правильно понимаю, то для вбивание текста в поле в ТС предлагается Sys.Keys(), который, действительно, притормаживает. Вариант, предложенный мной выше, с помощью Win32API делает по сути тоже самое - посылает системе event о нажатии клавиши, только работает без тормозов
  • 0

#13 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 07 марта 2007 - 12:06

Все зависит от способа заполнения. Если заполнять путем "вбивания текста", то пожалуй медленнее, а если напрямую стучать по свойствам, то не так уж и медленно. Другое дело, что побочные эффекты могут возникнуть, особенно, если на какие-то действия, которые пользователь должен сделать, чтобы поменять некоторое свойство, навешаны дополнительные обработчики. Так, например, чекбокс можно установить в некоторое состояние не делая при этом клик. Соответственно обработчик клика в этом случае не сработает, что повлечет расхождения в поведении приложения.

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


Читай моё сообщение выше ;)

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


Вот это что ли?

Моё мнение такое: использовать напрямую свойство (в DevExpress'е - метод) нельзя, если цель - тестирование валидации (сюда же отнесу и обработчики событий - это тоже валидация) контрола на ввод данных. Во всех остальных случаях лучше использовать именно свойство, чтобы ускорить выполнение теста. Использование же буфера от свойств ничем по сути не отличается.


По-моему, свойства использовать нужно именно тогда, когда наивысшим приоритетом является скорость выполнения (за неимением других приоритетов) и нет побочных эффектов, а в остальных случаях уже пользовался бы чем-то другим. Вот так бы я расставил акценты (то есть примерно то же самое, но упор именно на приоритетности скорости выполнения).
  • 0

#14 Melmar

Melmar

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

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


Отправлено 07 марта 2007 - 12:22

Коллеги, мне кажется, что способ ввода должен отличаться в зависимости от целей тестирования.
Если тестируется функционал (реакция системы на различные варианты действий пользователя при заполнении формы: ввод из буфера, с клавиатуры, передвижение по полям TAB'ом, ENTER и т.п.) - то лучше стремиться как можно ближе к реальности воспроизвести действия пользователя.
Если же тестируются результаты введенных значений (граничные значения, пустые поля, пробелы и.т.п.) или результаты ввода будут использоваться как исходные данные для следующего теста - то эффективней пользоваться прямым вводом в свойства полей. "Заполнение карточки сорудника из 50 полей на 20 сотрудников" - это тестовое покрытие чего? 50 полей 20-ю вариантами заполнения скорей всего не протестируешь. Возможно, цифры взяты для примера. Так что автору вопроса необходимо определиться с целью данного теста, а, возможно, создать два варианта заполнения карточек разными способами.
  • 0

#15 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 07 марта 2007 - 12:45

Коллеги, мне кажется, что способ ввода должен отличаться в зависимости от целей тестирования.
Если тестируется функционал (реакция системы на различные варианты действий пользователя при заполнении формы: ввод из буфера, с клавиатуры, передвижение по полям TAB'ом, ENTER и т.п.) - то лучше стремиться как можно ближе к реальности воспроизвести действия пользователя.
Если же тестируются результаты введенных значений (граничные значения, пустые поля, пробелы и.т.п.) или результаты ввода будут использоваться как исходные данные для следующего теста - то эффективней пользоваться прямым вводом в свойства полей.

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


Согласен

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

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

Скорее всего это базу надо забить какими-то данными.
  • 0

#16 Deus

Deus

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

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Гапченко Алексей Владимирович
  • Город:Украина, Харьков

Отправлено 02 апреля 2007 - 09:10

:focus: Доброго времени суток!

Возникла аналогичная проблема, суть в том, что триальная версия ТС вбивала все быстро и без нареканий (метод Sys.Keys). Купили ТС и теперь гораздо медленней вбивается (скрипт один и тот же) раз в 5 где-то. В настройках Tools -> Default Project Properties -> Project -> Playback -> Key Pressing Delay стоит "0" ms.
  • 0

#17 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 02 апреля 2007 - 10:10

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

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

а запуск проводился на том же компьютере, что и раньше?

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

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

типа такого:

var sWindow;
for (.......)
  if (Sys.WaitWindow(....).Exists)
    sWindow = [найденный нами кепшн]

Sys.Window(sWindow....).Keys("text")

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

Два: в таком варианте есть еще одна потеря времени: в цикле можно сразу присваивать некой переменной найденный объект и потом делать уже obj.Keys() вместо Sys.Window().Keys()

В общем мне так кажется, что это не так все просто. Нужен пример кода, который работал хорошо в триальной версии, а теперь работает плохо
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#18 Deus

Deus

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

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Гапченко Алексей Владимирович
  • Город:Украина, Харьков

Отправлено 02 апреля 2007 - 10:29

Работаю с нативными объектами через obj.getElementById() - тут все быстро.
Потом кликаю и вызываю Sys.Keys("some text").
Боюсь куски кода ничего не дадут..

P.S. возможно это из-за ИЕ7 ?
  • 0

#19 AlexP

AlexP

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

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

Отправлено 02 апреля 2007 - 17:50

P.S. возможно это из-за ИЕ7 ?

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


Возможно, и даже очень. Вообще, у меня IE7 работает не очень шустро, время от времени подвисает... и периодически падает :focus:
  • 0

#20 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 03 апреля 2007 - 06:55

Здравствуйте.

Да, это скорее всего из-за IE7. Вероятно, там новая система защиты не даёт нормально работать с клавиатурой - блокирует или тормозит программный ввод текста.

Ещё я подобное поведение наблюдал при работе на машине некоторых брандмауэров. Они тоже с какими-то защитными целями программный ввод с клавиатура для IE7 замедляли.

Можете присваивать текст непосредственно свойствам контролов - value или innerText, в зависимости от типа контрола.
  • 0
С уважением,
Дмитрий


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

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