Тестируемая программа перестала отвечать
#1
Отправлено 18 января 2012 - 23:37
Через некоторое время программа снова отвечать.
Как дождаться в тесте этого момента???
Но не так, что просто в конкретном месте ставить Delay, потому что программа не всегда подвисает и не хотелось бы лишний раз ждать эту паузу.
Если какой-то способ из теста запрашивать отвечает программа или нет и, если не отвечает, то ждать ответа и после этого продолжать выполнение теста?
#2
Отправлено 19 января 2012 - 03:51
#3
Отправлено 19 января 2012 - 03:56
#4
Отправлено 19 января 2012 - 04:35
#5
Отправлено 19 января 2012 - 06:12
Обновлите Тесткомплит и проверьте, правильно ли собрано приложение с учетом требований тесткомплита
#6
Отправлено 19 января 2012 - 22:49
По видимому тесткомплит парсит интерфейс программы и программа виснет из за этого.
Обновлите Тесткомплит и проверьте, правильно ли собрано приложение с учетом требований тесткомплита
Собрано приложение верно, раньше всё было нормально в этом тесте, но потом программисты добавили паузу между определённым действием в программе (костыль добавили), и программа стала подвисать в этом месте при выполнении теста.
Надпись "Не отвечает", к сожалению, появляется не всегда, иногда просто видно, что она подвисла, чисто визуально, но TestComplete как это объяснить, я думала может TC сам умеет ждать пока программа ответит, какая-нибудь специальная функция...
#7
Отправлено 20 января 2012 - 06:15
Вряд ли TC предусматривает все варианты зависания....я думала может TC сам умеет ждать пока программа ответит, какая-нибудь специальная функция...
На самом деле, достаточно, чтобы процесс был доступен. Дальше можно с небольшим таймаутом опрашивать все необходимые объекты.
Например (для DelphiScript):
for i:=1 to MAX_DELAY / 100 do begin found := false; try myForm := myProcess.Window(...); if myForm.Exists then begin if Assigned(myForm.SomeProperty) then if myForm.SomeProperty = requiredValue then found := true; // Или можно продолжить дальше по иерархии, пока не дождемся появления нужного объекта end; except //... end; if found then break; Delay(100); end;
А вообще, надпись "Не отвечает" появляется только при автотестах? Если то же самое и при ручном тестировании, то это хороший такой баг. Если пользователь такое увидит, ему может поплохеть. Пусть организуют треды.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных