Модераторы: BearBeer
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> авто тестирование, десктопных приложений 
:(
    Опции темы
Vidocq
Дата 27.4.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



Мои кривые ручонки наконец-то добрались и до автотестинга.

Что ж, пристуупим smile

Тулов автотестинга выпущено множество великое, но большинство из них - буржуйские. А буржуи, как известно, за здорово живешь кодить не будут. Поэтому бесплатных тулов не так много, как хотелось бы. smile

Мне попался под руку TestComplete 2.0.2.0 компании AutomatedQA's (автоматизированное обеспечение качества, то бишь smile). Правда демоверсия.
Больше всего меня интересовала в этом чуде вражеской техники, ессно, возможность записи скриптов с последующим их воспроизведением. И я, начитавшись вумных мануалов, взялся за дело.

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

Чисто прикола ради я выбрал фар в качестве тестируемого приложения.

Записывать и проигрывать скрипты оказалось простым и очень интетесным делом. Весь процесс очень сильно напоминает запись макросов в M$ Office или анимации в 3D MAX'e. Затем всё просто и красиво: запускаешь приложение и жмёшь кнопку "Запись". Потом выполняешь необходимую последовательность действий, которая составляет собственно тест. Когда необходимые манипуляции завершены, жмёшь кнопку "Stop", останавливая запись скрипта.

Совсем забыл сказать, TestComplete поддерживает аж 4 языка скриптов: VBScript, C++Script, DelphiScript и JScript. Перед созданием проекта надо указать, на каком языке будет производиться запись. Я выбрал VBScript, хотя это и потребовало даунлода MSD (Скрипт Дебаггер) с сайта Микрософта. Хотя если пофиг, на каком языке скрипты дебажить, то лучше выбрать C++Script. Он не требует скачивания MSD.

Остановив запись, видим что во вкладке Editor/Test Log появился сам скрипт.
Код

Sub Main
    Call Test1
End Sub

Sub Test1
    Set p = Sys.Process("Far")
    Set w = p.Window("ConsoleWindowClass", "*")
    w.Activate
    Call Sys.Keys("~[Win]~[F9][Enter][Home][Enter][F7][Enter][Enter][Tab]![End][F5][Enter][Tab][Enter][F8][Enter][Right][Enter]")
End Sub


Запись производится в отдельную процедуру (Test1), а вызывается из процедуры Main.
Этот скрипт описывает, как я вызвал Фар, поднялся из его папки в корень С:\, создал там папку, зашёл в неё, перепрыгнул на другую панель и скопировал содержимое текущей папки во вновь созданную. Затем удалил её.

Как видно, TestComplete просто записал последовательность нажатых мной клавиш, возложив их выполнение на Фар. Таким образом понятно, что скрипт сработает только в контексте тестируемого приложения.
После этого я проиграл скрипт. Интересно было заметить, что он был помечен как успешный, хотя в Фаре прошёл только процесс копирования. А вот удаление не прошло.

Попарившись совсем малость, я заставил скрипт удалять скопированные файлы. Пришлось полученный скрипт немного переписать ручками:
Код

Sub Test4
    Set p = Sys.Process("Far")
    Set w = p.Window("ConsoleWindowClass", "*")
    w.Activate
    Call Sys.Keys("[Enter][Home][Enter][F7][Enter][Enter][Tab][Down]![End][F5][Enter]")
    Call Sys.Delay(10000)
    
    Call Sys.Keys("[Tab]![End][F8]")
    Call Sys.Delay(1000)
    
    Call Sys.Keys("[Enter]")
    Call Sys.Delay(1000)
    
    Call Sys.Keys("[Enter]")
    Call Sys.Delay(1000)    
    
    Call Sys.Keys("[Right]")
    Call Sys.Delay(1000)    
    
    Call Sys.Keys("[Enter]") 
End Sub

Фича Sys.Delay(ms int) как раз откладывает (приостанавливает) выполнение скрипта на заданное количество миллисекунд.

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

Всё.
Спасибо за внимание и до новых встреч в эфире smile smile smile


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
batigoal
Дата 27.4.2005, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: нет
Всего: 151



Тебе спасибо.
А вот такой вопрос: если мне нужно что-то забивать в форму, то как это отразить в скрипте, чтобы он вводил каждый раз новое значение (напр., случайную строку)?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Vidocq
Дата 28.4.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



LamerВ George
Пока не разобрался, так что приходится в скрипте каждый раз менять. smile


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
Guest
Дата 31.5.2005, 14:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Интересно, а как ты собираешься делать проверку того, что ты тестируешь?
  Вверх
Vidocq
Дата 6.6.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 431
Регистрация: 15.12.2004
Где: Запорожье, Украин а

Репутация: 1
Всего: 7



2 Guest,
Извини, не понял smile


--------------------
Всё течёт ©
PM MAIL ICQ   Вверх
chief39
Дата 10.6.2005, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: нет
Всего: 77



Если гвеста правильно понял....
Не знаю какая задача у Vidocq.... НО!

Лично у нас ведутся переговоры о внедрении такой системы (какая именно будет - не скажу - не знаю).

Суть не в том чтоб сделать то что Junit делает, а просто кусок рутины переложить с тестера.

Мне, например, чтобы протестить одну процедурку с архи-хитро-реализованным расчётом пришлось попросить тестера создать нужную ситуацию.
В реале, такую ситуацию создают часами и днями много людей. Прошу понять меня правильно - это просто результат деятельности нескольких дней в реальной жизни. smile
Но мне она нужна срочно. Тестер потратил около получаса тыкая в кнопки разных наших клиентских прог чтобы её создать. Причём он может ошибиться при вводе - и всё насмарку.
А если мне надо 5-6 таких тестов... то... smile ( Причём откатить "испорченный" процесс назад гораздо сложнее чем пересоздать - иногда просто невозможно).
Если применять вышеописанную систему - работа тестера сократится до 1-2 минут:
- взять скрипт
- изменить данные немного под конкретный случай
- запустить эту утилитку

А) 30 минут >> 1-2 минуты
Б) кол-во ошибок (сколько их сделает человек за полчаса рутины и сколько за минуту правки значений)

ЗЫ: Вроде бы уже решили эту систему писать самостоятельно, заточенную под нас






--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
chief39
Дата 10.6.2005, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: нет
Всего: 77



Да! забыл, собственно, ответить на вопрос:
Цитата(Guest @ 31.5.2005, 14:28)
Интересно, а как ты собираешься делать проверку того, что ты тестируешь?

Отвечаю: никак.
Не в этом суть smile
Тестирование ведь состоит из:
- Подготовки к нему (приведение тестируемого к состоянию от которого "понеслась")
Например, для тестирования приложения которое работает с БД необходима, как
минимум, БД. Ну и некая структура данных. И данные ессно.
- Выполнение тестируемых действий - собственно тестирование ( не только "правильные"
действия юзера, но и "неправильные", но вполне возможные ).
- Собственно, "разглядывание" результатов smile
- Ну и выводы с мерами пресечения: вплоть до перепроектирования системы.

Эту штуковину можно использовать для первого пункта (как мне бы сейчас было полезно smile ). И для второго тоже. В принципе. Хотя во втором пункте может быть дебаг кода (как у меня smile )
Ну а третий пункт.... тоже неплохо бы smile
И ещё четвёртый - чтоб от кофе не отвлекаться на всякие глупости вроде проектирования и кодирования smile



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
stron
Дата 10.6.2005, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Консультант
***


Профиль
Группа: Комодератор
Сообщений: 1654
Регистрация: 17.7.2003
Где: Питер

Репутация: нет
Всего: 36



У нас для тестирования используется SilkTest


--------------------
подписи нет
PM ICQ   Вверх
BearBeer
Дата 12.5.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Модератор
Сообщений: 902
Регистрация: 25.3.2002

Репутация: нет
Всего: 9



под Виндовс категорически рекомендую AutoIt
+ Freeware
+ очень продвинуто community (правда большей частью на английском, но встречал и русские форумы)
+ хороший Help

- нет возможности мапить обьекты в базу, но если наловчиться, то не так страшно
- рекордер оставляет желать лучшего - преимущественно писать руками стоит
- всякие чекпоинты и логи тоже лучше самому написать, под себя
PM MAIL YIM   Вверх
Google
  Дата 26.5.2019, 22:58 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Тестирование приложений | Следующая тема »


 




[ Время генерации скрипта: 0.1229 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.