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

Два Процесса


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

#1 Гость_Alex13_*

Гость_Alex13_*
  • Guests

Отправлено 26 февраля 2004 - 14:57

У меня в TestComplete есть проблема, которую я не могу решить.
Я пишу скрипт для клиент-серверной проги, и тестирую меню. Я открываю пункт меню через MainMenu.Click, но при определенных условиях с сервера может прийти сообщение об ошибке, при этом, так как это сообщение с сервера, оно является отдельным процессом и TestComplete его не видит и продолжает считать, что происходит откытие пункта меню, в итоге он ждет до упора (т.е. до бесконечности) и тест виснет. Можно ли как-нибудь отслеживать в TestComplete два процесса?
Если кто знает - помогите.

#2 Mila

Mila

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

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

Отправлено 27 февраля 2004 - 11:28

Заранее извиняюсь - с TestComplete не работаю....
А тайм-аут на операцию в этом туле поставить нельзя? :unsure:
  • 0

#3 Гость_Guest_*

Гость_Guest_*
  • Guests

Отправлено 02 марта 2004 - 10:40

Alex13, приветствую!

Количество отслеживаемых процессов в TestComplete не ограничено. Подход используется один и тот-же: устанавливается ссылка на процесс с помощью функции Sys.WaitProcess() и производится работа с его окнами. Только вот наличие или отсутствие окна проверять прийдется вручную. Но это, как мне кажется, правильно - инструмент не должен реагировать на появление произвольных окон от произвольных приложений.
Немного непонятно, почему сообщение от сервера является "отдельным процесом". Кто стартует этот процесс? Если вызов метода COM-объекта закончился неудачей, то должен возвращаться код ошибки, который обрабатывается клиентом. И любое сообщение выводимое клиентом будет в рамках его процесса.

Regards,
Alex
[TeamAQA]
================================

#4 Юстус

Юстус

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

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

Отправлено 02 марта 2004 - 12:49

Добрый день,

установить Timeout можно из Options | Engine Options | Run | Timeout

Значение этой опции можно менять и из скрипта.

procedure Test;
var
p, w: OleVariant;
OldTimeout : Integer;
begin
p := Sys.Process('notepad');
w := p.Window('Notepad', '*');
w.Activate;
OldTimeout := Options.Run.Timeout; // save old
Options.Run.Timeout := 2000; // set 2 seconds timeout
w.MainMenu.Click('File|New');
Options.Run.Timeout := OldTimeout; // restore
// ...
end;
  • 0

#5 Impr

Impr

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

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

Отправлено 09 марта 2004 - 10:38

Здраствуйте все.
Чем то похожая ситуация --- кликом мыши по картинке, вызываю окно, в котором, в зависимости от фрагмента картинки где был клик, размещена какая нибудь информация (или сообщение, что ничего не выбрано, или гиперссылка). Так вот, содержимое окна не видно. Почему?
Само окно в Object Browser видно, после того как в меню Options -> Engine Options -> Web, ставишь галочку напротив "Show all windows" и можно видеть:
Window("Internet Explorer_TridentDlgFrame", "Информация -- Web Page Dialog", 1)
|----Window("Internet Explorer_Server", "", 1)
Но где то, что написано в этом "Internet Explorer_Server"-окне? Почему Test Complete не видит?

Прикол --- если отключаю Web Testing Add-In, то у окна Window("Internet Explorer_Server", "", 1) появляется потомок editable_text, при попытке посмотреть что это такое, Test Complete зависает.
  • 0


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

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