Скорость "ручного" ввода средствами TC
#1
Отправлено 06 марта 2007 - 14:36
#2
Отправлено 06 марта 2007 - 14:54
Однако думается мне, что такой подход не совсем хорош, так как нарушает "чистоту эксперимента", при котором эмулируются действия пользователя.
Как нечто среднее между этими двумя способами - использование буфера обмена (в буфер помещать необходимый текст, а потом для контрола делать Keys("^c"))
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#3
Отправлено 06 марта 2007 - 15:16
как вариант, можете присваивать нужные значения непосредственно свойствам объекта (например, для вставки текста в текстовое поле использовать конструкцию типа object.Text = "my text", вместо метода Keys).
Однако думается мне, что такой подход не совсем хорош, так как нарушает "чистоту эксперимента", при котором эмулируются действия пользователя.
Как нечто среднее между этими двумя способами - использование буфера обмена (в буфер помещать необходимый текст, а потом для контрола делать Keys("^c"))
Моё мнение такое: использовать напрямую свойство (в DevExpress'е - метод) нельзя, если цель - тестирование валидации (сюда же отнесу и обработчики событий - это тоже валидация) контрола на ввод данных. Во всех остальных случаях лучше использовать именно свойство, чтобы ускорить выполнение теста. Использование же буфера от свойств ничем по сути не отличается.
#4
Отправлено 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
#5
Отправлено 07 марта 2007 - 07:23
вообще странно.Есть ли возможность увеличить скорость, так называемого, ручного ввода значений в текстовые поля? А то ТС всё же медленно вбивает символы..
Если записать обычную процедуру (не Low-Level), то при воспроизведении все действия (в том числе и заполнение полей) происходят очень быстро.
#6
Отправлено 07 марта 2007 - 08:38
Я просто думал, что есть какая-нибудь опция, которую я опять не увидел..
Например, когда заполняем карточку сорудника из 50 полей и, скажем, на 20 сотрудников - всё настолько печально-медленно происходит (даже с его довольно быстрым вводом), что хочется застрелиться..вообще странно.
Если записать обычную процедуру (не Low-Level), то при воспроизведении все действия (в том числе и заполнение полей) происходят очень быстро.
#7
Отправлено 07 марта 2007 - 09:04
Например, когда заполняем карточку сорудника из 50 полей и, скажем, на 20 сотрудников - всё настолько печально-медленно происходит (даже с его довольно быстрым вводом), что хочется застрелиться
ну... отворачивайся
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#9
Отправлено 07 марта 2007 - 10:20
вообще странно.
Если записать обычную процедуру (не Low-Level), то при воспроизведении все действия (в том числе и заполнение полей) происходят очень быстро.
возможно, тебе не с чем сравнивать
по сравнению с СилкТестом ТестКомплит действительно заполняет поля медленно, я это заметил сразу, как только начал использовать ТК
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#10
Отправлено 07 марта 2007 - 10:32
Все зависит от способа заполнения. Если заполнять путем "вбивания текста", то пожалуй медленнее, а если напрямую стучать по свойствам, то не так уж и медленно. Другое дело, что побочные эффекты могут возникнуть, особенно, если на какие-то действия, которые пользователь должен сделать, чтобы поменять некоторое свойство, навешаны дополнительные обработчики. Так, например, чекбокс можно установить в некоторое состояние не делая при этом клик. Соответственно обработчик клика в этом случае не сработает, что повлечет расхождения в поведении приложения.возможно, тебе не с чем сравнивать
по сравнению с СилкТестом ТестКомплит действительно заполняет поля медленно, я это заметил сразу, как только начал использовать ТК
#11
Отправлено 07 марта 2007 - 11:41
Все зависит от способа заполнения. Если заполнять путем "вбивания текста", то пожалуй медленнее, а если напрямую стучать по свойствам, то не так уж и медленно. Другое дело, что побочные эффекты могут возникнуть, особенно, если на какие-то действия, которые пользователь должен сделать, чтобы поменять некоторое свойство, навешаны дополнительные обработчики. Так, например, чекбокс можно установить в некоторое состояние не делая при этом клик. Соответственно обработчик клика в этом случае не сработает, что повлечет расхождения в поведении приложения.
Читай моё сообщение выше ;)
#12
Отправлено 07 марта 2007 - 11:43
#13
Отправлено 07 марта 2007 - 12:06
Все зависит от способа заполнения. Если заполнять путем "вбивания текста", то пожалуй медленнее, а если напрямую стучать по свойствам, то не так уж и медленно. Другое дело, что побочные эффекты могут возникнуть, особенно, если на какие-то действия, которые пользователь должен сделать, чтобы поменять некоторое свойство, навешаны дополнительные обработчики. Так, например, чекбокс можно установить в некоторое состояние не делая при этом клик. Соответственно обработчик клика в этом случае не сработает, что повлечет расхождения в поведении приложения.
Читай моё сообщение выше ;)
Вот это что ли?
Моё мнение такое: использовать напрямую свойство (в DevExpress'е - метод) нельзя, если цель - тестирование валидации (сюда же отнесу и обработчики событий - это тоже валидация) контрола на ввод данных. Во всех остальных случаях лучше использовать именно свойство, чтобы ускорить выполнение теста. Использование же буфера от свойств ничем по сути не отличается.
По-моему, свойства использовать нужно именно тогда, когда наивысшим приоритетом является скорость выполнения (за неимением других приоритетов) и нет побочных эффектов, а в остальных случаях уже пользовался бы чем-то другим. Вот так бы я расставил акценты (то есть примерно то же самое, но упор именно на приоритетности скорости выполнения).
#14
Отправлено 07 марта 2007 - 12:22
Если тестируется функционал (реакция системы на различные варианты действий пользователя при заполнении формы: ввод из буфера, с клавиатуры, передвижение по полям TAB'ом, ENTER и т.п.) - то лучше стремиться как можно ближе к реальности воспроизвести действия пользователя.
Если же тестируются результаты введенных значений (граничные значения, пустые поля, пробелы и.т.п.) или результаты ввода будут использоваться как исходные данные для следующего теста - то эффективней пользоваться прямым вводом в свойства полей. "Заполнение карточки сорудника из 50 полей на 20 сотрудников" - это тестовое покрытие чего? 50 полей 20-ю вариантами заполнения скорей всего не протестируешь. Возможно, цифры взяты для примера. Так что автору вопроса необходимо определиться с целью данного теста, а, возможно, создать два варианта заполнения карточек разными способами.
#15
Отправлено 07 марта 2007 - 12:45
Коллеги, мне кажется, что способ ввода должен отличаться в зависимости от целей тестирования.
Если тестируется функционал (реакция системы на различные варианты действий пользователя при заполнении формы: ввод из буфера, с клавиатуры, передвижение по полям TAB'ом, ENTER и т.п.) - то лучше стремиться как можно ближе к реальности воспроизвести действия пользователя.
Если же тестируются результаты введенных значений (граничные значения, пустые поля, пробелы и.т.п.) или результаты ввода будут использоваться как исходные данные для следующего теста - то эффективней пользоваться прямым вводом в свойства полей.
Согласен
Скорее всего это базу надо забить какими-то данными."Заполнение карточки сорудника из 50 полей на 20 сотрудников" - это тестовое покрытие чего? 50 полей 20-ю вариантами заполнения скорей всего не протестируешь. Возможно, цифры взяты для примера. Так что автору вопроса необходимо определиться с целью данного теста, а, возможно, создать два варианта заполнения карточек разными способами.
#16
Отправлено 02 апреля 2007 - 09:10
Возникла аналогичная проблема, суть в том, что триальная версия ТС вбивала все быстро и без нареканий (метод Sys.Keys). Купили ТС и теперь гораздо медленней вбивается (скрипт один и тот же) раз в 5 где-то. В настройках Tools -> Default Project Properties -> Project -> Playback -> Key Pressing Delay стоит "0" ms.
#17
Отправлено 02 апреля 2007 - 10:10
а вы проверяли на пустом проекте? т.е. создать новый скрипт, записать действия и воспроизвести? будет ли ввод текста медленный или быстрый?
а запуск проводился на том же компьютере, что и раньше?
у меня есть одно подозрение...
предположим, что по какой-то причине не всегда известно точное имя контрола (или его кэпшн, что не суть важно)
и для ввода данных в это поле используется некая дополнительная функция, которая перебирает возможные имена(кепшены) и вводит текст в первое найденное поле
в таком случае в этой функции будут использоваться циклы для перебора этих самых кепшенов, а затем непосредственно ввод текста
типа такого:
var sWindow; for (.......) if (Sys.WaitWindow(....).Exists) sWindow = [найденный нами кепшн] Sys.Window(sWindow....).Keys("text")
так вот... если, к примеру, варианты этого самого кепшена берутся из какого-то массива, то при переборе нескольких вариантов есть потери времени при проверке каждого из них. Это раз.
Два: в таком варианте есть еще одна потеря времени: в цикле можно сразу присваивать некой переменной найденный объект и потом делать уже obj.Keys() вместо Sys.Window().Keys()
В общем мне так кажется, что это не так все просто. Нужен пример кода, который работал хорошо в триальной версии, а теперь работает плохо
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#18
Отправлено 02 апреля 2007 - 10:29
Потом кликаю и вызываю Sys.Keys("some text").
Боюсь куски кода ничего не дадут..
P.S. возможно это из-за ИЕ7 ?
#20
Отправлено 03 апреля 2007 - 06:55
Да, это скорее всего из-за IE7. Вероятно, там новая система защиты не даёт нормально работать с клавиатурой - блокирует или тормозит программный ввод текста.
Ещё я подобное поведение наблюдал при работе на машине некоторых брандмауэров. Они тоже с какими-то защитными целями программный ввод с клавиатура для IE7 замедляли.
Можете присваивать текст непосредственно свойствам контролов - value или innerText, в зависимости от типа контрола.
Дмитрий
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных