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

Тестирование веб-приложений 2.0
онлайн, начало 25 января
Тестирование REST API
онлайн, начало 28 января
SQL для тестировщиков
онлайн, начало 28 января
Техники локализации плавающих дефектов
онлайн, начало 28 января
Фотография

Exists бесконечно ищет процесс

exists процессы проверка

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

#1 Prospero

Prospero

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

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

Отправлено 05 Июль 2016 - 14:54

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

 

Довожу до ума и по максимуму автоматизирую свои тесты. Хотела написать проверку на проверку процесса и запуска приложения, если такого процесса нет. TestComplete 7.5, приложение на Delfi, скрипты пишу на JScript.

Столкнулась с такой проблемой. Если приложение уже запущено, то код отрабатывает правильно и функция выполняется. Если приложение не запущено (т.е. ради чего эта функция и писалась), тогда Exists начинает бесконечно искать этот процесс и подвешивать систему, вместо того, чтобы послать false и привести к выполнению кода в условии. После принудительной остановки в лог вываливается много ошибок, что процесс не найден.

Собственно, сам код:

function StartPP()
{
 if (! Sys.WaitProcess("PPostIn").Exists)
  {
    TestedApps.PPostIn.Run(1, true);
    var PP;
    PP = Sys.Process("PPostIn");
    PP.VCLObject("login").VCLObject("Button1").ClickButton();
    BuiltIn.Delay(3000);
  }
  
}

Натыкалась на советы, связанные с уменьшением таймаута в Playback. Но это не повлияло никак.

Прикрепленные файлы


  • 0

#2 Genka

Genka

    Гуру

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


Отправлено 05 Июль 2016 - 20:25

WaitProcess не постит никаких ошибок в лог, скорее всего проблема в строке

PP = Sys.Process("PPostIn");

Чтобы это проверить, перепишите код вот так

var p = Sys.WaitProcess("PPostIn");

if(!pExists)

 

Затем поставьте брекпоинт на строке с if-ом и посмотрите на результат. Если ТС остановится на брекпоинте, значит проблему надо искать дальше.

Хотя, конечно, и в этом случае непонятно, почему оно зависает.

 

Параметр Auto-wait timeout относится к методам Process, Window и т.п., но не к Wait-методам


  • 0

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

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


#3 Сергей

Сергей

    Специалист

  • Members
  • PipPipPipPipPip
  • 930 сообщений
  • Город:Москва

Отправлено 06 Июль 2016 - 07:51

В wait методе я бы задержку поставил, сколько ждать секунд


  • 0

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


#4 Сергей

Сергей

    Специалист

  • Members
  • PipPipPipPipPip
  • 930 сообщений
  • Город:Москва

Отправлено 06 Июль 2016 - 07:52

Да и вообще, зря вы с пиратским TestComplete 7.5 связались. Намучаетесь без техподдержки и непонятных касяков.


  • 0

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


#5 Genka

Genka

    Гуру

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


Отправлено 06 Июль 2016 - 08:07

В wait методе я бы задержку поставил, сколько ждать секунд

По умолчанию этот параметр равен 0, что означает единственную проверку.

 

И кто сказал, что ТС пиратский? :)


  • 0

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

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


#6 Prospero

Prospero

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

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

Отправлено 06 Июль 2016 - 09:33

Изменила:

 

var p = Sys.WaitProcess("PPostIn", 0);
  if (!p.Exists)
  {
    TestedApps.PPostIn.Run(1, true);
    var PP;
    PP = Sys.Process("PPostIn");
    PP.VCLObject("login").VCLObject("Button1").ClickButton();
    BuiltIn.Delay(3000);
  }
 

Поигралась с настройками таймаута в ожидании - и 0 попробовала, и 1000, и 10000. Результат один. Некоторое время ищет этот процесс (раз 10), потом всё-таки переходит к брекпоинту, который стоит на if. В логе несколько записей "process not found". Т.е. по сути этот код сработает, но почему он делает вместо одной попытки несколько - я не понимаю.

 

 зря вы с пиратским TestComplete 7.5 связались

 

 

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


  • 0

#7 Сергей

Сергей

    Специалист

  • Members
  • PipPipPipPipPip
  • 930 сообщений
  • Город:Москва

Отправлено 06 Июль 2016 - 09:45

Проверьте функцию на блокноте. Проверьте функцию на последнем ТС (30 дней бесплатно).

По поводу 7.5 - по моим наблюдениям последняя взломанная версия TC, позднее не видел.

Плюс большинство проблем на форуме как раз по 7.5, который в итоге пиратский оказывался.


  • 0

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



Организация автоматизированного тестирования
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн
Школа Тест-Аналитика
онлайн



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

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

Яндекс.Метрика
Реклама на портале